Tugas Pendahuluan 2 Modul 1
MODUL 1
PERCOBAAN 5 KONDISI 2
Dip Switch & Seven Segment
+ Rangkai semua komponen sesuai kondisi yang dipilih
+ buat program di aplikasi arduino IDE
+ setelah selesai masukkan program ke arduino di proteus
+ jalankan program pada simulasi dan cobakan sesuai dengan modul dan kondisi
+ Selesai
3. Rangkaian Simulasi dan Prinsip kerja
[Kembali]
PRINSIP KERJA
Setiap dua switch yang diaktifkan akan menyebabkan counting dari 0 hingga 9 pada digit 1 dan 2 secara bergantian. Dalam rangkaian ini, dip switch digunakan sebagai input dan 7-segment sebagai output. Dip switch terhubung ke pin A0 pada Arduino, di mana dip switch tersebut dihubungkan ke resistor untuk mengatur arus yang melewati rangkaian. Sedangkan outputnya menggunakan 7-segment 2 digit yang terhubung ke pin 4 hingga 13. Ketika D1 dan D2 diatur dalam keadaan tinggi, 7-segment akan menampilkan penghitungan dari 0 hingga 9 dengan digit 1 dan 2 yang menyala secara bergantian. Selanjutnya, jika D1 dalam keadaan tinggi dan D2 dalam keadaan rendah, hanya digit 2 yang akan menyala, dan sebaliknya.
4. FlowChart
[Kembali]
#define a 6
#define b 7
#define c 8
#define d 9
#define e 10
#define f 11
#define g 12
#define dp 13
#define D1 4
#define D2 5
#define Dsw A0
int segments[] = {a, b, c, d, e, f, g};
byte digitPatterns[10][7] = {
{1, 1, 1, 1, 1, 1, 0}, // 0
{0, 1, 1, 0, 0, 0, 0}, // 1
{1, 1, 0, 1, 1, 0, 1}, // 2
{1, 1, 1, 1, 0, 0, 1}, // 3
{0, 1, 1, 0, 0, 1, 1}, // 4
{1, 0, 1, 1, 0, 1, 1}, // 5
{1, 0, 1, 1, 1, 1, 1}, // 6
{1, 1, 1, 0, 0, 0, 0}, // 7
{1, 1, 1, 1, 1, 1, 1}, // 8
{1, 1, 1, 1, 0, 1, 1} // 9
};
void setup() {
for (int i = 0; i < 7; i++) {
pinMode(segments[i], OUTPUT);
}
pinMode(dp, OUTPUT);
pinMode(D1, OUTPUT);
pinMode(D2, OUTPUT);
pinMode(Dsw, INPUT_PULLUP);
Serial.begin(9600);
}
void number(int display) {
if (display >= 0 && display <= 9) {
for (int i = 0; i < 7; i++) {
digitalWrite(segments[i], digitPatterns[display][i]);
}
}
}
void loop() {
int sw = analogRead(Dsw);
static int digit = 1; // Digit yang sedang ditampilkan (1 atau 2)
static int count = 0; // Counter untuk digit
static unsigned long lastTime = 0; // Waktu terakhir pembacaan tombol
if (sw < 1000) { // Threshold untuk memastikan switch aktif
if (millis() - lastTime > 200) { // Debouncing
lastTime = millis();
count++;
if (count > 9) {
count = 0;
}
if (digit == 1) {
digitalWrite(D1, HIGH);
digitalWrite(D2, LOW);
number(count);
digit = 2;
} else {
digitalWrite(D1, LOW);
digitalWrite(D2, HIGH);
number(count);
digit = 1;
}
}
}
}
b. Flowchart
Kondisi →Percobaan 5 Kondisi 2
Setiap 2 switch yang aktif akan melakukan counting 0 - 9 pada digit 1 dan 2 secara berseling
6. Video Simulasi
[Kembali]
7. Download File
[Kembali]
HTML klik disini
Rangkaian Simulasi klik disini
Video Simulasi klik disini
Listing Program klik disini
Download Datasheet ARDUINO UNO klik disini
Komentar
Posting Komentar