Arduino Part 10. Membuat Up-Counter Arduino
Pada project kali ini kita membuat up-counter dari 3 buah seven segment dan arduino. Bisa mencacah angka mulai dari 000 hingga 999.Kita juga menggunakan sketch program arduino yang berbeda dari cara sebelumnya.
Rangkaian up-counter ini bisa dikembangkan cacahan-nya dengan cara menambah jumlah seven segment dan memodifikasi sketch programnya.Untuk membuat suatu up counter kita membutuhkan alat dan bahan antara lain:
- Arduino uno
- 7-Segment
- Projectboard
- Kabel jumper male to male
- Kabel tunggal diameter 1 mm
- Tang potong
- Tang kupas kabel
Setelah alat dan bahan sudah disediakan maka rakitlah rangkaian upcounter seperti pada gambar skema rangkaian dibawah ini:

Pasanglah resistor dengan berurutan yaitu mulai dari sebelah kiri ke kanan yaitu : a,b,c,d,e,f,g,dp. Pin yang sama pada semua 7 segment (a,b,c,d,e,f,g,dp ) dijadikan satu. Jadi pin “a” pada 7 segment pertama, digabung menjadi satu dengan pin “a” pada 7 segment ke-dua dan pin "a" pada 7 segment ke-3. Begitu juga untuk pin b, dan pin-c, dst hingga pin-dp.
Lah,…kalau digabung menjadi satu maka angka yang akan ditampilkan akan sama semua dong?
Tentu saja TIDAK karena untuk menyalakan 7-segment bukan hanya pengaturan pin penyalaan segment saja (a,b,c,d,e,f,g,dp ) akan tetapi ada lagi pin control di common. Selama pin tidak di aktifkan maka 7-segment belum bisa menyala. Kalau ada yang belum jelas tentang common maka bisa baca materi tentang Cara menghidupkan 7-segment.
Prinsip penyalaan pada 7-segment yang jumlahnya banyak atau
lebih dari satu adalah dengan sistem multiplekser.
Jadi 7-segmen dinyalakan dengan sistem bergilir (scanning). Jadi proses pertama yang menyala adalah 7-segment
pertama, lalu berikutnya 7-segment kedua, dan terakhir 7-segment ketiga,
setelah selesai maka giliran penyalaan akan kembali lagi keawal yaitu seven pertama lagi.
Terus kalau begitu maka nyala 7-segment akan berkedip dong? karena ada proses hidup, mati, hidup, mati…dst.
Tentu aja TIDAK BERKEDIP asal saklar penyalaannya dibuat sangat cepat atau dengan kata lain dibuat dengan frekuensi yang tinggi. Jadi kalau pensaklaran dengan frekuensi tinggi maka kedipan hidup matinya LED pada 7-segment tidak akan terlihat lagi oleh mata.
Untuk lebih jelasnya lihat pada video konsep dasar multiplekser di bawah ini :
Setelah selesai merakit maka hubungkanlah kabel jumper male to male antara project board dengan Arduino. Setelah itu ketiklah sketch program di bawah ini:
//
Menghidupkan 3 buah seven segment (up-Counter)//
Oleh : Hendry Kurniawan#define
A 2#define
B 3#define
C 4#define
D 5#define
E 6#define
F 7#define
G 8#define
DP 9
//
Pin pengendali untuk common#define
CA1 10#define
CA2 11#define
CA3 12
//
Pin penyalaan segmentconst
int segs[8] = { A, B, C, D, E, F, G, DP};
//
Data penyalaan segment common anodeconst
byte numbers[10] = { 0b11000000, 0b11111001, 0b10100100, 0b10110000,
0b10011001, 0b10010010, 0b10000010, 0b11111000, 0b10000000, 0b10010000 };
void
setup(){ pinMode(A, OUTPUT); pinMode(B, OUTPUT); pinMode(C, OUTPUT); pinMode(D, OUTPUT); pinMode(E, OUTPUT); pinMode(F, OUTPUT); pinMode(G, OUTPUT); pinMode(DP, OUTPUT); pinMode(CA1, OUTPUT); pinMode(CA2, OUTPUT); pinMode(CA3, OUTPUT);}
void
loop(){ for (int digit1 = 0; digit1 < 10;
digit1++) { for (int digit2 = 0; digit2 < 10;
digit2++) { for (int digit3 = 0; digit3 < 10;
digit3++) { unsigned long startTime = millis(); for (unsigned long elapsed = 0; elapsed
< 600; elapsed = millis() - startTime) { lightDigit1(numbers[digit1]); delay(5); lightDigit2(numbers[digit2]); delay(5); lightDigit3(numbers[digit3]); delay(5); } } } }}
//sistem
scanning pada commonvoid
lightDigit1(byte number) { digitalWrite(CA1, HIGH); digitalWrite(CA2, LOW); digitalWrite(CA3, LOW); lightSegments(number);}
void
lightDigit2(byte number) { digitalWrite(CA1, LOW); digitalWrite(CA2, HIGH); digitalWrite(CA3, LOW); lightSegments(number);}
void
lightDigit3(byte number) { digitalWrite(CA1, LOW); digitalWrite(CA2, LOW); digitalWrite(CA3, HIGH); lightSegments(number);}
void
lightSegments(byte number) { for (int i = 0; i < 8; i++) { int bit = bitRead(number, i); digitalWrite(segs[i], bit); }}
Setelah
selesai silahkan simpan dan lakukan verify untuk mengecek kalau ada kesalahan
dalam pengetikan sketch program. Kalau sudah sukses lakukan upload program ke
board arduino. Jika sukses maka Arduino bisa menampilkan angka mulai dari 000
s.d 999.
Demikianlah materi ini, kalau ini bermanfaat sudilah kiranya menbagikan link website ini ke orang lain, atau ke medsos, dll. Silahkan klik "IKUTI" agar tidak tertinggal informasi-informasi lainnya.
Posting Komentar untuk "Arduino Part 10. Membuat Up-Counter Arduino"