Laporan Akhir 2 Modul 1
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 ini inputnya yaitu menggunakan dipswitch dan 7-segment 2 digit sebagai output. Jika dipswitch berada pada keadaan High, maka data akan dikirim ke mikrokontroler Arduino Uno, yang mana nanti akan dilakukan analogread terhadap input dipswitch. Saat nilainya kecil dari 1000 maka akan mengaktifkan 7-segment 2 digit, sehingga 7-segment menampilkan angka sesuai dengan program yang telah diinputkan pada Arduino yaitu melakukan counting 0-9 secara bergantian pada digit 1 dan digit 2.
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]
Komentar
Posting Komentar