Jumat, 05 Juli 2013

Remote Control Infrared Berbasis USART (ATmega 8) [Part 2]

Melanjutkan dari part1 , sekarang masuk ke part 2, di sini langsung ke implementasi unuk pembuatan PCB. berikut skematik sisminnya, untuk PCB saya buat menjadi 2 part yakni atas dan bawah, sehingga dibutuhkan header untuk koneksi antara PCB atas dan bawah.




Untuk PCB atasnya 

Untuk file eagle dan softwarenya bisa di download di sini 

Ini untuk foto jadinya :




Untuk receiver akan dibahas selanjutnya




Minggu, 10 Februari 2013

Remote Control Infrared Berbasis USART (ATmega 8) [Part 1]

Assalamualaikum wr.wb . Beberapa waktu yang lalu saya ditugaskan untuk membuat remote kontrol robot berbasis IR, langsung saja.


Infrared (IR) light is electromagnetic radiation with longer wavelengths than those of visible light, extending from the nominal red edge of the visible spectrum at 0.74micrometres (µm) to 0.3 mm
TSOP 4838
IR LED


Inilah media yang akan kita gunakan untuk mentransmisikan data. Dalam transmisi data diperlukan Transmitter (TX) dan receiver (RX). Untuk komunikasi IR, TX berupa LED IR dan RX yang saya gunakan bermerek dagang TSOP XXXX . XXXX disini adalah kode sesuatu dan mencatumkan frekwensi bereapa dia bekerja, contoh saja yang saya gunakan adalah TSOP 1738 .

Dengan cara kerja sebagai berikut:

Jika LED menayala dengan frekwensi 38kHz, maka voltage keluaran TSOP akan bernilai 0 Volt dan jika IR LED mati, atau menyala tetapi tidak dengan frekwensi deteksi TSOP (dari datasheet sekitar 38kHz) maka voltage keluaran TSOP bernilai 5 Volt.

Didasari dari ide ini, bagaimana cara mentransmisikan data USART ?

Koneksi USART 2 uC
Mari kita bahas USART terlebih dahulu, fitur USART diaktifkan untuk mentransmisikan data. Biasanya USART dikoneksikan seperti gambar berikut.


Data dari USART
Untuk mentransmisikan data dari USART menggunakan IR, diperlukan modulasi terlebih dahulu. Kenapa perlu modulasi ?? Kembali lagi ke pernyaataan di atas, yakni syarat kerja TSOP yang berbunyi "Jika LED menyala blablablabla....."  Maka, kita inginkan pulsa seperti ini :


Pertanyaan selanjutnya adalah bagaimana cara memodulasi keluaran USART ? Kita tinjau fungsi di atas

Truth table ini dapat kita implementasi pada hardware, salah satu solusi menggunakan gerbang NAND adalah sebagaimana gambar di bawah. 



Keluaran MODULASI di hubungkan dengan MOSFET atau BJT agar dapat men-drive banyak IR LED sekaligus. 


Bagian terakhir adalah koneksi hardware, untuk mendapatkan pulsa 38kHz dapat menggunakan port OC1A hasil keluaran timer yang dikonfigurasi untuk mengeluarkan pulsa 38kHz. dengan setting register sebagai berikut :

// Timer/Counter 1 initialization
// Clock source: System Clock
// Clock value: Timer1 Stopped
// Mode: Ph. & fr. cor. PWM top=ICR1
// OC1A output: Non-Inv.
// OC1B output: Discon.
// Noise Canceler: Off
// Input Capture on Falling Edge
// Timer1 Overflow Interrupt: Off
// Input Capture Interrupt: Off
// Compare A Match Interrupt: Off
// Compare B Match Interrupt: Off
TCCR1A=0x80;
TCCR1B=0x11;
TCNT1H=0x00;
TCNT1L=0x00;
ICR1H=0x00;
ICR1L=0xD3;
OCR1AH=0x00;
OCR1AL=0x69;
OCR1BH=0x00;
OCR1BL=0x00;

Untuk setting register USART sebagai berikut :


// USART initialization
// Communication Parameters: 8 Data, 1 Stop, No Parity
// USART Receiver: Off
// USART Transmitter: On
// USART Mode: Asynchronous
// USART Baud Rate: 1200
UCSRA=0x00;
UCSRB=0x48;
UCSRC=0x86;
UBRRH=0x03;
UBRRL=0x40;

Jadi, dari rangkaian di atas, data USART dapat ditransmisikan menggukan IR. Untuk bagian penerima dan software akan dijelaskan di bagian 2 . Stay Tune for more !