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.

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, ??

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!