Percobaan 3 Kondisi 1
Ketika 1 switch aktif 7-Segment menghitung mundur dari 10
1. Prosedur [Kembali]
- Rangkai semua komponen
- Buat program di aplikasi arduino IDE
- Setelah selesai masukkan program ke arduino
- Jalankan program pada simulasi dan cobakan sesuai kondisi
Pada rangkaian percobaan 3 kondisi 1 ini kita menggunakan dip switch yang dimana dipswitch berguna untuk sebagai input dri kaki analog arduino uno sedangkan untuk output dri arduino ny sendiri adalah 7-Segment common kathode
rangkaian percobaan ini menggunakan program koding arduino menggunakan input pull up dan juga delay pada 7-segment katoda nya 1000ms
#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 Dsw1 A0
#define Dsw2 A1
#define Dsw3 A2
#define Dsw4 A3
bool sw1, sw2, sw3, sw4;
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(Dsw1, INPUT_PULLUP);
pinMode(Dsw2, INPUT_PULLUP);
pinMode(Dsw3, INPUT_PULLUP);
pinMode(Dsw4, 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 sw1 = digitalRead(Dsw1);
int sw2 = digitalRead(Dsw2);
int sw3 = digitalRead(Dsw3);
int sw4 = digitalRead(Dsw4);
static int digit = 1; // Digit yang sedang ditampilkan (1 atau 2)
static unsigned long lastTime = 0; // Waktu terakhir pembacaan tombol
if (sw1 == LOW) {
if (millis() - lastTime > 1000) { // Debouncing
lastTime = millis();
digit = 1;
for (int i = 10; i >= 0; i--) {
if (digit == 1) {
digitalWrite(D1, HIGH);
digitalWrite(D2, LOW);
number(i);
digit = 2;
} else {
digitalWrite(D1, LOW);
digitalWrite(D2, HIGH);
number(i);
digit = 1;
}
delay(1000);
}
}
} else if (sw2 == LOW) {
if (millis() - lastTime > 1000) { // Debouncing
lastTime = millis();
digitalWrite(D1, HIGH);
digitalWrite(D2, LOW);
for (int i = 10; i >= 0; i--) {
number(i);
delay(1000); // Delay agar Anda bisa melihat perubahan digit
}
}
}
}
Ketika 1 switch aktif 7-Segment menghitung mundur dari 10
HTML klik disini
Rangkaian Simulasi klik disini
Gambar Simulasi klik disini
Video Simulasi klik disini
Listring Program klik disini
Video Simulasi klik disini
Listring Program klik disini