MEMBUAT COUNTER 7 SEGMENT DENGAN DUA PUSH BUTTON
I. TUJUAN- Siswa dapat mengetahui tentang counter up dan counter down
- Siswa dapat memahami fungsi dan aplikasi counter up dan counter down
- Siswa dapat membuat program counter up dan counter down
II. ALAT DAN BAHAN
- PC
- Program Arduino IDE
- Protoboard
- LED Display 7 Segment
- Kabel jumper
- 1 Resistor 330Ω dan 2 Resistor 10kΩ
- Arduino UNO
III. DESKRIPSI TUGAS
Membuat Program menggunakan Arduino UNO sesuai dengan syarat sebagai berikut:
- Membuat program counter menggunakakn seven segment. Bila Push Button 1 ditekan maka akan counter up, Bila Push Button 2 ditekan maka akan counter down.
IV. LANGKAH KERJA
- Siapkan alat dan bahan
- Rangkai seperti pada gambar
- Hubungkan Arduino UNO ke PC, dan buka program Arduino IDE
- Pastikan Arduino UNO anda telah terhubung dengan software. Pilih tab Tools >> Port (pastikan sudah anda centang)
- Masukan program yang berada di bawah kesimpulan, dengan cara copy paste
- Pilih simbol centang untuk verifikasi kode
- Save pada tempat yang anda inginkan
- Lalu klik simbol anak panah untuk mengupload kode
- Dan lihat hasilnya
V. HASIL KERJA
Foto:
Video:
- Menggunakan workpack
- Tidak makan dan minum di lab
Pada praktek ini, siswa dapat mengaplikasikan counter up dan counter down pada seven segment dengan tambahan dua push button. Siswa menjadi tahu bagaimana cara merangkai sebuah rangkaian dan memberi program pada rangkaian tersebut.
//code counter up dan down seven segment dengan dua tombol
int a = 2;
int b = 3;
int c = 4;
int d = 6;
int dp = 5;
int e = 7;
int f = 8;
int g = 9;
int tb1 = 13;
int tb2 = 12;
int counter = 0;
int buttonUpState = 0;
int lastButtonUpState = 0;
int buttonDownState = 0;
int lastButtonDownState = 0;
void setup(){
Serial.begin(9600);
pinMode(a, OUTPUT);
pinMode(b, OUTPUT);
pinMode(c, OUTPUT);
pinMode(d, OUTPUT);
pinMode(e, OUTPUT);
pinMode(f, OUTPUT);
pinMode(g, OUTPUT);
pinMode(dp, OUTPUT);
digitalWrite(dp , LOW);
}
void loop(){
buttonUpState = digitalRead(tb1);
buttonDownState = digitalRead(tb2);
if (buttonUpState != lastButtonUpState){
if (buttonUpState == HIGH){
if (counter == 9){
counter = -1;
}
counter++;
Serial.println(counter);
changeNumber(counter);
delay(300);
}
else{
Serial.println("OFF");
}
delay(50);
}
if (buttonDownState != lastButtonDownState){
if (buttonDownState == HIGH){
if (counter == 0){
counter = 10;
}
counter--;
Serial.println(counter);
changeNumber(counter);
delay(300);
}
else{
Serial.println("OFF");
}
delay(50);
}
changeNumber(counter);
}
void changeNumber(int buttonPress){
switch (buttonPress)
{
case 0:
digitalWrite(a, LOW);
digitalWrite(b, LOW);
digitalWrite(c, LOW);
digitalWrite(d, LOW);
digitalWrite(e, LOW);
digitalWrite(f, LOW);
digitalWrite(g, HIGH);
break;
case 1:
digitalWrite(a, HIGH);
digitalWrite(b, LOW);
digitalWrite(c, LOW);
digitalWrite(d, HIGH);
digitalWrite(e, HIGH);
digitalWrite(f, HIGH);
digitalWrite(g, HIGH);
break;
case 2:
digitalWrite(a, LOW);
digitalWrite(b, LOW);
digitalWrite(c, HIGH);
digitalWrite(d, LOW);
digitalWrite(e, LOW);
digitalWrite(f, HIGH);
digitalWrite(g, LOW);
break;
case 3:
digitalWrite(a, LOW);
digitalWrite(b, LOW);
digitalWrite(c, LOW);
digitalWrite(d, LOW);
digitalWrite(e, HIGH);
digitalWrite(f, HIGH);
digitalWrite(g, LOW);
break;
case 4:
digitalWrite(a, HIGH);
digitalWrite(b, LOW);
digitalWrite(c, LOW);
digitalWrite(d, HIGH);
digitalWrite(e, HIGH);
digitalWrite(f, LOW);
digitalWrite(g, LOW);
break;
case 5:
digitalWrite(a, LOW);
digitalWrite(b, HIGH);
digitalWrite(c, LOW);
digitalWrite(d, LOW);
digitalWrite(e, HIGH);
digitalWrite(f, LOW);
digitalWrite(g, LOW);
break;
case 6:
digitalWrite(a, LOW);
digitalWrite(b, HIGH);
digitalWrite(c, LOW);
digitalWrite(d, LOW);
digitalWrite(e, LOW);
digitalWrite(f, LOW);
digitalWrite(g, LOW);
break;
case 7:
digitalWrite(a, LOW);
digitalWrite(b, LOW);
digitalWrite(c, LOW);
digitalWrite(d, HIGH);
digitalWrite(e, HIGH);
digitalWrite(f, HIGH);
digitalWrite(g, HIGH);
break;
case 8:
digitalWrite(a, LOW);
digitalWrite(b, LOW);
digitalWrite(c, LOW);
digitalWrite(d, LOW);
digitalWrite(e, LOW);
digitalWrite(f, LOW);
digitalWrite(g, LOW);
break;
case 9:
digitalWrite(a, LOW);
digitalWrite(b, LOW);
digitalWrite(c, LOW);
digitalWrite(d, LOW);
digitalWrite(e, HIGH);
digitalWrite(f, LOW);
digitalWrite(g, LOW);
break;
}
}
//enbriandika.blogspot.co.id
Selamat Mencoba...
ok min , ini bagus bgt
BalasHapussolder uap
Counter up dan counter down untuk apa sih?
BalasHapusBisa tdk utk kenaikan setiap 5 angka sekali tekan?
BalasHapus