IC timer 555 adalah sirkuit terpadu (chip) yang digunakan dalam berbagai pembangkit timer, pulsa dan aplikasi osilator. Komponen ini digunakan secara luas, berkat kemudahan dalam penggunaan, harga rendah dan stabilitas yang baik
Kami bantu anda untuk memahami lebih jelas mengenai migrasi tv digital, apa sebabnya dan bagaimana efek terhadap kehidupan. Jasa teknisi juga tersedia dan siap membantu instalasi - setting perangkat - pengaturan antena dan distribusi televisi digital ke kamar kos / hotel
Project Sederhana dengan Dot Matrix dan Attiny2313. Bisa menjadi hadiah buat teman atau pacarmu yang ulang tahun dengan tulisan dan animasi yang dapat dibuat sendiri.
Jika anda pencinta IC TTL datau CMOS maka project jam digital ini akan menunjukkan bahwa tidak ada salahnya balik kembali ke dasar elektronika digital , sebab semuanya BISA dibuat dengan teknologi jadul
Semakin asyik dengan project non micro nih...ya tanpa micro biar orang yg sedikit jadul dan mungkin lemot (sorry ya) bisa berpartisipasi juga. Kali ini akan bermain dengan remote control berbasis inframerah, dimana ada sebuah modul Tx Rx 38khz saya beli di pasar genteng surabaya. Modul ini sangat simple dengan menggunakan pembangkit sinyal menggunakan IC favorit blog ini...timer NE555 !
38kHz Protocol for Infra Red
Ketika remote untuk televisi dikreasikan oleh zenith , para pemilik anjing peliharaan mengeluh karena anjing mereka terbangun atau menggonggong ketika ada yg memencet tombol remote. Saat itu frekuensi yg digunakan berupa audio ultrasonik diatas 20khz dan masih dapat didengar suaranya oleh anjing. Maka muncullah inovasi dari NEC dan Philips dengan menggunakan sinyal inframerah (yg tidak terlihat) dan frekuensi 36kHz-40kHz yg dipilih karena hampir tidak ada sumber alam yg menghasilkan atau terpengaruh oleh frekuensi di range ini.
Saya menjadi bingung ..kenapa harus dimodulasikan menjadi 38kHz, padahal jika led infra di ON OFF saja sudah dapat memberikan sinyal clock/data serial. Ahh biarkan saja ini menjadi sejarah para engineer di NEC dan Philips..sebaiknya saya cari aja perbedaan antara INFRA tanpa modulasi dan yang termodulasi melalui modul buatan Innovative Electronics (DT-IO Infra Tx/Rx). Rangkaiannya simple kok...
Modul Tx (klik biar lebih jelas)
Modul transmitter menggunakan IC 555 sebagai pembangkit frekuensi dan IC TTL 7400 sebagai pembalik logika dari input yg diberikan. Input bisa diberikan dengan tegangan beragam baik TTL/CMOS/RS232. Perhatikan jumper harus dipasang sesuai dengan mode aktif dari sinyal input dan output infra red yg diinginkan.
Modul Rx (klik biar lebih jelas)
Komponen utama adalah phototransistor yg khusus digunakan untuk komunikasi infra merah yg umumnya ditemukan diremote televisi berkode TSOP4838. Komponen lainnya hanya sebagai pembatas tegangan dan pembalik logika. Saya kemudian menyusun kedua modul ini diatas breadboard dan menggunakan inputan berupa tombol / switch tactile.
Untuk mencocokkan frekuensi dari oscillator 38khz menggunakan 555 maka perlu dikalibrasikan melalui trimpot kecil (digambar warna putih). Jika menggunakan oscilloscop maka simple aja ketika input di ground ( jumper posisi 1-2 semua) maka output dari kaki led infra bernilai 38khz. Jika tidak mempunyai oscilloscop maka cukup dengan memasang receiver dan output dihubungkan ke LED dan input transmiter di groundkan. Putar trimpot transmitter sampai led di receiver menyala tanpa kedip.
Rangkaian diatas merupakan infra merah tanpa modulasi dan output dari receiver bisa nyala kok ! Lalu apa bedanya ? coba deh pantulkan infra rednya dan jauhkan dari receiver, lihat mana yg masih diterima oleh TSOP4838. Tentunya yg masih nyaut adalah yg termodulasi 38kHz.
Ingat percobaan jam 6 digit yg dibahas di tulisan sebelumnya ? Ayo kita ganti saja input clock menggunakan penekanan tombol dari transmitter infra merah.
Dan hasil yang didapatkan bisa dilihat pada video youtube berikut
ENCODER/ DECODER with HT-12E / HT-12D
Nahh..inilah IC yg saya cari-cari selama ini dan akhirnya dijual juga di eltech pasar genteng surabaya. IC yg legendaris ini merupakan encoder dan decoder data serial yg siap pakai, dengan hanya menambahkan 1 komponen Rosc sebagai penentu frekuensi clock data serial. ADDRESS A0-A7 digunakan sebagai pemilih "Channel" dari rangkaian remote, sehingga untuk dapat berkomunikasi maka addres di kedua sisi haruslah sama. PIN AD8-AD11 pada sisi transmiter merupakan data 4 bit yg akan dikirim sat pin TE (14) mendapatkan GND. Semua pin memiliki pullup sehingga jika menginginkan logika HIGH cukup di ambangkan saja.
Bagaimana dengan pemilihan ROsc ? bacalah datasheet dan ikuti rumus nya sesuai grafik berikut :
Pilihlah Rosc yg menghasilkan frekuensi oscillator yg hampir sama , 5% kurang lebih tidak masalah. Kebetulan di rumah ada Resistor 2Mega Ohm lalu digunakan sebagai ROsc HT12E sehingga ROsc dari HT12D berkisar nilainya 56K ohm. Lanjut ke skematik yukkk...
klik untuk memperjelas
Pemilihan address menggunakan dip switch 8 pin, kemudian input data menggunakan tombol switch tactile yang hubungkan dengan dioda 1N4148 sehingga saat ditekan maka TE (transmit enable) juga terhubung ke ground. Ada penggunaan transistor NPN dan PNP pada output HT12E ini dimaksudkan untuk meningkatkan level logic (agak rendah tegangannya), karena yg saya gunakan adalah logic 1 yg akan mengkatifkan modul transmitter 38kHz ( Jumper di 2-3) . Jika transistor jenis ini susah didapatkan didaerah kamu dapat juga diganti dengan transistor NPN / PNP yg umum seperti 9012/9013.
Pada sisi receivernya input data berasal dari pin 4 (logika negasi, jumper lepas). Untuk kalibrasi 38khz maka ketika saat tombol transmitter ditekan maka led di pin 17 harus menyala. Dan hasilnya seperti video berikut:
Aplikasi yg mungkin dari tutorial ini adalah sebagai pengontrol lampu rumah, semisal dengan memanfaatkan IC decoder 4 to 16 (74LS154) sehingga output HT12D yang cuman 4 bit dapat dibuat menjadi 16 pin yg kemudian dihubungkan ke relay. Masih banyak kok aplikasi lainnya....
" Jam tanpa micro ...." itulah request dari seorang pembaca dari Bali. Mustahil ? Tidak lahh... Ketika jamannya microcontroller masih di meja desain para engineer, para pelajar dan penghoby elektronika jaman jadul menggunakan IC yang umum dipasaran kala itu, IC TTL atau IC CMOS. Bahkan salah satu buku yg pernah saya baca mengenai dedengkot APPLE "IWOZ" Steve Wozniak menceritakan bagaimana tahun 60-70an sang pioner ini berlomba membuat alat elektronika digital dengan jumlah komponen IC yang paling sedikit. Bayangkan game "BREAKOUT" merupakan cikal bakal masuknya Wozniak dan sebagai "penari latarnya" si Steve Jobs ke dunia gaming dan industri besar ( waktu itu mereka menjualnya ke ATARI ) dengan membuat console game yang seluruhnya disusun dengan IC TTL. Atari mendesain game breakout dengan 150 buah IC dan bos nya yg bernama Nolan Bushnell merasa ini terlalu besar dan menjanjikan hadiah U$700 jika ada yg berhasil membuat game ini dibawah 50 IC . Dan Steve Wozniak berhasil membuatnya dengan hanya 44 IC!
Steve Wozniak dan Game Komponen Diskrit "Breakout"
Teringat kembali dengan percobaan dadu digital menggunakan ic cmos 4026 yg sangat simple karena berfungsi sebagai counter dan driver 7 segmen, ditambah dengan pembangkit clock 1 hz menggunakan xtal 32,768 khz dengan ic 4060 + 4013. Lalu masalah muncul ketika sadar kalau jam itu bermodulo 12/24 sedangkan menit/detik bermodulo 60. Dan Google menjadi penyelamatku dengan memberikan arahan ke sebuah forum belanda yg menggunakan dioda sebagai deteksi dari angka-angka maksimum pada dial jam. Ayo kita mulai saja dengan pembahasan lebih mendalam.
1 Hz Clock Generator
Ic yang kita gunakan adalah CMOS 4060 (14 bit binary counter) yg sangat compact karena memiliki input langsung dari xtal. Kali ini yg kita gunakan adalah xtal yang umum dijumpai pada mesin jam baik jam dinding ataupun jam tangan. Frekuensi yg dimiliki oleh xtal ini adalah 32,768 khz.
Kenapa dipilih angka 32,768 khz ? perhatikan rumus dari ic counter 14 bit yg ditunjukkan dari gambar berikut:
Sehingga pada output Q14 ( pin 3 )akan membagi clock input (32,768 kHz) menjadi 2Hz. Masih kurang karena yg kita inginkan adalah pulsa 1Hz maka kita perlukan pembagi 2 bisa menggunakan D flip-flop (4013) atau IC yang umum dibahas di blog ini menggunakan pembagi 10 atau decade counter 4017, dengan melakukan reset ketika mencapai stage ke 3. Sebagai project awal untuk mendapatkan clock 1 Hz ikuti skematik berikut:
*) ralat ..ada yg salah dengan penempatan kaki no 6,7 dan 8 ...ingat 4013 hanya 14 kaki bukan 16
jadi kaki paling pojok kanan bawah adalah kaki 7, bukan 8 !
Alternatifnya menggunakan 4017 seperti gambar skematik dibawah ini :
Sesuai dengan karakteristik dari xtal memerlukan load capacitor sebesar 18-30 pF. Dikarenakan keakuratan yg cukup kritikal maka dapat diberikan kapasitor variabel pada salah satu kaki xtal dan kemudian diputar-putar untuk mendapatkan keakuratan yg diinginginkan. Bagaimana mengetestnya? Jika ada frequency counter atau oscilloscop atau AVO meter yg agak mahal dengan fasilitas freq. counter , hubungkan dengan kaki 7 (Q4) dari 4060 dan pembacaan diharapkan berkisar 2048 Hz.
Hasilnya seperti pada video berikut ini:
Pencacah Modulo 60 dan 24
IC Cmos 4026 yang dicascade akan menghasilkan susunan counter bermodulo pangkat 10 sehingga tidak cocok untuk jam yang bermodulo 60 (pada detik dan menit) serta bermodulo 12/24 pada Jam. Bagaimana mendeteksi kondisi ketika 7 segment mencapai 60 dan kembali reset ke 0 ? Perhatikan tabel 7 segment (puluhan saja , satuan diabaikan karena modulo 10) berikut ini.
Secara kebetulan ( atau tidak ) kita diuntungkan dengan deteksi digit angka 6 yg memiliki kondisi segment yang berbeda dengan digit lainnya yaitu pada segment E-F-G. Jadi dengan memanfaatkan dioda saja sudah dapat memberikan reset pada IC 4026. Rangkaiannya seperti berikut:
Bagaimana dengan Modulo 24 ? kita akan mendeteksi di 2 tempat yaitu puluhan dan satuan. Kembali kita perhatikan tabel segmennya.
Bingung ? jangan lahh.... lihat saja dibagian yang saya kasikan warna merah dan perubahan menjadi "NYALA" pada kedua segmen (puluhan di segmen G dan satuan di segmen F-G) akan mereset tepat saat angka 24. PIN reset dari 4026 akan aktif ketika mendapat LOGIKA 1 , saat sebelum digit 24 kondisi dari ketiga diode ini akan selalu memberikan tegangan 0 sehingga juga memberikan logika 0 terhadap pin RESET. Ketika semua dioda mendapatkan "NYALA" maka dioda akan menjadi "REVERSE BIAS" , sehingga tidak ada aliran arus ke dioda dan PIN RESET akan ter "pull up" oleh resistor 10k ke VCC dan menerima logika "1".
JAM 6 DIGIT FULL CMOS
Mari kita menuju ke perangkaian jam 6 DIGIT FULL CMOS. Karena kita menggunakan CMOS maka range tegangan supply yg digunakan cukup lebar berkisar 3-15 volt. Komponen yg digunakan cukup sedikit seperti gambar diatas akan tetapi diperlukan kabel jumper ke PCB atau Breadboard yg lumayan banyak. Skematik yg digunakan dan daftar komponennya seperti berikut ini . Klik pada gambar jika dirasa kurang jelas.
****PERHATIAN****
Schematik ini tidak menunjukkan kaki Vcc dan Ground Untuk IC CMOS
Jadi Jangan Lupa !! Pada umumnya kaki Vcc ada di kanan atas, Ground di kiri bawah
***) update .... by request dari pembaca-pembaca yg baru newbie di dunia elektro
DAFTAR KOMPONEN :
IC :
- CMOS 4060 (1 buah)
- CMOS 4013 atau 4017 (1 buah)
- CMOS 4026 (6 buah)
Resistor :
- 10 Kilo ohm ( 5 buah )
- 470 Kilo ohm ( 1 buah )
- 1M ohm - keatas , disesuaikan dengan yg ada ditoko ( 1 buah )
Capasitor :
- 22 pico farad (2 buah) , bisa menggunakan antara 22/33 pf
- Jika ingin akurasi , bisa mengganti 1 buah C 22pF dengan
Capasitor Variabel 30pF
Dioda :
- 1N4148 atau dioda umum 1N 4001 / 1N4002 ( 12 buah )
7 Segmen Kecil :
COMMON KATODA / - (6 buah) ! INGAT JANGAN SAMPAI SALAH BELI !
Tombol :
- Tactile switch ( 2 buah )
XTAL : 32.768 kHz (1 buah)
Bahan Pendukung :
- Baterai 6 Volt / adaptor
- Bread Board / Project Board / PCB lubang
- Kabel Jumper
- Solder dan timah (jika dirangkai diatas PCB lubang)
Hasilnya seperti pada video berikut ini :
TESTING
JAM BENERAN
Simple bukan ? Bagaimana jika menggunakan 7 segment yg besar? Pada umumnya 7 segment besar menggunakan mode common anoda dengan susunan kaki yg berbeda. 4026 memiliki output aktif high sedangkan 7 segmen common anoda membutuhkan aktif low sehingga untuk membalik logika bisa menggunakan transistor NPN atau lebih simplenya menggunakan IC ULN2003 seperti pada skematik berikut ini.
Selamat Tahun Baru 2014 kepada pembaca setia aisi555 dot com. Semoga ditahun yang baru ini berbagi ilmunya semakin bermanfaat bagi kita semua. Doakan saya juga agar sehat dan terus berkreasi serta membagi ilmu kepada kalian semua.
Tahun baru ini dimulai dengan berbagi trick mengatasi masalah hilangnya catuan pada microcontroller. Kita tidak akan membahas fasilitas sleep mode dan low power mode lainnya karena ada alasan yg menyebabkan hal ini tidak diperlukan pada level mikrokontroler sederhana. Yang kita akan bahas adalah jawaban dari pertanyaan yang beberapa hari yang lalu disampaikan oleh pembaca.
Bagaimana membuat jam digital tetap jalan saat lampu mati sehingga saat nyala kembali jam tidak kacau ?
Bagaimana melanjutkan hasil counter di alat saya pada saat catuan menyala lagi ?
Pembahasan kali ini menggunakan metode battery backup dan yang lainnya menggunakan memory EEPROM yg sudah dimiliki mikrokontroler untuk menyimpan data sebelum catuan hilang. Untuk itu sebelum melanjutkan agar terlebih dahulu membaca pembahasan mengenai eeprom disini.
Bagaimanakah logika dari rangkaian diatas ? Prinsip yang digunakan adalah prinsip arus searah dari dioda.
VCC atau sumber tegangan dari microcontroller yang masih ditoleransi adalah minimal 2.5 volt (kecuali pengukuran ADC). Saat supply utama masih memberikan tegangan maka gambar dibawah ini mewakili kondisinya.
Jika tegangan baterai yang diberikan bernilai kurang dari VCC + 0.5 volt (forward voltage) dari tegangan dikiri katode maka arus tidak akan mengalir ke arah VCC. Dalam contoh digunakan 3 buah baterai 1.5 volt yg ekivalen kurang dari 4.5 volt. Apa yang terjadi ketika sumber utama tidak ada ? Berikut ini gambarannya.
Dengan tidak adanya sumber di kiri katoda maka VCC akan benilai tegangan baterai dikurangi 0.5 volt yang merupakan forward voltage dari dioda. Trick yg mungkin menghemat penggunaan baterai saat catuan utama mati adalah dengan mematikan fungsi yg memakan energi besar. Ini menjawab pertanyaan no 1 yang intinya adalah untuk menjaga fungsi waktu tidak kacau sehingga tidak diperlukan tampilan ke display 7 segmen. Caranya adalah dengan menggunakan supply yg terpisah ke catuan display 7 segmen dan catuan ini bersumber ke adaptor/trafo yg akan mati ketika PLN mati. Cara lainnya adalah dengan menggunakan deteksi tegangan menggunakan transistor.
Script deteksinya mudah saja
if(bit_is_clear(PIND, PIND2) ) // jika catuan normal { yang_boros_nyala(); } else // jika catuan mati dan baterai aktif { yang_boros_mati(); }
Trick seperti gambar diatas dapat juga digunakan untuk menjawab pertanyaan kedua. Ini alasannya mengapa deteksinya dipasang di PIN D2 yang juga merupakan pin untuk INT 0. Marilah kita ingat pembahasan interrupt disini. Jadi saat power supply mati maka deteksi dari low ke high akan kita gunakan untuk proses penyimpanan data counter sebelum sumber benar-benar hilang. Bagaimana ceritanya menjalankan mikrokontroller padahan tegangan sumber tidak ada ? Jawabannya cukup simpel dengan menggunakan kapasitor pada VCC untuk menyimpan tegangan 5 volt beberapa saat.
Bagaimana dengan scriptnya ? Kita inisialisasi dulu Interuptnya , kali ini menggunakan ATMega 8535
#define F_CPU 4000000UL
#include <avr/io.h>
#include <avr/interrupt.h> // INI JANGAN LUPA !!
#include <avr/eeprom.h>
#include <util/delay.h>
uint8_t EEMEM eecounter;
uint8_t counter;
void init_interupt(void)
{
// interrupt aktif ketika perubahan Low ke High (0--> 1)
MCUCR |= (1<<ISC01)|(1<<ISC00) ;
// aktifkan INT 0
GICR |= (1<<INT0);
sei();
}
Dan ketika saat power PLN mati dan kemudian basis transistor tidak mendapatkan tegangan maka transistor akan ada pada kondidi cut off sehingga pada pin INT 0 terjadi perubahan dari LOW (0) ke HIGH (5volt) dan berdasarkan inisialisasi telah ditentukan trigger interrupt pada kondisi "rising edge" . Pada kondisi ini hasil dari counter disimpan ke EEPROM.
ISR(SIG_INTERRUPT0)
{
eeprom_write_byte(&eecounter,counter);
}
Dan ketika listrik menyala kembali yang pertama dilakukan adalah membaca isi eeprom dari counter
Tutorial berikut ini merupakan kelanjutan dari pembahasan sebelumnya mengenai keypad dan lcd dengan menitikberatkan pada proses input dan pengecekan password. Prinsipnya mudah saja hanya dengan memindahkan penekanan tombol ke array memory dan kemudian membandingkannya dengan password yg diinginkan. Untuk itu agar diperhatikan juga pembahasan mengenai ARRAY.
uint8_t pas[6]; // ARRAY untuk menyimpan inputan tombol
uint8_t pase[6]={ 1,2,3,4,5,6 } ; //ARRAY password yg akan dibandingkan
Langkah pertama mendeklarasikan ARRAY yg akan menyimpan inputan tombol. Kita batasi jumlah password yg diinput 6 angka sehingga array ini memiliki panjang 6. Setiap tombol ditekan maka array pas[ ] akan dimasukkan nilai dari variabel keypad.
Untuk menampilkan karakter diatas scriptnya adalah :
lcd_init(LCD_DISP_ON_CURSOR); //inisialisasi LCD
lcd_puts(" Input Password:");
lcd_gotoxy(4,1); //pindah baris
Sedangkan untuk memindahkan inputan keypad seperti berikut:
//jika tombol ditekan (bukan * dan # )
if(keypad!= 100 && keypad !=21 && keypad !=20 )
{
if( posisi < 6 ) { //ada 6 buah password
lcd_putc('*') ; // tampilkan asterix untuk password
pas[posisi]=keypad; //pindahkan nilai keypad ke array
posisi++; //tambahkan nilai posisi
}
_delay_ms(150);
}
Jika ingin mengoreksi password yg telah dimasukkan , maka cancel diwakili oleh tombol '*' dan scriptnya seperti berikut :