Seven Segment 4 Digit dengan Arduino
Pada tulisan kali ini kita akan mensimulasikan rangkaian dan program untuk menampilkan 4 digit angka pada seven segment. Seperti sebelumnya pada percobaan ini akan menggunakan proteus untuk simulasinya. Seven segment yang digunakan berjenis Common Chatode.
Untuk menampilkan beberapa seven segment dalam waktu bersamaan menggunakan prinsip scanning. Scanning digunakan untuk membuat penggunaan port output lebih sedikit. Dimana segment-segment (a,b,c,d,e,f,g dan dot) dari tiap segment dirangkai pada port output yang sama. Sedangkan pin common nya pada port yang berbeda-beda. Bisa dibayangkan jika tidak menggunakan sistem scanning maka akan membutuhkan port output yang sangat banyak. Cara kerja dari sistem scanning yang dimaksud adalah dengan mengatur nyala matinya seven segment melalui pin common. Sehingga seven segment akan nyala bergiliran dan menampilkan angka sesuai urutannya. Maksudnya ketika menampilkan angka ribuan misalnya maka hanya pin common pada digit ribuan saja yang diberi tegangan(dinyalakan) sedangkan yang lainnya mati, sehingga hanya digit ribuan yang menampilkan angka. Begitu seterusnya secara bergiliran. Dengan memberikan delay (penundaan) yang pendek hanya beberapa mili detik, maka mata kita melihatnya seolah olah nyala bersamaan.
Rangkaian simulasinya dapat dilihat pada gambar berikut:
Untuk lebih memudahkan pembuatan programnya kita buat konversi dari biner ke hexa nya, seperti tabel berikut:
Karena menggunakan pin 0-7 untuk segment nya dimana pin itu merupakan PORT D. Maka kita membuat PORT D tersebut sebagai output dengan code DDRD=0xFF;
Sedangkan pin common nya diletakan pada pin 8-11, maka kita set sebagai berikut:
DDRB=B00001111;
Program selengkapnya sebagai berikut:
Kemudian kita simulasikan untuk menampilkan angka 1234, maka hasilnya sebagai berikut:
Selanjutnya kita coba menampilkan angka 1945, hasilnya sebagai berikut:
Sekian tulisan kali ini, semoga bermanfaat.
Bagikan Ke:
Biar bisa counting up programnya gimana Bang?
BalasHapusbisa pake looping for, misal untuk 0-99:
Hapusfor(int i=0;i<99;i++){
tampilkan(i); //panggil fungsi tampilkan i ke 7seg
}