Counter Seven Segment dengan Arduino Uno R3

Posted By: Jogja Robotika In: Tutorial On: Tuesday, April 10, 2018 Comment: 0 Hit: 13090

Counter Seven Segment dengan Arduino Uno R3

.

Hai Sedulur Jogjarobotika...
Jorobo tutorial ingin sharing sedikit tentang seven segment. Seven Segment Display (7 Segment Display) dalam bahasa Indonesia disebut dengan Layar Tujuh Segmen adalah komponen Elektronika yang dapat menampilkan angka desimal melalui kombinasi-kombinasi segmennya. Seven Segment Display pada umumnya dipakai pada Jam Digital, Kalkulator, Penghitung atau Counter Digital, dan lain-lain.

.

Kali ini jorobo tutorial mencoba membuat rangkaian counter sederhana 0 hingga 9 menggunakan seven segment dengan Arduino UNO R3. Di sini kami menggunakan 7-segmen katoda yang dihubungkan ke Arduino UNO R3 untuk menampilkan digit, serta tambahan tact switch/micro switch. Cara kerjanya dengan menekan switsh maka angka pada seven segment akan bertambah dari 0 sampai 9 kemudian kembali lagi ke 0, dan seterusnya.

.

Bahan-Bahan yang diperlukan

Oke langsung saja apa saja sih yang dibutuhkan untuk membuat project ini?

1. Seven segment common catoda

2. Resistor 330 Ohm

3. Resistor 10K Ohm

4. Arduino UNO R3

5. Project board

6. Tact switch/micro switch

7. Kabel jumper

.

Skematik Rangkaian

Rangkai semua komponen seperti skematik dibawah ini

.

Input Program

Setelah selesai merakit semua komponennya, sambungkan arduino ke PC untuk proses pemrograman.

Masukkan program di bawah ini:

.

.

byte numbers[10] = { 
B11111100, B01100000, B11011010, B11110010, B01100110, 
B10110110, B10111110, B11100000, B11111110, B11110110 
};
void setup() { 
for(int i = 2; i <= 8; i++)
{
pinMode(i, OUTPUT); 
}

pinMode(9, INPUT);
pinMode(10, INPUT);
}

int counter = 0;
bool go_by_switch = true;
int last_input_value = LOW;

void loop() {
if(go_by_switch) {
int switch_input_value = digitalRead(9);
if(last_input_value == LOW && switch_input_value == HIGH) {
delay(100);
counter = (counter + 1) % 10;
}
last_input_value = switch_input_value;

else {
delay(500); 
counter = (counter + 1) % 10;
}
writeNumber(counter);
}

void writeNumber(int number) {
if(number < 0 || number > 9)
{
return;
}

byte mask = numbers[number];
byte currentPinMask = B10000000;

for(int i = 2; i <= 8; i++)
{
if(mask & currentPinMask) digitalWrite(i,HIGH);
else digitalWrite(i,LOW);
currentPinMask = currentPinMask >> 1;
}
}

.

.

Upload dan Test

Setelah selesai memasukkan program tersebut, kemudian upload program.

Coba tekan switch maka tampilan seven segment akan berubah secara berurutan/counter angka dari 0 sampai 9 kemudian kembali lagi ke 0, dan seterusnya.

.

Untuk tutorial lebih jelasnya silahkan klik untuk cek video youtube kami.

.

Selamat mencoba. Salam Jogjarobotika :)

Comments

Leave your comment