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 |
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: OffTCCR1A=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 !

4 komentar:
wooo cool
Lanjutkan bagian 2 nya om cibiru,..
semangat berkarya,.!
gmna cara setting codewizard codevisionnya mas??
perhitungan untuk timer OCR1Anya bagaimana??
Untuk setting register di satukan di codingan mas.., kalau ada pertanyaan e-mail saja di ahmadfarisfs@gmail.com
Posting Komentar