Percobaan 5
DIPSWITCH & 7-SEGMENT
1. Foto Hardware dan Diagram Blok [Kembali]
2. PROSEDUR PERCOBAAN [Kembali]
- Rangkai semua komponen
- Buat program di aplikasi arduino IDE
- Setelah selesai masukkan program ke arduino
- jalankan program pada simulasi dan cobakan dengan modul
3. RANGKAIAN SIMULASI DAN PRINSIP KERJA[Kembali]
Pada percobaan 5, digunakan dipswitch sebagai input dan 7-segment 2 digit sebagai outputnya, dimana pada rangkaian ini digunakan bentuk pull down.
Ketika dipswitch berada dalam kondisi High maka ia akan mentransfer data ke mikrokontroler arduino Uno yang kemudian dilanjutkan menuju 7-segment 2 digit sehingga 7-segment menampilkan angka sesuai dengan program yang telah kita masukan pada arduino
4. FLOWCHART DAN LISTING PROGRAM [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
/*39
32
26 27
19
*/
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() {// put your setup code here, to run once:
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); Serial.print("ADC Value = "); Serial.println(sw);delay(100);
if(sw == 23){ digitalWrite(D1,LOW); digitalWrite(D2,HIGH); number(1);delay(50);
digitalWrite(D1,HIGH); digitalWrite(D2,LOW); number(0);delay(50);
} else if(sw == 22){ digitalWrite(D1,LOW); digitalWrite(D2,HIGH); number(0);delay(1000);
digitalWrite(D1,HIGH); digitalWrite(D2,LOW); number(1);delay(1000);
}else if(sw == 21){ digitalWrite(D1,HIGH); digitalWrite(D2,LOW); number(0);delay(1000);
number(1);delay(1000);
number(2);delay(1000);
number(3);delay(1000);
number(4);delay(1000);
number(5);delay(1000);
number(6);delay(1000);
number(7);delay(1000);
number(8);delay(1000);
number(9);delay(1000);
}else if(sw == 19){ digitalWrite(D1,HIGH); digitalWrite(D2,HIGH); number(0);delay(1000);
number(1);delay(1000);
number(2);delay(1000);
number(3);delay(1000);
number(4);delay(1000);
number(5);delay(1000);
number(6);delay(1000);
number(7);delay(1000);
number(8);delay(1000);
number(9);delay(1000);
}else if(sw == 16){ digitalWrite(D1,LOW); digitalWrite(D2,HIGH); number(0);delay(500);
number(1);delay(500);
number(2);delay(500);
number(3);delay(500);
number(4);delay(500);
digitalWrite(D1,HIGH); digitalWrite(D2,LOW); number(5);delay(500);
number(6);delay(500);
number(7);delay(500);
number(8);delay(500);
number(9);delay(500);
}else if(sw == 13){ digitalWrite(D1,LOW); digitalWrite(D2,HIGH); number(1);delayMicroseconds (500);
digitalWrite(D1,HIGH); digitalWrite(D2,LOW); number(0);delayMicroseconds (500);
}else if(sw == 10){ digitalWrite(D1,LOW); digitalWrite(D2,HIGH); number(9);delay(500);
number(8);delay(500);
number(7);delay(500);
number(6);delay(500);
number(5);delay(500);
number(4);delay(500);
number(3);delay(500);
number(2);delay(500);
number(1);delay(500);
number(0);delay(500);
}else if(sw == 5){ digitalWrite(D1,LOW); digitalWrite(D2,HIGH); number(1);delay(50);
digitalWrite(D1,HIGH); digitalWrite(D2,LOW); number(0);delay(50);
digitalWrite(D1,LOW); digitalWrite(D2,HIGH); number(1);delay(50);
digitalWrite(D1,HIGH); digitalWrite(D2,LOW); number(1);delay(50);
digitalWrite(D1,LOW); digitalWrite(D2,HIGH); number(1);delay(50);
digitalWrite(D1,HIGH); digitalWrite(D2,LOW); number(2);delay(50);
digitalWrite(D1,LOW); digitalWrite(D2,HIGH); number(1);delay(50);
digitalWrite(D1,HIGH); digitalWrite(D2,LOW); number(3);delay(50);
digitalWrite(D1,LOW); digitalWrite(D2,HIGH); number(1);delay(50);
digitalWrite(D1,HIGH); digitalWrite(D2,LOW); number(4);delay(50);
digitalWrite(D1,LOW); digitalWrite(D2,HIGH); number(1);delay(50);
digitalWrite(D1,HIGH); digitalWrite(D2,LOW); number(5);delay(50);
digitalWrite(D1,LOW); digitalWrite(D2,HIGH); number(1);delay(50);
digitalWrite(D1,HIGH); digitalWrite(D2,LOW); number(6);delay(50);
digitalWrite(D1,LOW); digitalWrite(D2,HIGH); number(1);delay(50);
digitalWrite(D1,HIGH); digitalWrite(D2,LOW); number(7);delay(50);
digitalWrite(D1,LOW); digitalWrite(D2,HIGH); number(1);delay(50);
digitalWrite(D1,HIGH); digitalWrite(D2,LOW); number(8);delay(50);
digitalWrite(D1,LOW); digitalWrite(D2,HIGH); number(1);delay(50);
digitalWrite(D1,HIGH); digitalWrite(D2,LOW); number(9);delay(50);
digitalWrite(D1,LOW); digitalWrite(D2,HIGH); number(2); } }
5. KONDISI [Kembali]
Masing-masing switch LED menghasilkan tampilan yang berbeda-beda sesuai logika yang diatur pada listing program.
6. VIDEO RANGKAIAN [Kembali]
Tidak ada komentar:
Posting Komentar