Baiklah, saya sudah punya display 7-segment mungil, lalu mau dibuat apa? Saya pun memutuskan membuat “digital temperature” sederhana. Kebetulan saya punya spare LM35 sisa ngoprek Ngepot84.

Hanya saja saya ingin proyek ini sesederhana mungkin, dalam arti tidak menggunakan Arduino yang relatif lebih mahal. Maklum, saya ingin proyek ini cuma mengukur suhu, tidak lebih. Toh display yang tersedia cuma 7-segment standard nan mungil yang tentu saja tidak bisa menampilkan info yang kompleks.
Ada 4 opsi microcontroller yang tersedia, yaitu: ATTiny85, ATTiny84, ATtiny2313 dan ATtiny4313. Karena pertimbangannya adalah kesederhanaan, maka pilihan jatuh pada ATTiny85 yang cuma punya 8 kaki dengan 5 I/O. Tentu saja 5 pin I/O kurang untuk men-drive 2 digit 7-segment. Syukurlah saya punya stock chip shift register 74HC595 untuk membantu ATTiny85 men-drive display 7-segment.

Walau pun sederhana, saya ingin hasil dari proyek ini baik terutama dalam hal display-nya. Oleh karena itu saya mengambil 2 buah shift register 74HC595 untuk ke-2 digit display. Dengan 2 buah IC shift register, saya tidak perlu menggunakan teknik scanning. Kedua shift register ini dirangkai cascading. Walau pun menggunakan 2 buah shift register, pemrogramannya mudah kok. Cukup panggil 2 kali fungsi shiftOut di antara pemicuan pin latch (lihat source code untuk detailnya).

Di bawah ini adalah skema dari Digital Temperature with ATTiny85 ini. Jangan terkecoh dengan ruwetnya kabel. Sebenarnya ini proyek sederhana dengan beberapa komponen saja. Anda bisa merangkaikannya di breadboard dalam waktu kurang dari 30 menit.
(Klik pada gambar untuk memperbesar gambar)
Jika ada waktu luang, rencananya akan saya buatkan PCB-nya supaya sirkuit ini permanen. Juga penggunaan baterai supaya bisa lebih portabel.

Di bawah ini adalah source code-nya. Seperti biasa proyek ini adalah open source hardware. Anda bisa menggunakan & mengembangkannya.
/* Emanuel Setio Dewo, setio.dewo@gmail.com 13/11/2012 ATtiny85 + 7-segment Digital Temperature with LM35 */ byte pin_data = 0; byte pin_latch = 1; byte pin_clock = 2; byte pin_sensor = 3; byte seg[] = { 0x03, 0x9F, 0x25, 0x0D, 0x99, 0x49, 0x41, 0x1F, 0x01, 0x09 }; void setup() { pinMode(pin_data, OUTPUT); pinMode(pin_latch, OUTPUT); pinMode(pin_clock, OUTPUT); //analogReference(INTERNAL); } void loop() { read_sensor(); //test_angka(); } void read_sensor() { float temp_val = analogRead(pin_sensor); temp_val = temp_val * 5.0 * 100.0 / 1024.0; tulis((int)temp_val); delay(1000); } void tulis(int nilai) { digitalWrite(pin_latch, LOW); if (nilai <10) { shiftOut(pin_data, pin_clock, LSBFIRST, seg[nilai]); shiftOut(pin_data, pin_clock, LSBFIRST, 0xFF); } else { int puluhan = nilai / 10; int satuan = nilai % 10; shiftOut(pin_data, pin_clock, LSBFIRST, seg[satuan]); shiftOut(pin_data, pin_clock, LSBFIRST, seg[puluhan]); } digitalWrite(pin_latch, HIGH); } void test_angka() { for (int i=0; i<10; i++) { out7(seg[i]); delay(500); } } void out7(byte b) { digitalWrite(pin_latch, LOW); shiftOut(pin_data, pin_clock, LSBFIRST, b); shiftOut(pin_data, pin_clock, LSBFIRST, b); digitalWrite(pin_latch, HIGH); }
hiks..kabelnya ruwet…kalau aku yang bikin bisa kurang dari 30 menit ga ya?
Pasti bisa, nanti kukasih contekannya, hehehe
mas klo attiny85 nya bisa ngga untuk project ini, http://bildr.org/2011/02/74hc595/
saya msih bingung, ada skema ATTiny85 ngga?
Bisa, Mas. Di atas tuh ada skemanya dengan 2 shift register 🙂
iya mas, td baru kebaca dan liad,,, kecil banget soalnya…jd ngga keliatan…!!
klo saya pake program bildr itu, sama aja kan mas,,, tinggal upload doang?
apa perlu tambahan code nya…?untuk ngenalin ATTiny nya?
Kayaknya perlu penyesuaian, terutama dari nomer pin.
klo penyesuaian no. pin siah masih ngerti,,,
tapi takudnya dia pake library atao apa gitu?
baru megang arduino sebulan soalnya, pengen demen ngoprek kaya mas… hhe 😀
Code saya di atas tidak pakai library khusus. Cukup menggunakan perintah standard Arduino.
maaf mas, saya nanya lagi…?
saya baca berkali” mas ngga pake arduino ya…?
trs upload ke ATTiny85 nya pake apa?jd nambah bingung….?
Hehehe… Arduino cuma saya pakai untuk memprogram ATtiny85. Setelah diprogram, ATtiny bisa berjalan secara mandiri.
hhe, saya masih bingung mas….
trutama koneksi kabelnya…. 😀
bantu diperjelas mas, saya mau coba pake sensor ultrasonik
Cara upload program ke Attiny85 bisa dilihat di:
https://dewo.wordpress.com/2012/09/26/attiny85-programmer-with-arduino-nano-socket/
atau
http://www.wateb.com/attiny-programmer/
[…] sangat baik & handal. Saya sudah beberapa kali menggunakannya dalam proyek sederhana (lihat: Digital Temperature with ATtiny85 and LM35 dan Ngepot 85 (Pot […]
kalo tampilan nya tambah 1 digit dibelakang koma gimana mas caranya
Mas, klo dijadikan 3 digit (XX,X) gmn?
Bisa saja