UP DOWN Counter Arduino Seven Segment

Indobot Academy

Seven Segment
Seven Segment

Sebelumnya sudah membahas tentang input output sederhana, berupa menyalakan LED, kemudian tombol sampai Seven Segment. Oke, ini mungkin pembahasan Input/Output Digital yang terakhir. ??

Dalam postingan sebelumnya kita sudah menyalakan, apasih seven segment? Pasti sudah pada tahu. Untuk kali ini, kita akan mengembangkan dari menyalakan 2 seven segment menjadi 2 seven segment dengan cara switching. Prinsip kerja switching pada 2 seven segment adalah sebagai berikut:

1.pertama semua dimatikan.
2. Kedua data 1 dikirim, seven segment 1 dinyalakan, delay, seven segment 1 dimatikan.
3. ketika data 2 dikirim, seven segment 2 dinyalakan, delay, seven segment 2 dimatikan.
4. kemudian kembali ke langkah 2.

Dapatkan akses ratusan video tutorial dan pembelajaran dengan registrasi melalui tombol di bawah!

Langsung saja menuju Skema.

Arduino Seven Segment
Arduino Seven Segment

Selanjutnya Terdapat 2 tombol yang digunakan untuk mengganti mode dari UP Counter menjadi Down Counter atau sebaliknya.

Berikut sedikit Sketch nya:

char angka[10]={0x7E,0x30,0x6D,0x79,0x33,0x5B,0x5F,0x70,0x7F,0x7B};
void setup() {
for(int x=0;x<10;x++){pinMode(x,OUTPUT);digitalWrite(x,LOW);}
pinMode(A5,INPUT_PULLUP);
pinMode(A4,INPUT_PULLUP);
}

char data=0;
unsigned int ulang=0;
void loop() {
if((digitalRead(A5)==LOW)){

while(digitalRead(A5)==LOW);
ulang=0;
while(digitalRead(A4)==HIGH){

tampil(data);
ulang++;if(ulang>100){data++;ulang=0;}
if(data>99)data=0;
}

}

else if((digitalRead(A4)==LOW)){

while(digitalRead(A4)==LOW);
ulang=0;
while(digitalRead(A5)==HIGH){

tampil(data);
ulang++;if(ulang>100){data–;ulang=0;}
if(data<0)data=99;
}

}

}

void tampil(char data){
segment(0x7F-angka[data%10]); //menyalakan Arduino Seven Segment satuan common anoda, untuk common katoda segment(angka[data%10]);
digitalWrite(8,HIGH);
delay(1);
digitalWrite(8,LOW);
segment(0x7F-angka[data/10]); //menyalakan Arduino Seven Segment puluhan common anoda, untuk common katoda segment(angka[data/10]);
digitalWrite(9,HIGH);
delay(1);
digitalWrite(9,LOW);
}

void segment(char data){
for(char x=0;x<7;x++){digitalWrite(x,(data>>(x))%2);}
}

Sekian terima kasih, gak ada penjelasan setiap langkahnya ya, karena di postingan sebelumnya sudah dan mirip, ??

Arduino Seven Segment
Arduino Seven Segment

Kesimpulannya tidak usah khawatir seandainya terjadi kedipan pada simulasi ISIS Proteus, karena pada aslinya terjadi kedipan yang sangat cepat hingga terlihat seperti tidak terjadi kedipan.

Jika menghendaki pertambahan/pengurangan perhitungan bisa diganti nilau “ulang” yang sebelumnya 100 dengan nilai yang lebih besar.

Kamu ingin memperbanyak jam terbang dan portofolio bikin project elektronika/ Arduino/ IoT? Ikuti program dari Indobot!

Ingin Tahu Program Kami Lebih Lanjut?

Silahkan isi Formulir Dibawah Ini untuk Diskusi dengan Tim Indobot Academy.

Baca Juga

Bagikan:

Tags

Tinggalkan komentar

whatsapp whatsapp