Hari ini IC CD4017 pesanan saya tiba. Setahu saya, ini adalah IC yang sudah cukup berumur. Saya sudah pernah dengar dan baca tentang tipe ini bertahun yang lalu. Hanya saja saya baru akan memakainya sekarang. Jadi inilah saat yang tepat untuk berkenalan dengan CD4017.
CD4017 adalah sebuah decade counter alias penghitung persepuluhan. Di datasheet tertuliskan bahwa dia adalah 5-stage Johnson counter dengan 10 decoded output. Terus terang saya tidak paham artinya. Yang saya tahu adalah dia penghitung yang mampu menghitung sampai sepuluh. Tipe yang lain adalah CD4022 yang merupakan penghitung perdelapan.
Tanpa basa-basi saya langsung membaca datasheet dan googling untuk mulai merangkainya. Dalam sirkuit kali ini saya merangkaikan 10 LED lengkap dengan resistor pembatas arus ke CD4017. Pin clock dari CD4017 saya hubungkan ke pin D2 Arduino Nano andalan saya. Sedangkan pin reset saya hubungkan ke pin D3. Di bawah ini adalah skema dari rangkaian yang saya buat.

Saya memprogram Arduino untuk memberikan clock setiap 1/2 detik ke CD4017. Setelah hitungan ke-8 saya me-reset counter dengan mengirimkan sinyal HIGH ke pin reset CD4017. Jadi LED akan menyala berurutan dari LED0 ke LED7 untuk kemudian kembali ke LED0.

Walau pun CD4017 adalah IC kuno, tapi pemakaiannya masih sering. Berdasarkan pencerahan dari situs embbeded-lab.com, IC ini bisa digunakan untuk teknik scanning di LED dot matrix. Dengan CD4017 tugas scanning bisa dilakukan dengan mudah. Cuma perlu 2 pin ke Arduino, yaitu pin clock dan pin reset. Keduanya tidak terlalu banyak memerlukan pemikiran di coding, kecuali untuk men-generate clock dan reset di akhir penghitungan.
Beda dengan pendekatan saya sebelumnya yang menggunakan shift register untuk scanning, benar-benar repot secara pemrograman. Ehm… maklumlah, saya benar-benar masih amatiran, perlu belajar banyak sekali. Syukurlah nemu situs embedded-lab.com tersebut.
Di bawah ini adalah source code test CD4017. Saya mengeset supaya setelah 8 clock penghitung kembali ke 0. Ini sesuai jumlah baris LED dot matrix yang harus di-scanning. Nantikan oprekan selanjutnya yaaa…
/* Emanuel Setio Dewo, setio.dewo@gmail.com 14 November 2012 Test CD4017 */ byte cnt_clock = 2; byte cnt_reset = 3; byte cnt = 0; void setup() { pinMode(cnt_clock, OUTPUT); pinMode(cnt_reset, OUTPUT); reset_counter(); } void reset_counter() { digitalWrite(cnt_reset, HIGH); delayMicroseconds(10); digitalWrite(cnt_reset, LOW); } void loop() { // Reset setelah hitung 8 if (cnt >= 8) { cnt = 0; reset_counter(); } else { digitalWrite(cnt_clock, HIGH); digitalWrite(cnt_clock, LOW); } delay(500); cnt++; }
*menanti oprekan selanjutnya* cemungudh…
cemungudh jugaaaa
Kalau boleh tahu belinya dimana ya? Saya juga lagi nyari cuma susah dapatnya! Thanks.
Bisa dibeli di: http://sfe-electronics.com
Good luck
Mantap artikelnya mas… Sedikit tambahan, Decade counter 4017 memang cocok untuk men trigger nyala LED secara berurutan pada satu barisan led. Akan tetapi, untuk aplikasi yang menggunakan baris dan kolom seperti running text LED, kita tetap butuh shift register(74HC595) pada sisi kolomnya. karena urutan keluaran pada output pin shift register tidak harus berurutan. contohnya untuk membuat spasi antar huruf. Thanks
Benar, Mas BasirPidie,
Penggunaan Decade Counter ini bisa untuk scanning 7-segment atau dot matrix. Sedangkan code-nya tetap bisa menggunakan shift register.
Salam
mas mau tanya, cara mengunci bagian led yang menyala gimana ya? contoh saya mau led nomor 4 aja yang menyala itu gmana kodenya? tak ganti cnt = 4 kok nggk bisa,..? dan mungkin nggk ini bisa diterapkan untuk smw led nyala scr bersamaan.?
sebelumnya terima kasih