LAMPIRAN
Gambar Alat Secara Keseluruhan
Program Pada Alat Receiver
/****************************************************** This program was created by the
CodeWizardAVR V3.12 Advanced Automatic Program Generator
DDRA=(0<<DDA7) | (0<<DDA6) | (0<<DDA5) | (0<<DDA4) | (0<<DDA3) | (0<<DDA2) | (0<<DDA1) | (0<<DDA0);
PORTA=(0<<PORTA7) | (0<<PORTA6) | (0<<PORTA5) |
(0<<PORTA4) | (0<<PORTA3) | (0<<PORTA2) | (0<<PORTA1) | (0<<PORTA0);
DDRB=(0<<DDB7) | (0<<DDB6) | (0<<DDB5) | (0<<DDB4) | (0<<DDB3) | (0<<DDB2) | (0<<DDB1) | (0<<DDB0);
PORTB=(0<<PORTB7) | (0<<PORTB6) | (0<<PORTB5) |
(0<<PORTB4) | (0<<PORTB3) | (0<<PORTB2) | (0<<PORTB1) | (0<<PORTB0);
DDRC=(0<<DDC7) | (0<<DDC6) | (0<<DDC5) | (0<<DDC4) | (0<<DDC3) | (0<<DDC2) | (0<<DDC1) | (0<<DDC0);
PORTC=(0<<PORTC7) | (0<<PORTC6) | (0<<PORTC5) |
(0<<PORTC4) | (0<<PORTC3) | (0<<PORTC2) | (0<<PORTC1) | (0<<PORTC0);
DDRD=(0<<DDD7) | (0<<DDD6) | (1<<DDD5) | (1<<DDD4) | (0<<DDD3) | (0<<DDD2) | (0<<DDD1) | (0<<DDD0);
PORTD=(0<<PORTD7) | (0<<PORTD6) | (0<<PORTD5) |
(0<<PORTD4) | (0<<PORTD3) | (0<<PORTD2) | (0<<PORTD1) | (0<<PORTD0);
TCCR0=(0<<WGM00) | (0<<COM01) | (0<<COM00) | (0<<WGM01) | (0<<CS02) | (0<<CS01) | (0<<CS00);
TCNT0=0x00; OCR0=0x00;
TCCR1A=(1<<COM1A1) | (0<<COM1A0) | (1<<COM1B1) | (0<<COM1B0) | (0<<WGM11) | (1<<WGM10);
TCCR1B=(0<<ICNC1) | (0<<ICES1) | (0<<WGM13) | (1<<WGM12) | (0<<CS12) | (1<<CS11) | (0<<CS10);
OCR1AL=0x00; OCR1BH=0x00; OCR1BL=0x00; ASSR=0<<AS2;
TCCR2=(0<<PWM2) | (0<<COM21) | (0<<COM20) | (0<<CTC2) | (0<<CS22) | (0<<CS21) | (0<<CS20);
TCNT2=0x00; OCR2=0x00;
TIMSK=(0<<OCIE2) | (0<<TOIE2) | (0<<TICIE1) |
(0<<OCIE1A) | (0<<OCIE1B) | (0<<TOIE1) | (0<<OCIE0) | (0<<TOIE0);
MCUCR=(0<<ISC11) | (0<<ISC10) | (0<<ISC01) | (0<<ISC00); MCUCSR=(0<<ISC2);
UCSRA=(0<<RXC) | (0<<TXC) | (0<<UDRE) | (0<<FE) | (0<<DOR) | (0<<UPE) | (0<<U2X) | (0<<MPCM);
UCSRB=(0<<RXCIE) | (0<<TXCIE) | (0<<UDRIE) | (1<<RXEN) | (0<<TXEN) | (0<<UCSZ2) | (0<<RXB8) | (0<<TXB8);
UCSRC=(1<<URSEL) | (0<<UMSEL) | (0<<UPM1) | (0<<UPM0) | (0<<USBS) | (1<<UCSZ1) | (1<<UCSZ0) | (0<<UCPOL);
UBRRH=0x00; UBRRL=0x8F;
ACSR=(1<<ACD) | (0<<ACBG) | (0<<ACO) | (0<<ACI) | (0<<ACIE) | (0<<ACIC) | (0<<ACIS1) | (0<<ACIS0); SFIOR=(0<<ACME);
ADCSRA=(0<<ADEN) | (0<<ADSC) | (0<<ADATE) | (0<<ADIF) | (0<<ADIE) | (0<<ADPS2) | (0<<ADPS1) | (0<<ADPS0);
SPCR=(0<<SPIE) | (0<<SPE) | (0<<DORD) | (0<<MSTR) | (0<<CPOL) | (0<<CPHA) | (0<<SPR1) | (0<<SPR0);
// TWI disabled
TWCR=(0<<TWEA) | (0<<TWSTA) | (0<<TWSTO) | (0<<TWEN) | (0<<TWIE);
while (1)
This program was created by the CodeWizardAVR V3.12 Advanced Automatic Program Generator
#endif {
char status,data; status=UCSRA; data=UDR;
if ((status & (FRAMING_ERROR | PARITY_ERROR | DATA_OVERRUN))==0)
{
rx_buffer[rx_wr_index++]=data; #if RX_BUFFER_SIZE == 256
if (++rx_counter == 0) rx_buffer_overflow=1; #else
if (rx_wr_index == RX_BUFFER_SIZE) rx_wr_index=0; if (++rx_counter == RX_BUFFER_SIZE)
{
// Get a character from the USART Receiver buffer #define _ALTERNATE_GETCHAR_
#asm("cli")
if (PINB.4 == 0) {lcd_putsf("D"); delay_ms(300);} if (PINB.5 == 0) {lcd_putsf("C"); delay_ms(300);} if (PINB.6 == 0) {lcd_putsf("B"); delay_ms(300);} if (PINB.7 == 0) {lcd_putsf("A"); delay_ms(300);} PORTB = 0b11111101;
delay_ms(30);
if (PINB.4 == 0) {lcd_putsf("#"); delay_ms(300);} if (PINB.5 == 0) {lcd_putsf("9"); delay_ms(300);} if (PINB.6 == 0) {lcd_putsf("6"); delay_ms(300);} if (PINB.7 == 0) {lcd_putsf("3"); delay_ms(300);} PORTB = 0b11111011;
delay_ms(30);
if (PINB.4 == 0) {lcd_putsf("0"); delay_ms(300);} if (PINB.5 == 0) {lcd_putsf("8"); delay_ms(300);} if (PINB.6 == 0) {lcd_putsf("5"); delay_ms(300);} if (PINB.7 == 0) {lcd_putsf("2"); delay_ms(300);} PORTB = 0b11110111;
delay_ms(30);
if (PINB.5 == 0) {lcd_putsf("7"); delay_ms(300);} if (PINB.6 == 0) {lcd_putsf("4"); delay_ms(300);} if (PINB.7 == 0) {lcd_putsf("1"); delay_ms(300);} }
*/
void main(void) {
awal:
DDRA=(0<<DDA7) | (0<<DDA6) | (0<<DDA5) | (0<<DDA4) | (0<<DDA3) | (0<<DDA2) | (0<<DDA1) | (0<<DDA0);
PORTA=(0<<PORTA7) | (0<<PORTA6) | (0<<PORTA5) |
(0<<PORTA4) | (0<<PORTA3) | (0<<PORTA2) | (0<<PORTA1) | (0<<PORTA0);
//DDRB=(0<<DDB7) | (0<<DDB6) | (0<<DDB5) | (0<<DDB4) | (0<<DDB3) | (0<<DDB2) | (0<<DDB1) | (0<<DDB0);
// State: Bit7=T Bit6=T Bit5=T Bit4=T Bit3=T Bit2=T Bit1=T Bit0=T
//PORTB=(0<<PORTB7) | (0<<PORTB6) | (0<<PORTB5) |
(0<<PORTB4) | (0<<PORTB3) | (0<<PORTB2) | (0<<PORTB1) | (0<<PORTB0);
PORTB=0xff; DDRB=0x0f;
DDRC=(0<<DDC7) | (0<<DDC6) | (0<<DDC5) | (0<<DDC4) | (0<<DDC3) | (0<<DDC2) | (0<<DDC1) | (0<<DDC0);
PORTC=(0<<PORTC7) | (0<<PORTC6) | (0<<PORTC5) |
(0<<PORTC4) | (0<<PORTC3) | (0<<PORTC2) | (0<<PORTC1) | (0<<PORTC0);
DDRD=(0<<DDD7) | (0<<DDD6) | (1<<DDD5) | (1<<DDD4) | (0<<DDD3) | (0<<DDD2) | (0<<DDD1) | (0<<DDD0);
PORTD=(0<<PORTD7) | (0<<PORTD6) | (0<<PORTD5) |
TCCR0=(0<<WGM00) | (0<<COM01) | (0<<COM00) | (0<<WGM01) | (0<<CS02) | (0<<CS01) | (0<<CS00);
TCNT0=0x00; OCR0=0x00;
TCCR1A=(1<<COM1A1) | (0<<COM1A0) | (1<<COM1B1) | (0<<COM1B0) | (0<<WGM11) | (1<<WGM10);
TCCR1B=(0<<ICNC1) | (0<<ICES1) | (0<<WGM13) | (1<<WGM12) | (0<<CS12) | (0<<CS11) | (1<<CS10);
TCNT1H=0x00;
TCCR2=(0<<PWM2) | (0<<COM21) | (0<<COM20) | (0<<CTC2) | (0<<CS22) | (0<<CS21) | (0<<CS20);
TCNT2=0x00; OCR2=0x00;
TIMSK=(0<<OCIE2) | (0<<TOIE2) | (0<<TICIE1) |
(0<<OCIE1A) | (0<<OCIE1B) | (0<<TOIE1) | (0<<OCIE0) | (0<<TOIE0);
MCUCR=(0<<ISC11) | (0<<ISC10) | (0<<ISC01) | (0<<ISC00); MCUCSR=(0<<ISC2);
UCSRA=(0<<RXC) | (0<<TXC) | (0<<UDRE) | (0<<FE) | (0<<DOR) | (0<<UPE) | (0<<U2X) | (0<<MPCM);
UCSRB=(1<<RXCIE) | (0<<TXCIE) | (0<<UDRIE) | (1<<RXEN) | (0<<TXEN) | (0<<UCSZ2) | (0<<RXB8) | (0<<TXB8);
UCSRC=(1<<URSEL) | (0<<UMSEL) | (0<<UPM1) | (0<<UPM0) | (0<<USBS) | (1<<UCSZ1) | (1<<UCSZ0) | (0<<UCPOL);
UBRRL=0x8F;
ACSR=(1<<ACD) | (0<<ACBG) | (0<<ACO) | (0<<ACI) | (0<<ACIE) | (0<<ACIC) | (0<<ACIS1) | (0<<ACIS0); SFIOR=(0<<ACME);
ADCSRA=(0<<ADEN) | (0<<ADSC) | (0<<ADATE) | (0<<ADIF) | (0<<ADIE) | (0<<ADPS2) | (0<<ADPS1) | (0<<ADPS0);
SPCR=(0<<SPIE) | (0<<SPE) | (0<<DORD) | (0<<MSTR) | (0<<CPOL) | (0<<CPHA) | (0<<SPR1) | (0<<SPR0);
else if (input == 0)
This program was created by the CodeWizardAVR V3.12 Advanced Automatic Program Generator
External RAM size : 0
DDRA=(0<<DDA7) | (0<<DDA6) | (0<<DDA5) | (0<<DDA4) | (0<<DDA3) | (0<<DDA2) | (0<<DDA1) | (0<<DDA0);
PORTA=(0<<PORTA7) | (0<<PORTA6) | (0<<PORTA5) |
(0<<PORTA4) | (0<<PORTA3) | (0<<PORTA2) | (0<<PORTA1) | (0<<PORTA0);
DDRB=(0<<DDB7) | (0<<DDB6) | (0<<DDB5) | (0<<DDB4) | (0<<DDB3) | (0<<DDB2) | (0<<DDB1) | (0<<DDB0);
PORTB=(0<<PORTB7) | (0<<PORTB6) | (0<<PORTB5) |
(0<<PORTB4) | (0<<PORTB3) | (0<<PORTB2) | (0<<PORTB1) | (0<<PORTB0);
DDRC=(0<<DDC7) | (0<<DDC6) | (0<<DDC5) | (0<<DDC4) | (0<<DDC3) | (0<<DDC2) | (0<<DDC1) | (0<<DDC0);
PORTC=(0<<PORTC7) | (0<<PORTC6) | (0<<PORTC5) |
(0<<PORTC4) | (0<<PORTC3) | (0<<PORTC2) | (0<<PORTC1) | (0<<PORTC0);
DDRD=(0<<DDD7) | (0<<DDD6) | (0<<DDD5) | (0<<DDD4) | (0<<DDD3) | (0<<DDD2) | (0<<DDD1) | (0<<DDD0);
PORTD=(0<<PORTD7) | (0<<PORTD6) | (0<<PORTD5) |
(0<<PORTD4) | (0<<PORTD3) | (0<<PORTD2) | (0<<PORTD1) | (0<<PORTD0);
TCNT0=0x00; OCR0=0x00;
TCCR1A=(0<<COM1A1) | (0<<COM1A0) | (0<<COM1B1) | (0<<COM1B0) | (0<<WGM11) | (0<<WGM10);
TCCR1B=(0<<ICNC1) | (0<<ICES1) | (0<<WGM13) | (0<<WGM12) | (0<<CS12) | (0<<CS11) | (0<<CS10);
TCNT1H=0x00;
TCCR2=(0<<PWM2) | (0<<COM21) | (0<<COM20) | (0<<CTC2) | (0<<CS22) | (0<<CS21) | (0<<CS20);
TCNT2=0x00; OCR2=0x00;
TIMSK=(0<<OCIE2) | (0<<TOIE2) | (0<<TICIE1) |
(0<<OCIE1A) | (0<<OCIE1B) | (0<<TOIE1) | (0<<OCIE0) | (0<<TOIE0);
MCUCR=(0<<ISC11) | (0<<ISC10) | (0<<ISC01) | (0<<ISC00); MCUCSR=(0<<ISC2);
UCSRA=(0<<RXC) | (0<<TXC) | (0<<UDRE) | (0<<FE) | (0<<DOR) | (0<<UPE) | (0<<U2X) | (0<<MPCM);
UCSRB=(0<<RXCIE) | (0<<TXCIE) | (0<<UDRIE) | (0<<RXEN) | (1<<TXEN) | (0<<UCSZ2) | (0<<RXB8) | (0<<TXB8);
UCSRC=(1<<URSEL) | (0<<UMSEL) | (0<<UPM1) | (0<<UPM0) | (0<<USBS) | (1<<UCSZ1) | (1<<UCSZ0) | (0<<UCPOL);
ACSR=(1<<ACD) | (0<<ACBG) | (0<<ACO) | (0<<ACI) | (0<<ACIE) | (0<<ACIC) | (0<<ACIS1) | (0<<ACIS0); SFIOR=(0<<ACME);
ADCSRA=(0<<ADEN) | (0<<ADSC) | (0<<ADATE) | (0<<ADIF) | (0<<ADIE) | (0<<ADPS2) | (0<<ADPS1) | (0<<ADPS0);
SPCR=(0<<SPIE) | (0<<SPE) | (0<<DORD) | (0<<MSTR) | (0<<CPOL) | (0<<CPHA) | (0<<SPR1) | (0<<SPR0);
TWCR=(0<<TWEA) | (0<<TWSTA) | (0<<TWSTO) | (0<<TWEN) | (0<<TWIE);
while (1) {
// Place your code here putchar(a);
delay_ms(100); }
DAFTAR PUSTAKA
Aji,Seno.2013.Kontrol Kipas Angin Menggunakan Bluetooth Berbasis
Arduino.[4]
Budiharto,Widodo.2005.Panduan Lengkap Belajar Mikrokontroller Perancangan
Sistem dan Aplikasi Mikrokontroller.Jakarta: PT. Alex Media Komputindo
Daryanto, 2001.Rengetahuan Praktis Teknik Radio.PT Bumi Aksara:Jakarta
Kadavi,Krisna.2010.Aplikasi Mikrokontroler AT89s51 Sebagai Basis Pada
Sistem Pengendalian Lampu Dan Pintu Dengan Menggunakan Bahasa
Bascom 8051.[3]
Kasogi,Nadila.2010. Perancangan Pengendali Lampu Ruangan
Dengan Menggunakan Komputer BerbasisMikrokontroler
ATmega8535.[2]
Sultan Setiawan, 2006. Mudah dan Menyenagkan Belajar Mikrokontroler. Andi
Offset]Rafiudin, Rahmat, 2006. Sistem Komunikasi Data Mutakhir.
Yogyakarta :Penerbit Andi Yogyakarta
Sanjaya,W.2013.Simulasi Menggunakan Cod Vision AVR dan Proteus.
Yogyakarta: Penerbit Gava Media.
Wahyono, Teguh. 2003. Prinsip Dasar dan Teknologi Komunikasi Data. Edisi
Pertama. Yogyakarta : Penerbit Graha Ilmu
Wibowo,Ari.2011.Pengaturan Kipas Dengan berbasis mikrokontroler
dengan menggunakan sensor suhu.[1]
http://elektronika-dasar.web:id/matrix-keypad-4x4-untuk mikrokontroler
diakses tanggal 22 Mei 2016, pukul 21.20 a.m
digilib.polban.ac.id/files/disks1/73/frekuensi radio 315 Mhz
BAB 3
PERANCANGAN SISTEM
3.1 Diagram Blok Sistem
Adapun diagram blok dari sistem yang dirancang adalah seperti yang
diperlihatkan pada gambar 3.1 berikut ini :
ATMega
Gambar 3.1. Diagram Blok Sistem
3.1.1 Fungsi Tiap Blok
1. Blok Mikrokontroler 1 : Sebagai memproses data untuk dikirim
2. Blok Mikrokontroler 2 : Sebagai memproses data yang diterima
dan di bandingkan untuk mengontrol kipas
dan lampu
3. Blok Keypad : Sebagai alat control on/of lampu dan kipas
4. Blok Power Suplay : Sebagai penyedia tegangan ke system
6. Blok Resever RF : Menerima data dari transmiter
7. Blok LCD : Sebagai display
8. Blok Kipas : Sebagai beban listrik yang dikontrol
9. Blok Lampu : Sebagai beban listrik yang dikontrol
10.Blok driver : Sebagai rangkaian pengendali
3.2 Rangkaian Mikrokontroler ATMega32
Rangkaian sistem minimum mikrokontroler ATMega32 dapat ‘dilihat pada gambar 3.2 di bawah ini :
Gambar 3.2 Rangkaian mikrokontroler ATMega32
Dari gambar 3.2, Rangkaian tersebut berfungsi sebagai pusat kendali dari seluruh
sistem yang ada. Komponen utama dari rangkaian ini adalah IC Mikrokontroler
ATMega32. Semua program diisikan pada memori dari IC ini sehingga rangkaian
dapat berjalan sesuai dengan yang dikehendaki. Pin 12 dan 13 dihubungkan ke
XTAL 11.0952 MHz dan dua buah kapasitor 30 pF. XTAL ini akan
perintah dalam program. Pin 9 merupakan masukan reset (aktif rendah). Pulsa
transisi dari tinggi ke rendah akan me-reset mikrokontroler ini.
Untuk men-download file heksadesimal ke mikrokontroler, Mosi, Miso,
Sck, Reset, Vcc dan Gnd dari kaki mikrokontroler dihubungkan ke Jack 10 Pin
header sebagai konektor yang akan dihubungkan ke ISP Programmer. Dari ISP
Programmer inilah dihubungkan ke komputer melalui port paralel. Kaki Mosi,
Miso, Sck, Reset, Vcc dan Gnd pada mikrokontroler terletak pada kaki 6, 7, 8, 9,
10 dan 11. Apabila terjadi keterbalikan pemasangan jalur ke ISP Programmer,
maka pemograman mikrokontroler tidak dapat dilakukan karena mikrokontroler
tidak akan bisa merespon.
3.3. Rangkaian LCD (Liquid Crystal Display)
Pada alat ini, display yang digunakan adalah LCD (Liquid Crystal Display) 16 x
2. Untuk blok ini tidak ada komponen tambahan karena mikrokontroler dapat
memberi data langsung ke LCD, pada LCD Hitachi - M1632 sudah terdapat driver
untuk mengubah data ASCII output mikrokontroler menjadi tampilan karakter.
Pemasangan potensio sebesar 5 KΩ untuk mengatur kontras karakter yang tampil.
Gambar 3.3 berikut merupakan gambar rangkaian LCD yang dihubungkan ke
mikrokontroler.
Dari gambar 3.3, rangkaian ini terhubung ke PB.0... PB.7, yang merupakan pin
I/O dua arah dan pin fungsi khusus, yaitu sebagai Timer/Counter, komperator
analog dan SPI mempunyai fungsi khusus sebagai pengiriman data secara serial.
Sehingga nilai yang akan tampil pada LCD display akan dapat dikendalikan oleh
Mikrokontroller ATMega32.
3.4. Rangkaian Power Suplay
Rangkaian ini berfungsi untuk mensupplay tegangan ke seluruh rangkaian yang
ada. Rangkaian PSA yang dibuat terdiri dari dua keluaran, yaitu 5 volt dan 12
volt, keluaran 5 volt digunakan untuk mensupplay tegangan ke seluruh rangkaian,
sedangkan keluaran 12 volt digunakan untuk mensuplay tegangan ke motor dan
kipas 12 V DC. Rangkaian power supplay dapat ditunjukkan pada gambar 3.4
seperti dibawah ini.
3.5 Rangkaian radio freakuensi 315 Mhz
(a) (b)
Gambar 3.5. Rangkaian radio frekuensi (a) transmitter dan (b) receiver
Paket 315 Mhz RF link kit terdiri dari pemancar (Tx) dan penerima (Rx), yang
secara umum digunakan untuk remote control. Jenis atau model pada gambar
adalah WLS107B4B, dengan berat sekitar 5 g, dengan frekuensi sebesar 315 Mhz,
Modulasi ASK, keluaran data penerima : tinggi - 1/2 Vcc, rendah - 0.7v,
Tegangan masukkan transmisi : 3-12V (semakin tegangan masukannya tinggi
maka kekuatan transmisi juga lebih baik, Tegangan masukkan penerima : 3.3-6V
(semakin tegangan masukannya tinggi maka kekuatan penerimaan juga semakin
baik).
3.6. Rangkaian Keypad 4 x 4
Keypad Matriks adalah tombol-tombol yang disusun secara maktriks (baris x
kolom) sehingga dapat mengurangi penggunaan pin input. Sebagai contoh,
Keypad Matriks 4×4 cukup menggunakan 8 pin untuk 16 tombol. Proses
pengecekkan dari tombol yang dirangkai secara maktriks adalah dengan teknik
scanning, yaitu proses pengecekkan yang dilakukan dengan cara memberikan
umpan-data pada satu bagian dan mengecek feedback (umpan-baliknya) pada
bagian yang lain. Dalam hal ini, pemberian umpan-data dilakukan pada bagian
baris dan pengecekkan umpan-balik pada bagian kolom. Pada saat pemberian
umpan-data pada satu baris, maka baris yang lain harus dalam kondisi inversi-nya.
Gambar 3.6 rangkaian keypad 4x4
3.7. Rangkaian Kipas dan Lampu
Gambar 3.7 rangkaian kipas dan lampu
Rangkaian lampu ini memanfaatkan transistor bd139 yang tegangan/arus basisnya
dapat diatur untuk mendaptakan tegangan kolektor yang variatif kaki basis
dihubungkan ke out PWM mikrokontroler melalui resistor 4k7 untuk menghindari
kerusakan pada mikrokontroler, kaki kolektor dihubungkan ke negative motor
atau lampu dan positif dihubungkan ke 12 volt, kemudian emitter dihubungkan ke
GND. Resistansi kolektor ke emitor akan mendekati tak terhingga pada saat
3.8. Flowcart Transmiter
Start
inisialisasi
Input keypad
Terima data proses
Kirim data sistem
Selesai
3.9 Flowchart Receiver
BAB IV
HASIL DAN PEMBAHASAN
4.1. Pengujian Rangkaian Power Supply
Pengujian rangkaian power supply ini bertujuan untuk mengetahui tegangan yang
dikeluarkan oleh rangkaian tersebut, dengan mengukur tegangan keluaran dari
power supply menggunakan multimeter digital. Setelah dilakukan pengukuran
maka diperoleh besarnya tegangan keluaran sebesar 4,96 volt. Dengan begitu
dapat dipastikan apakah terjadi kesalahan terhadap rangkaian atau tidak. Jika
diukur, hasil dari keluaran tegangan tidak murni sebesar +5 Volt Hasil tersebut
dikarenakan beberapa faktor, diantaranya kualitas dari tiap-tiap komponen yang
digunakan nilainya tidak murni.Selain itu, tegangan jala-jala listrik yang
digunakan tidak stabil. Pada pengujian Power Suplay, tegangan yang kita
butuhkan sebesar 5 volt, pertama masuk tegangan AC sebesar 220 volt dari PLN,
kemudian disalaurkan ke travo sehingga tegangan menjadi 12 volt AC, disaring
lagi ke diode sehingga menjadi 12 volt DC, kemudian di hubungkan dengan IC
7805 sehingga tegangan menjadi 5 volt DC.
4.2. Pengujian Rangkaian Mikrokontroler ATMega32
Karena pemrograman menggunakan mode ISP (In System Programming)
mikrokontroler harus dapat diprogram langsung pada papan rangkaian dan
rangkaian mikrokontroler harus dapat dikenali oleh program downloader.
Pada pengujian ini berhasil dilakukan dengan dikenalinya jenis mikrokontroler
oleh program downloader yaitu ATMega32.
Gambar 4.2. Informasi Signature Mikrokontroler
ATMega32 menggunakan kristal dengan frekuensi 11,0592 MHz, apabila Chip
Signature sudah dikenali dengan baik dan dalam waktu singkat, bisa dikatakan
rangkaian mikrokontroler bekerja dengan baik dengan mode ISP-nya.
4.3. Pengujian rangkain LCD
Bagian ini hanya terdiri dari sebuah LCD dot matriks 2 x 16 karakter yang
keterangan. LCD dihubungkan langsung ke Port C dari mikrokontroler yang
berfungsi mengirimkan data hasil pengolahan untuk ditampilkan dalam bentuk
alfabet dan numerik pada LCD.Display karakter pada LCD diatur oleh pin EN,
RS dan RW: Jalur EN dinamakan Enable. Jalur ini digunakan untuk memberitahu
LCD bahwa anda sedang mengirimkan sebuah data. Untuk mengirimkan data ke LCD, maka melalui program EN harus dibuat logika low “0” dan set ( high ) pada dua jalur kontrol yang lain RS dan RW. Jalur RW adalah jalur kontrol Read/
Write. Ketika RW berlogika low (0), maka informasi pada bus data akan dituliskan pada layar LCD. Ketika RW berlogika high ”1”, maka program akan melakukan pembacaan memori dari LCD. Sedangkan pada aplikasi umum pin
RW selalu diberi logika low ( 0 )
Berdasarkan keterangan di atas maka kita sudah dapat membuat progam
untuk menampilkan karaker pada display LCD. Adapun program yang diisikan ke
mikrokontroller untuk menampilkan karakter pada display LCD adalah sebagai
Program di atas akan menampilkan kata “LAMPU” di baris pertama pada display LCD 2x16. .
Gambar 4.3 Pengujian LCD
4.4 Pengujian Keypad Matriks 4 X 4
Untuk pengujian keypad ada beberapa tahap. Tentukan terlebih dahulu kolom
sebagai output dari mikrokontroler sedangkan baris sebagai input
kemikrokontroler.
Langkah pertama (Scanning kolom 1 PB0)
keluarkan output ke kolom 1(PB0)
kemudian deteksi penekanan baris1 (PB4)
kemudian deteksi penekanan baris2 (PB5)
kemudian deteksi penekanan baris3 (PB6)
kemudian deteksi penekanan baris4 (PB7)
Langkah kedua (Scanning kolom 2 PB1)
keluarkan output ke kolom 2 (PB1)
kemudian deteksi penekanan baris1 (PB4)
kemudian deteksi penekanan baris2 (PB5)
kemudian deteksi penekanan baris3 (PB6)
kemudian deteksi penekanan baris4 (PB7)
Langkah ketiga (Scanning kolom 3 PB2)
keluarkan output ke kolom 3 (PB2)
kemudian deteksi penekanan baris1 (PB4)
kemudian deteksi penekanan baris2 (PB5)
kemudian deteksi penekanan baris4 (PB7)
Langkah kempat (Scanning kolom 4 PB3)
keluarkan output ke kolom 4 (PB3)
kemudian deteksi penekanan baris1 (PB4)
kemudian deteksi penekanan baris2 (PB5)
kemudian deteksi penekanan baris3 (PB6)
kemudian deteksi penekanan baris4 (PB7)
Untuk pengujian matriks 4 x 4 dapat digunakan program sebagai berikut:
#include <stdio.h>
void tekan_keypad_tampil_lcd() //penekanan keypad kemudian ditampilkan di
LCD
{PORTB = 0b11111110;
if (PINB.4 == 0){data=16;}
else if (PINB.5 == 0){data=15;}
else if (PINB.6 == 0){data=14;}
else if (PINB.7 == 0){data=13;}
else if (PINB.5 == 0) {data=7;}
else if (PINB.6 == 0) {data=4;}
else if (PINB.7 == 0) {data=1;}
}void main(void)
{
DDRA=(0<<DDA7) | (0<<DDA6) | (0<<DDA5) | (0<<DDA4) | (0<<DDA3) |
(0<<DDA2) | (0<<DDA1) | (0<<DDA0);
PORTA=(0<<PORTA7) | (0<<PORTA6) | (0<<PORTA5) | (0<<PORTA4) |
(0<<PORTA3) | (0<<PORTA2) | (0<<PORTA1) | (0<<PORTA0);
PORTB=0xff;
DDRB=0x0f;
DDRC=(0<<DDC7) | (0<<DDC6) | (0<<DDC5) | (0<<DDC4) | (0<<DDC3) |
(0<<DDC2) | (0<<DDC1) | (0<<DDC0);
PORTC=(0<<PORTC7) | (0<<PORTC6) | (0<<PORTC5) | (0<<PORTC4) |
(0<<PORTC3) | (0<<PORTC2) | (0<<PORTC1) | (0<<PORTC0);
DDRD=(0<<DDD7) | (0<<DDD6) | (0<<DDD5) | (0<<DDD4) | (0<<DDD3) |
(0<<DDD2) | (0<<DDD1) | (0<<DDD0);
PORTD=(0<<PORTD7) | (0<<PORTD6) | (0<<PORTD5) | (0<<PORTD4) |
(0<<PORTD3) | (0<<PORTD2) | (0<<PORTD1) | (0<<PORTD0);
UCSRA=(0<<RXC) | (0<<TXC) | (0<<UDRE) | (0<<FE) | (0<<DOR) | (0<<UPE)
| (0<<U2X) | (0<<MPCM);
UCSRB=(0<<RXCIE) | (1<<TXCIE) | (0<<UDRIE) | (0<<RXEN) | (1<<TXEN) |
(0<<UCSZ2) | (0<<RXB8) | (0<<TXB8);
UCSRC=(1<<URSEL) | (0<<UMSEL) | (0<<UPM1) | (0<<UPM0) | (0<<USBS) |
(1<<UCSZ1) | (1<<UCSZ0) | (0<<UCPOL);
}
}
Gambar 4.4 Pengujian Keypad Matriks
4.5 Pengujian Radio Frekuensi 315 MHZ
Pengujian radio frekuensi 315 Mhz ini bertujuan untuk mengetahui keadaan alat
tersebut. Alat tersebut digunakan untuk mengirim data secara nirkabel atau tanpa
unsigned char tx_counter=0;
if (tx_rd_index == TX_BUFFER_SIZE) tx_rd_index=0;
#endif
if (tx_counter || ((UCSRA & DATA_REGISTER_EMPTY)==0))
{
tx_buffer[tx_wr_index++]=c;
#if TX_BUFFER_SIZE != 256
if (tx_wr_index == TX_BUFFER_SIZE) tx_wr_index=0;
#endif
++tx_counter;
}
else
#asm("sei")
}
#pragma used-
#endif
Program diatas mengirimkan carekter hello ketansmiter. Data tersebut dikirim
dengan jenis data char. Kemudian untuk receiver yaitu dengan memasukan
unsigned int rx_counter=0;
if ((status & (FRAMING_ERROR | PARITY_ERROR |
DATA_OVERRUN))==0)
{
rx_buffer[rx_wr_index++]=data;
#if RX_BUFFER_SIZE == 256
// special case for receiver buffer size=256
if (++rx_counter == 0) rx_buffer_overflow=1;
#else
if (rx_wr_index == RX_BUFFER_SIZE) rx_wr_index=0;
if (++rx_counter == RX_BUFFER_SIZE)
data=rx_buffer[rx_rd_index++];
#if RX_BUFFER_SIZE != 256
if (rx_rd_index == RX_BUFFER_SIZE) rx_rd_index=0;
#endif
#asm("cli")
--rx_counter;
#asm("sei")
return data;
}
#pragma used-
#endif
Dari program diatas data yang diterima dari transmiter berupa char. Dan pada
program ini di konversi kedalam bilangan hexa.
4.6 Pengujian Alat Keseluruhan
Gambar 4.6 Pengujian Alat
Pada pengujian ini, merupakan pengujian alat secara keselurahan. Pada pengujian
menggunakan gelombang radio untuk mengontrol lampu dan kipas secara jarak
jauh, pada bagian transmiter (remote) terdiri dari keypad, mikrokontroler dan
gelombang frekuensi 315Mhz. dari keypad data akan dikirim ke transmiter secara
wireless (tanpa kabel). Kemudian pada receiver data diterima dan diolah
kemudian dibandingkan dengan data yang telah ditentukan pada program sebagai
pengontrolan. Pada alat ini, jika pada transmiter ditekan 1, maka Kipas akan hidup
dengan kecepatan 25% , ditekan 2 kipas dengan kecepatan 50%, ditekan 3 kipas
dengan kecepatan 75% dan jika ditekan 4 kipas akan bergerak dengan kecepatan
100%. Begitu juga dengan lampu, jika ditekan 5 lampu akan hidup 25%, ditekan 6
akan hidup 50%,ditekan 7 akan hidup 75% dan jika ditekan 8 lampu akan hidup
100%. Jika ditekan. Untuk mematikan lampu dan kipas ditekan 0. Untuk
mematikan lampu ditekan C, mematikan kipas ditekan B. Berikut tabel hasil
pengujian alat:
Tabel 4.6 Pengujian Alat Keseluruhan Data yang di
kirim
( keypad)
Vbasis Vcolector Status Kipas Status Lampu
BAB 5
KESIMPULAN DAN SARAN
5.1 Kesimpulan
Dari hasil perancangan alat hingga pengujian dan pembahasan sistem maka
penulis dapat menarik kesimpulan, antara lain :
1. Telah berhasil dirancang sebuah alat yang dapat mengendalikan atau
mengontrol lampu dan kipas angin sesuai dengan input yang diinginkan
melalui tombol keypad yang tersedia dengan jarak jauh.
2. Berdasarkan pengujian yang telah dilakukan pada alat ini komunikasi
jarak jauh dapat dilakukan dengan menggunakan radio frekuensi, dimana
radio frekuensi transmiter sebagai pengirim dan radio frekuensi receiver
sebagai penerima.
3. Setelah pengujian alat kita dapat mengatur kecepatan kipas dan terang
lampu sesuai yg diingkan, dimana jika kita input 1 dari keypad maka
kecepatan kipas 25%, input 2 kecepatan kipas 50%, input 3 kecepatan
kipas 75%, input 4 kecepatan kipas maksimal 100%, input 5 terang
lampu 25 %, input 6 terang lampu 50%, input 7 terang lampu 75%, input
8 terang lampu maksimal 100%, dan untuk mematikan nya kita input 0.
5.2 Saran
Setelah melakukan penelitian, diperoleh beberapa hal yang dapat dijadikan
saran untuk dilakukan penelitian lebih lanjut yaitu :
1.Untuk pengembangan lebih lanjut, perlunya dilakukan penambahan lampu
dan kipas sehingga lebih banyak yang dikontrol.
2.Untuk pengembangan lebih lanjut, perlu dibuat alat yang lebih besar
sehinngga dapat lebih berguna untuk kehidupan sehari-hari.
3.Untuk pengembangan lebih lanjut perlu dibuat feedback antara Receiver
BAB 2
TINJAUAN PUSTAKA
2.1 Mikrokontroler
Mikrokontroler adalah sebuah chip yang berfungsi sebagai pengontrol rangkaian
elektronik dan umumnya dapat menyimpan program didalamnya. Mikrokontroler
umumnya terdiri dari CPU (Central Unit Processing Unit), memori, I/O tertentu
dan unit pendukung seperti Analog-to-Digital Converter (ADC) yang sudah
terintegrasi di dalamnya.kelebihan utama dari mikrokontroler adalah tersedianya
RAM dan peralatan I/O pendukung sehingga ukuran board mikrokontroler
menjadi sangat ringkas. Mikrokontroler juga merupakan chip cerdas yang menjadi
tren dalam pengendalian dan otomatisas serta memiliki port sebagai input dan
output. Dengan banyak jenis keluarga,kapasitas memori, dan berbagai figure,
mikrokontroler menjadi pilihan dalam aplikasi prosesor mini untuk pengendalian
skala kecil. Setelah mengalami perkembangan, teknologi mikroprosesor dan
mikrokontroler mengalami peningkatan yang terjadi pada tahun 1996 s/d 1998.
ATMEL mengeluarkan teknologi mikrokontroler terbaru berjenis AVR (Alf and Vegard’s Risc processor) yang menggunakan teknologi RISC (Reduce Instruction Set Computer) dengan keunggulan lebih banyak yang dibandingkan
pendahulunya, yaitu mikrokontroler jenis MCS. Mikrokontroler jenis MCS
memiliki kecepatan kerja 1/12 kali frekuensi osilator yang digunakan sedangkan
pada kecepatan frekuensi kerja AVR sama dengan kecepatan frekuensi kerja
osilator yang digunakan. Jadi apabila menggunakan frekuensi osilator yang sama,
maka AVR mempunyai kecepatan kerja 12 kali lebih cepat dibanding dengan
MCS. Dalam perancangan alat ini mikrokontroler yang digunakan adalah
ATmega32 yang merupakan produksi ATMEL yang berjenis AVR.
2.2 Mikrokontroler ATMega 32
Mikrokontroler merupakan sebuah single chip yang didalamya telah dilengkapi
dengan CPU (Central Prosessing Unit); RAM ( RandomAcces Memory); ROM
spesifik digunakan untuk aplikasi –aplikasi control dan buka aplikasi serbaguna. Mikrokontroler umumnya bekerja pada frekuensi 4MHZ-40MHZ. Perangkat ini
sering digunakan untuk kebutuhan kontrol tertentu seperti pada sebuah penggerak
motor. Read only Memory (ROM) yang isinya tidak berubah meskipun IC
kehilangan catu daya. Sesuai dengan keperluannya, sesuai dengan susunan
MCS-51. Memory penyimpanan program dinamakan sebagai memory program.
Random Acces Memory (RAM) isinya akan begitu sirna IC kehilangan catudaya
dipakai untuk menyimpan data pada saat program bekerja. RAM yang dipakai
untuk menyimpan data ini disebut sebagai memori data.
Mikrokontroler biasanya dilengkapi dengan UART (Universal
Asychoronous Receiver Transmitter) yaitu port serial komunikasi serial asinkron,
USART (Universal Asychoronous\Asy choronous Receiver Transmitter) yaitu
port yang digunakan untuk komunikasi serial asinkron dan asinkron yang
kecepatannya 16 kali lebih cepat dari Uart, SPI ( Serial Port Interface), SCI (
Serial Communication Interface ), Bus RC ( Intergrated circuit Bus ) merupakan
2 jalur yang terdapat 8 bit, CAN ( Control Area Network ) merupakan standard
pengkabelan SAE (Society of Automatic Enggineers).
Pada system computer perbandingan RAM dan ROM-nya besar, artinya
program-program pengguna disimpan dalam ruang RAM yang relatif
besar,sedangkan rutin-rutin antar muka pernagkat keras disimpan dalm ruang
ROM yang kecil. Sedangkan pada mikrokontroler, perbandingan ROM dan
RAM-nya yang besar artiRAM-nya program control disimpan dalam ROM yang ukuranRAM-nya
relative lebih besar, sedangkan RAM digunakan sebagai tempat penyimpanan
sedrhana sementara, termasuk register-register yang digunakan pada Microctroller
yang bersangkutan.
2.2.1 Arsitektur ATMega 32
Fitur-fitur yang dimiliki ATmega32 sebagai berikut:
1. Frekuensi clock maksimum 16 MHz.
2. Jalur I/O 32 buah, yang terbagi dalam PortA, PortB, PortC dan PortD.
3. Analog to Digital Converter 10 bit sebanyak 8 input, 4 chanel PWM.
5. CPU 8 bit yang terdiri dari 32 register.
6. Watchdog Timer dengan osilator internal.
7. SRAM sebesar 2K Byte.
8. Memori Flash sebesar 32K Byte dengan kemampuan read while write.
9. Interrupt internal maupun eksternal.
10.Port komunikasi SPI.
11.EEPROM sebesar 512 byte yang dapat diprogram saat operasi.
12.Analog Comparator.
13. Komunikasi serial standar USART dengan kecepatan maksimal 2,5 Mbps
2.2.2 Konfigurasi ATMega 32
Mikrokontroler merupakan suatu device yang di dalamnya sudah terintegrasi
dengan I/O port,RAM,ROM,sehingga dapat digunakan untuk berbagai keperluan
kontroler .Mikrokontroler AVR ATmega32 merupakan low power CMOS
mikrokontroler 8 bit yang di kembangkan oleh atmel dengan arsitektur
RISC(Reduced Instruction SET Computer) sehingga dapat mencapai troughput
eksekusi instruksi 1 MIPS(Million Instruction Per Second).Mikrokontroler AVR
dapat dikelompokkan menjadi 4 kelas yaitu kelas ATtiny,kelas AT90xx,keluarga
ATmega,dan kelas AT86RFxx.pada dasarnya yang membedakan masing-masing
kelas adalah memori,peripheral,spedd.operasi tegangan dan fungsinya sedangkan
dari segi arsitektur dan instruksi yang di gunakan bisa di katakan hampir sama.
Penjelasan konfigurasi pin pada mikrokontroler AVR ATmega32 secara umum:
a. Pin 1 sampai 8 (port B) merupakan port paralel 8 bit dua arah (bidirectional),
yang dapat di gunakan untuk general purpose dan special feature.
b. Pin 9 (riset) jika terdapat minimum pulse pada saat active low.
c. Pin 10 (VCC) di hubungkan ke Vcc (2,7-5,5 Volt).
d. Pin 11 dan 31 (GND di hubungkan ke Vssatau ground.
e. Pin 12 (XTAL 2) adalah pin masukan ke rangkaian osilator internal. Sebuah
osilator kristal atau sumber osilator luar dapat di gunakan.
f. Pin 13 (XTAL 1) adalah pin keluaran ke rangkaian osilator internal.pin ini di
pakai bila menggunakan osilator kristal.
g. Pin 14 sampai 21 (port D) adalah 8 bit dua arah (bi-directional I/O) port
dengan internal pull-up resistors di gunaka untuk general purpose dan special
feature.
h. Pin 22 sampai 29 (port C) adalah 8 bit dua arah (bi-directional I/O) port
dengan internal pull-up resistors di gunaka untuk general purpose dan special
feature.
i. Pin 30 adalah Avcc pin penyuplai daya untuk port A dan A/D converter dan di
hubungkan ke Vcc.jika ADC di gunakan maka pin ini di hubungkan ke Vcc.
j. Pin 32 adalah A REF pin yang berfungsi sebagai referensi untuk pin analog
jika A/D converter di gunakan.
dengan internal pull-up resistors di gunaka untuk general purpose.
Gambar 2.2 Pin-pin ATMega32
Secara fungsional konfigurasi pin ATMega32 adalah sebagai berikut:
1. VCC
Sumber Tegngan
2. GND
(Ground)
Ground
3. Port A (PA7 – PA0)
Port A adalah 8-bit port I/O yang bersifat bi-directional dan setiap pin
memilki internal pull-up resistor. Output buffer port A dapat mengalirkan
arus sebesar 20 mA. Ketika port A digunakan sebagai input dan di pull-up
secara langsung, maka port A akan mengeluarkan arus jika internal pull-up
resistor diaktifkan. Pin-pin dari port A memiliki fungsi khusus yaitu dapat
berfungsi sebagai channel ADC (Analog to Digital Converter) sebesar 10
bit. Fungsi-fungsi khusus pin-pin port A dapat ditabelkan seperti yang
tertera pada table.
Tabel 2.1 Fungsi khusus port A
Port Alternate Function
PA6 ADC6 (ADC input channel 6)
PA5 ADC5 (ADC input channel 5)
PA4 ADC4 (ADC input channel 4)
PA3 ADC3 (ADC input channel 3)
PA2 ADC2 (ADC input channel 2)
PA1 ADC1 (ADC input channel 1)
PA0 ADC0 (ADC input channel 0)
4. Port B (PB7 – PB0)
Port B adalah 8-bit port I/O yang bersifat bi-directional dan setiap pin
mengandung internal pull-up resistor. Output buffer port B dapat
mengalirkan arus sebesar 20 mA. Ketika port B digunakan sebagai input
dan di pull-down secara external, port B akan mengalirkan arus jika
internal pull-up resistor diaktifkan.
Pin-pin port B memiliki fungsi-fungsi khusus, diantaranya :
a.SCK port B, bit 7
Input pin clock untuk up/downloading memory.
b.MISO port B, bit 6
Pin output data untuk uploading memory.
c.MOSI port B, bit 5
Pin input data untuk downloading memory.
Tabel 2.2 Fungsi khusus port B
Port Alternate Function
PB7 SCK (SPI Bus Serial Clock)
PB6 MISO (SPI Bus Master Input/Slave Output)
PB6 MOSI (SPI Bus Master Output/Slave Input)
PB5 SS (SPI Slave Select Input)
PB3
AIN1 (Analog Comparator Negative Input)
OCO (Timer/Counter0 Output Compare Match Output)
PB2
AIN0 (Analog Comparator Positive Input)
INT2 (External Interrupt 2 Input)
PB1 T1 (Timer/Counter1 External Counter Input)
PB0
T0 (Timer/Counter External Counter Input) XCK
(USART External Clock Input/Output)
5. Port C (PC7 – PC0)
Port C adalah 8-bit port I/O yang berfungsi bi-directional dan setiap pin
memiliki internal pull-up resistor. Output buffer port C dapat mengalirkan
arus sebesar 20 mA. Ketika port C digunakan sebagai input dan di pull-down
secara langsung, maka port C akan mengeluarkan arus. Fungsi-fungsi khusus
Tabel 2.3 Fungsi khusus port C
Port Alternate Function
PC7 TOSC2 (Timer Oscillator Pin 2)
PC6 TOSC1 (Timer Oscillator Pin 1)
PC6 TD1 (JTAG Test Data In)
PC5 TD0 (JTAG Test Data Out)
PC3 TMS (JTAG Test Mode Select)
PC2 TCK (JTAG Test Clock)
PC1 SDA (Two-wire Serial Bus Data Input/Output Line)
PC0 SCL (Two-wire Serial Bus Clock Line)
6. Port D (PD7 – PD0)
Port D adalah 8-bit port I/O yang berfungsi bi-directional dan setiap pin
memiliki internal pull-up resistor. Output buffer port D dapat mengalirkan
arus sebesar 20 mA. Ketika port D digunakan sebagai input dan di pull-down
secara langsung, maka port D akan mengeluarkan arus jika internal pull-up
resistor diaktifkan. Fungsi-fungsi khusus pin-pin port D dapat ditabelkan
seperti yang tertera pada tabel dibawah ini.
Tabel 2.4 Fungsi khusus port D
Port Alternate Function
PD7 ICP1 (Timer/Counter1 Input Capture Pin)
PD4 OCIB (Timer/Counter1 Output Compare B Match Output)
PD6 TD0 (JTAG Test Data Out)
PD3 INT1 (External Interrupt 1 Input)
PD2 INT0 (External Interrupt 0 Input)
PD1 TXD (USART Output Pin)
PD0 RXD (USART Input Pin)
2.2.3 Arsitektur CPU ATMega32
Fungsi utama CPU adalah memastikan pengeksekusian instruksi dilakukan
dengan benar. Oleh karena itu CPU harus dapat mengakses memori, melakukan
kalkulasi, mengontrol peripheral, dan menangani interupsi. Ada 32 buah General
Purpose Register yang membantu ALU bekerja. Untuk operasi aritmatika dan
logika, operand berasal dari dua buah general register dan hasil operasi ditulis
kembali ke register. Status and Control berfungsi untuk menyimpan instruksi
aritmatika yang baru saja dieksekusi. Informasi ini
berguna untuk mengubah alur program saat mengeksekusi operasi kondisional.
Instruksi di jemput dari flash memory. Setiap byte flash memory memiliki alamat
masing-masing. Alamat instruksi yang akan dieksekusi senantiasa disimpan
Program Counter. Ketika terjadi interupsi atau pemanggilan rutin biasa, alamat di
Program Counter disimpan terlebih dahulu di stack. Alamat interupsi atau rutin
kemudian ditulis ke Program Counter, instruksi kemudian dijemput dan
dieksekusi. Ketika CPU telah selesai mengeksekusi rutin interupsi atau rutin
2.2.4 Program Memori
ATMega 32 memiliki 32 KiloByte flash memori untuk menyimpan
program.Karena lebar intruksi 16 bit atau 32 bit maka flash memori dibuat
berukuran 16K x 16. Artinya ada 16K alamat di flash memori yang bisa dipakai
dimulai dari alamat 0 heksa sampai alamat 3FFF heksa dan setiap alamatnya
menyimpan 16 bit instruksi.
2.2.5 SRAM Data Memori
ATMega 32 memiliki 2 KiloByte SRAM. Memori ini dipakai untuk menyimpan
variabel. Tempat khusus di SRAM yang senantiasa ditunjuk register SP disebut
stack. Stack berfungsi untuk menyimpan nilai yang dipush.
2.2.6 EEPROM Data Memori
ATMega 32 memiliki 1024 byte data EEPROM. Data di EEPROM tidak akan
hilang walaupun catuan daya ke sistem mati. Parameter sistem yang penting
disimpan di EEPROM. Saat sistem pertama kali menyala paramater tersebut
dibaca dan system diinisialisasi sesuai dengan nilai parameter tersebut.
2.2.7 Interupsi
Sumber interupsi ATMega 32 ada 21 buah. Tabel 2 hanya menunjukkan 10 buah
interupsi pertama. Saat interupsi diaktifkan dan interupsi terjadi maka CPU
menunda instruksi sekarang dan melompat ke alamat rutin interupsi yang terjadi.
Setelah selesai mengeksekusi intruksi-instruksi yang ada di alamat rutin interupsi
CPU kembali melanjutkan instruksi yang sempat tertunda.
2.2.8 Status register (SREG)
Status register adalah Status Register berisi informasi tentang hasil yang paling
baru-baru ini dieksekusi aritmatika instruksi. Informasi ini dapat digunakan untuk
mengubah aliran program untuk melakukan operasi bersyarat. Perhatikan bahwa
Register Status diperbarui setelah semua operasi ALU, sebagai ditentukan dalam
untuk menggunakan didedikasikan membandingkan instruksi, sehingga lebih
cepat dan lebih kompak kode. Status Register tidak secara otomatis disimpan
ketika memasuki rutin interupsi dan dipulihkan ketika kembali dari interupsi. Ini
harus ditangani oleh perangkat lunak.
Gambar 2.3 Status Register ATMega 32 • Bit 7 - I: Dunia Interrupt Enable
Global Interrupt Enable bit harus ditetapkan untuk menyela harus diaktifkan .
Individu interrupt memungkinkan kontrol selanjutnya dilakukan dalam register
kontrol terpisah . Jika Global Interrupt Enable Daftar dibersihkan , tidak ada
interupsi diaktifkan independen dari interrupt individu mengaktifkan
pengaturan . The I- bit dihapus oleh hardware setelah interupsi telah terjadi ,
dan diatur oleh instruksi RETI untuk mengaktifkan interupsi berikutnya . The
I- bit juga dapat diatur dan dibersihkan oleh aplikasi dengan SEI dan CLI
instruksi, seperti yang dijelaskan dalam referensi set instruksi . • Bit 6 - T : Bit Copy Storage
The Bit Copy instruksi BLD ( Bit Load) dan BST ( Bit Store) menggunakan T
- bit sebagai sumber atau tujuan untuk bit yang dioperasikan . Sedikit dari
register dalam Daftar file dapat disalin ke T oleh Instruksi BST , dan sedikit di
T dapat disalin ke dalam sedikit dalam register dalam Daftar file oleh Instruksi
BLD .
• Bit 5 - H : Half Carry Flag
The Half Carry Flag H menunjukkan setengah carry dalam beberapa operasi
aritmatika . Half Carry berguna dalam BCD aritmatika. • Bit 4 - S : Sign Bit , S = N ⊕ V
Overflow Flag V.
• Bit 3 - V : Two Complement Overflow Flag
The Two Complement Overflow Flag V mendukung dua itu aritmatika
komplemen.
• Bit 2 - N : Negative Flag
Negatif Flag N menunjukkan hasil negatif dalam aritmatika atau operasi logika • Bit 1 - Z : Nol Flag Zero Flag Z
mengindikasikan hasil nol dalam aritmatika atau operasi logika . • Bit 0 - C : Carry Flag The Carry Flag C
mengindikasikan carry dalam aritmatika atau operasi logika.
2.3 Frekuensi Radio
Frekuensi Radio adalah sinyal arus berfrekuensi tinggi yang berubah-ubah yang
melewati konduktor tembaga yang panjang dan kemudian diradiasikan ke udara
melalui sebuah antenna. Sebuah antenna mentranformasikan sinyal kabel ke
sinyal wireless dan sebaliknya. Ketika sinyal AC berfrekuensi tinggi diradiasikan
ke udara,akan membentuk gelombang radio. Gelombang radio tersebut berpindah
dari sumber (antenna) pada sebuah garis lurus semuanya bersamaan. Mengerti
tingkah laku dari panyebaran gelombang RF adalah bagian penting untuk
mengerti mengapa dan bagaimana wireless LAN berfungsi.
Tanpa dasar pengetahuan tersebut,seorang administrator tidak mampu
menentukan lokasi instalasi dari perlengkapan dan tidak akan mengerti
bagaimana memecahkanmasalah wireless LAN.Penyerapan terjadi ketika sinyal
RF merambat objek dan terserap dalam material objek dengan cara tidak
menembusnya, memantul, atau mengitari objek. Frekuensi Radio merupakan
suatu gelombang elektromagnetik yang memiliki spektrum radiasi
elektromagnetik pada rangefrekuensi antara 9 kHz-300 GHz. Gelombang
elektromagnetik dihasilkan dari arus AC yang diberikan pada suatu konduktor
atau antena. Antena tersebut akan meradiasikan suatu medan elektromagnetik
melalui udara. Panjang gelombang dari frekuensi radio berbanding terbalik
dengan λ = panjang gelombang (m)
c = kecepatan cahaya (3x108 m/s)
f = frekuensi (Hz)
Frekuensi Radio ini digunakan sebagai media pengiriman data dari transmitter ke
receiver.
2.3.1 Transmitter
Transmitter adalah rangkaian pengirim data yang mengirimkan data ke receiver
Transmitter ini terdiri dari modul RF transmitter dan Antena.
RF Transmiter INPUT
Antena
Gambar 2.4 Diagram Blok RangkaianTransmitter
Transmitter ini digunakan sebagai pengirim data antar device . Pada proyek akhir
ini modul RF transmitter yang digunakan yaitu tipe TLP 315 sudah tersedia dan
dapat dibeli dengan mudah dipasaran. Modul RF transmitter.
Modul RF Transmitter TLP 315 adalah modul pengirim data dengan media
pengiriman data melalui gelombang radio yang frekuensi kerjanya telah
Gambar 2.5 Bentuk Fisik dan Konfigurasi Kaki Transmitter
Keterangan : 1. GND
2. Data Out
3. VCC
4. Antena
2.3.2 Receiver
Receiver adalah rangkaian penerima data yang menerima data dari Transmitter.
Receiverini terdiri dari modul RF receiver, decoder, dan Antena.
Berikut ini adalah Diagram Blok dari receiver.
OUTPUT RF
Receiver Antena
Gambar 2.6 Diagram Blok Rangkaian Receiver
Receiver ini digunakan sebagai penerima data yang dikirim dari transmitter
sebagai sebuah input bagi mikrokontroler Atmega 32.
Modul RF Receiver
Pada proyek Akhir ini modul RF receiver yang digunakan yaitu tipe RLP 315
315 adalah modul penerima data yang menerima data dari modul RF transmitter
TLP 315 dengan frekuensi 315 MHz. Data yang diterima adalah data serial,
kemudian data ini diubah oleh decoder.
Gambar 2.7 Bentuk Fisik dan Konfigurasi Kaki Receiver Keterangan :
1. GND
2. Data Out Digital
3. Linear Output
4. VCC
5. VCC
6. GND
7. GND
8. Antena
2.4 Liquid Crystal Display (LCD)
Fungsi display dalam suatu aplikasi mikrokontroler sangat penting sekali
diantaranya yaitu :
Mematikan data yang kita input valid Mengetahui hasil suatu proses
Memonitoring suatu proses Mendebug program
Menampilkan pesan
LCD berfungsi menampilkan suatu nilai hasil sensor, menampilkan teks,
adalah jenis LCD M1632. LCDM1632 merupakan modul LCD dengan tampilan
16 x 2 baris dengan konsumsi daya rendah. M1632 adalah merupakan modul LCD
dengan tampilan 16 x 2 baris dengan konsumsi daya yang rendah. Kegunaan LCD
banyak sekali dalam perancangan suatu sistem dengan menggunakan
mikrokontroler. LCD dapat berfungsi untuk menampilkan suatu nilai hasil sensor,
menampilkan teks, atau menampilkan menu pada aplikasi mikrokontroler.
Gambar 2.12 berikut ini adalah Pin LCD M1632:
Tabel 2.5 Fungsi pin pada Liquid Crystal Display
Sebagaimana terlihat pada kolom deskripsi (symbol and functions), interface LCD
merupakan sebuah parallel bus, dimana hal ini sangat memudahkan dan sangat
cepat dalam pembacaan dan penulisan data dari atau ke LCD. Kode ASCII yang
ditampilkan sepanjang 8 bit dikirim ke LCD secara 4 atau 8 bit pada satu waktu.
Jika mode 4 bit yang digunakan, maka 2 nibble data dikirim untuk membuat
EN setiap nibblenya). Gambar 2.12 berikut adalah contoh LCD (2×16) yang
umum digunakan :
Gambar 2.8 LCD M1632
Jalur kontrol EN digunakan untuk memberitahu LCD bahwa mikrokontroller
mengirimkan data ke LCD. Untuk mengirim data ke LCD program harus menset
EN ke kondisi high (1) dan kemudian menset dua jalur kontrol lainnya (RS dan
R/W) atau juga mengirimkan data ke jalur data bus. Saat jalur lainnya sudah siap,
EN harus diset ke 0 dan tunggu beberapa saat (tergantung pada datasheet LCD),
dan set EN kembali ke high (1). Ketika jalur RS berada dalam kondisi low (0),
data yang dikirimkan ke LCD dianggap sebagai sebuah perintah atau instruksi
khusus (seperti bersihkan layar, posisi kursor dll). Ketika RS dalam kondisi high
atau 1, data yang dikirimkan adalah data ASCII yang akan ditampilkan dilayar.
Misal, untuk menampilkan huruf pada layar maka RS harus diset ke 1.
Jalur kontrol R/W harus berada dalam kondisi low (0) saat informasi pada data
bus akan dituliskan ke LCD. Apabila R/W berada dalam kondisi high (1), maka
program akan melakukan query (pembacaan) data dari LCD. Instruksi pembacaan
hanya satu, yaitu Get LCD status (membaca status LCD), lainnya merupakan
instruksi penulisan. Jadi hampir setiap aplikasi yang menggunakan LCD, R/W
selalu diset ke 0. Jalur data dapat terdiri 4 atau 8 jalur (tergantung mode yang
dipilih pengguna), mereka dinamakan DB0, DB1, DB2, DB3, DB4, DB5, DB6
dan DB7. Mengirim data secara parallel baik 4 atau 8 bit merupakan 2 mode
operasi primer.
Untuk membuat sebuah aplikasi interface LCD, menentukan mode operasi
merupakan hal yang paling penting. Mode 8 bit sangat baik digunakan ketika
kecepatan menjadi keutamaan dalam sebuah aplikasi dan setidaknya minimal
minimal hanya membutuhkan 7 bit (3 pin untuk kontrol, 4 untuk data). Aplikasi
dengan LCD dapat dibuat dengan mudah dan waktu yang singkat, mengingat
koneksi parallel yang cukup mudah antara kontroller dan LCD.
2.5 Keypad Matriks
Keypad matrix 4x4 adalah keypad yang digunakan penulis pada alat ini yang
berfungsi sebagai interface antara perangkat (mesin) elektronik dengan manusia
atau dikenal dengan istilah HMI (Human Machine Interface). Matrix keypad 4×4
memiliki konstruksi atau susunan yang simple dan hemat dalam penggunaan port
mikrokontroler. Konfigurasi keypad dengan susunan bentuk matrix ini bertujuan
untuk penghematan port mikrokontroler karena jumlah key (tombol) yang
dibutuhkan banyak pada suatu sistem dengan mikrokontroler. Konstruksi matrix
keypad 4×4 untuk mikrokontroler dapat dibuat seperti pada gambar berikut:
Gambar 2.9 Konstruksi Matrix Keypad 4×4
Konstruksi matrix keypad 4×4 diatas cukup sederhana, yaitu terdiri dari 4 baris
dan 4 kolom dengan keypad berupas saklar push buton yang diletakan disetiap
persilangan kolom dan barisnya. Rangkaian matrix keypad diatas terdiri dari 16
saklar push buton dengan konfigurasi 4 baris dan 4 kolom. 8 line yang terdiri dari
4 baris dan 4 kolom tersebut dihubungkan dengan port mikrokontroler 8 bit. Sisi
baris dari matrix keypad ditandai dengan nama Row1, Row2, Row3 dan Row4
kemudian sisi kolom ditandai dengan nama Col1, Col2, Col3 dan Col4.
Sisi input atau output dari matrix keypad 4×4 ini tidak mengikat, dapat
dikonfigurasikan kolom sebagi input dan baris sebagai output atau sebaliknya
tergantung programernya. Keypad Matriks 4×4 cukup menggunakan 8 pin untuk
adalah dengan teknik scanning, yaitu proses pengecekkan yang dilakukan dengan
cara memberikan umpan-data pada satu bagian dan mengecek feedback
(umpan-baliknya) pada bagian yang lain. Dalam hal ini, pemberian umpan-data dilakukan
pada bagian baris dan pengecekkan umpan-balik pada bagian kolom. Pada saat
pemberian umpan-data pada satu baris, maka baris yang lain harus dalam kondisi
inversi-nya.
2.5.1 Proses Scanning Matrix 4×4 Untuk Mikrokontroler
Proses scaning untuk membaca penekanan tombol pada matrix keypad 4×4 untuk
mikrokontroler diatas dilakukan secara bertahap kolom demi kolom dari kolom
pertama sampai kolom ke 4 dan baris pertama hingga baris ke 4. Program untuk
scaning matrix keypad 4×4 dapat bermacam-macam, tapi pada intinya sama.
Misal kita asumsikan keyapad aktif LOW (semua line kolom dan baris dipasang
resistor pull-up) dan dihubungkan ke port mikrokontrolr dengan jalur kolom
adalah jalur input dan jalur baris adalah jalur output maka proses scaning matrix
keypad 4×4 diatas dapat dituliskan sebagai berikut:
Mengirimkan logika Low untuk kolom 1 (Col1) dan logika HIGH untuk
SW13 yang ditekan maka data yang dibaca adalah 1110 dan atau tidak ada
tombol pada kolom pertama yang di tekan maka data pembacaan baris
tombol pada kolom pertama yang di tekan maka data pembacaan baris
SW13 yang ditekan maka data yang dibaca adalah 1110 dan atau tidak ada
tombol pada kolom pertama yang di tekan maka data pembacaan baris
SW13 yang ditekan maka data yang dibaca adalah 1110 dan atau tidak ada
tombol pada kolom pertama yang di tekan maka data pembacaan baris
akan 1111.
2.6 PWM (Pulse Width Modulation)
Pulse Width Modulation (PWM) secara umum adalah sebuah cara memanipulasi
lebar sinyal yang dinyatakan dengan pulsa dalam satu periode, untuk
mendapatkan tegangan rata-rata yang berbeda. Aplikasi PWM berbasis
mikrokontroller biasanya berupa pengendalian kecepatan motor DC, pengendalian
motor servo, dan pengaturan nyala terang LED. Oleh karena itu diperlukan
pemahaman terhadap konsep PWM itu sendiri. Cara pengaturan kecepatan yang
digunakan adalah dengan menggunakan teknik PWM ( Pulse Width
Dengan menggunakan PWM kita dapat mengatur kecepatan yang diinginkan
dengan mudah. Teknik PWM untuk pengaturan kecepatan motor adalah,
pengaturan kecepatan motor dengan cara merubah-rubah besarnya duty
cycle pulsa. Pulsa yang yang berubah ubah duty cycle-nya inilah yang menentukan
kecepatan motor. Besarnya amplitudo dan frekuensi pulsa adalah tetap, sedangkan
besarnya duty cycle berubah-ubah sesuai dengan kecepatan yang diinginkan,
semakin besar duty cylce maka semakin cepat pula kecepatan motor, dan
sebaliknya semakin kecil duty cycle maka semakin pelan pula kecepatan motor.
Sebagai contoh: Bentuk pulsa yang dikirimkan adalah seperti pada gambar 2.10,
pulsa kotak dengan duty cycle pulsa 50%. Sedangkan sebagai contoh bentuk pulsa
PWM adalah seperti pada gambar 2.11.
Gambar 2.10 Pulsa dengan Duty Cycle 50%
Dengan mengatur besarnya duty cycle pulsa kotak yang dikirimkan, kita dapat
mengatur banyaknya logika high yang diberikan pada motor, dengan kata lain
mengatur lamanya waktu motor untuk berputar dalam satu periode pulsa. Jika
lamanya waktu motor untuk berputar dalam satu periode pulsa ini berubah maka
kecepatan purtaran motor juga akan berubah, sesuai dengan duty cycle atau waktu
motor untuk berputar dalam satu periode pulsa.
2.6.1 Konsep Dasar PWM
Sinyal PWM pada umumnya memiliki amplitude dan frekuensi dasar yang tetap,
namun memiliki lebar pulsa yang bervariasi. Lebar pulsa PWM berbanding lurus
dengan amplitude sinyal asli yang belum termodulasi. Artinya, sinyal PWM
hingga 100%. Secara analog setiap perubahan PWM-nya sangat halus, sedangkan
secara digital setiap perubahan PWM dipengaruhi oleh resolusi PWM itu sendiri.
Resolusi adalah jumlah variasi perubahan nilai dalam PWM tersebut. Misalkan
suatu PWM memiliki resolusi 8 bit, berarti PWM ini memiliki variasi perubahan
nilai sebanyak 256 variasi mulai dari 0 – 225 perubahan nilai yang mewakili duty cycle 0% – 100% dari keluaran PWM tersebut. A pulse-width modulation sinyal dimulai dengan tegangan yang naik dan turun berulang kali. Metode klasik
menciptakan osilasi adalah dengan sirkuit resistor-kapasitor (RC). Sirkuit ini
menggunakan RC waktu dengan twist dioda untuk mengubah rasio on-pulsa
BAB 1
PENDAHULUAN
1.1Latar Belakang
Perkembangan ilmu pengetahuan dan teknologi informasi dijaman yang
modern ini sangat berkembang dengan sangat pesat. Perkembangan tersebut
membuat orang banyak semakin kreatif dalam mengembangkan teknologi yang
lebih canggih. Pengaruh perkembangan teknologi ini juga dapat diciptakan alat
yang dapat mempermudah pekerjaan manusia, baik itu di dunia industri, pertanian,
ekonomi bahkan dalam rumah tangga.
Dengan dibutuhkannya teknologi dalam kehidupan maka sangat banyak
penemuan bahkan perkembangan yang dilakukan untuk lebih meningkatkan
teknologi yang lebih canggih .Sistem akuisisi data, mikrokontroler, sistem
jaringan dan komunikasi data merupakan merupakan beberapa jenis tekhnologi
yang banyak berkembang saat ini dalam dunia.
Komunikasi data merupakan suatu tekhnologi yang dapat membawa data
atau informasi dari suatu tempat ke tempat lain dengan media kabel, maupun
nirkabel, tekhnolgi yang banyak berkembang saat ini merupakan komunikasi data
nirkabel yang memiliki lebih banyak keuntungan penggunaan nya disbanding
tekhnologi menggunakan kabel, ada beberapa jenis tekhnolgi nirkabel diantara
nya menggunakan wifi, frekuensi radio, infrared, dll, terkhnolgi ini mendukung
untuk pengiriman atau penerimaan data yang cukup jauh, agar konsumen yang
menggunakan tekhnolgi ini dapat berkomunikasi ataupun mengendalikan suatu
alat atau benda dari tempat yang cukup jauh.
Banyak penelitian telah dilakukan untuk mengembnagkan teknologi
seperti pada peneliatian sebelumnya yakni mengatur kipas dengan sensor suhu[1],
mengendalikan lampu dengan computer[2], mengendalikan lampu ruang dengan
bahasa bascom[3],control kipas angin dengan bluetoot berbasis arduino[4].
Dengan penelitian yang sudah ada maka penulis mencoba membuat suatu
rancangan alat berteknologi yang menggabungkan system jaringan data,
jarak jauh untuk mengendalikan peralatan atau beban listrik dari suatu tempat,
dimana untuk mengendalikan beban listrik tersebut penulis menggunakan remote
dengan tujuan sebagai alat pengontrol beban listrik tersebut.
Dalam hal ini penulis mengembangkan teknologi jaringan komunikasi data
untuk membuat suatu alat pengendali lampu dan kipas angin. Penulis juga
menggunakan jaringan komunikasi data yaitu Radio Frekuensi sebagai
komunikasi data yang dihubungkan dengan mikrokontroler.
1.2 Rumusan Masalah
Berdasarkan uraian latar belakang yang telah dijelaskan, secara umum dapat
dirumuskan masalah sebagai berikut :
1. Bagaimana merancang dan membuat alat pengendali lampu dan kipas
dengan menggunkana system jaringan komunikasi data berbasis
mikrokontroler AT mega32 .
2. Bagaimana merancang program kontrol system dapat bekerja sesuai
fungsinya.
1.3Batasan Masalah
Pembatasan masalah dalam penyusunan skripsi ini mencakup masalah – masalah sebagai berikut :
1. Komunikasi data Radio Frekuensi sebagai input output komunikasi data
yang mengirim data pada mikrokonroler.
2. Mikrokontroler yang digunakan merupakan mikrokontroler ATMega32.
3. Dalam penelitian ini mengaplikasikan program bahasa C dalam
memprogram keypad matrix yang akan digunakan sebagai pengendali
1.4 Tujuan Penelitian
Adapun tujuan dari penelitian ini adalah :
1. Membuat suatu alat yang berfungsi sebagai pengendali peralatan listrik
lampu dan kipas dengan menggunakan mikrokontroler sehingga dapat
dikendalikan dari suatu tempat.
2. Merancang rangkaian berbasis mikrokontroler ATMega32 untuk
mengendalikan lampu dan kipas via jaringan.
3. Merancang program control agar system dapat bekerja sesuai dengan
fungsinya.
1.5Manfaat Penelitian
Adapun manfaat yang diperoleh dari penelitian ini adalah :
1. Mempermudah kita mengendalikan lampu dan kipas dalam rumah tangga.
2. Mempermudah dan menyederhanakan pekerjaan baik dalam rumah,
kantor,pabrik dalam mengendalikan beban listrik khususnya lampu dan
kipas pada tempat tersebut.
1.6Sistematika Penulisan
Untuk mempermudah pembahasan dan pemahaman maka penulis membuat
sistematika dalam penulisan skripsi ini sebagai berikut :
BAB I PENDAHULUAN
Dalam bab ini berisi mengenai latar belakang, rumusan masalah,
batasan masalah, tujuan penelitian, manfaat penelitian serta
sistematika penulisan.
BAB II LANDASAN TEORI
Dalam bab ini menjelaskan tentang teori pendukung yang
digunakan untuk pembahasan dan system kerja dari rangkaian.
Teori pendukung seperti cara kerja dan instruksi dari
315 Mhz, transmitter dan receiver ,keypad matriks dan prinsip
kerja LCD.
BAB III PERANCANGAN ALAT
Bab ini membahas tentang perancangan dari alat, yaitu diagram
blok dari rangkaian, skematik dan diagram alir dari penelitian
tersebut.
BAB IV PENGUJIAN ALAT DAN PROGRAM
Dalam bab ini dibahas meliputi hasil pengujian alat, analisa data,
serta penjelasan mengenai program yang sudah digunakan.
BAB V KESIMPULAN DAN SARAN
Bagian penutup yang berisikan kesimpulan dan saran dari
PERANCANGAN ALAT PENGENDALI LAMPU DAN KIPAS
ANGIN DENGAN JARINGAN KOMUNIKASI DATA
BERBASIS MIKROKONTROLER ATMEGA32
ABSTRAK
Telah dirancang suatu alat pengendali lampu dan kipas angin dengan menggunakan mikrokontroler ATMega32. Alat ini terdiri dari keypad, LCD, lampu dan kipas yang dikendalikan serta Radio Frekuensi yang akan digunakan sebagai komunikasi data jarak jauh. Software pada alat ini menggunakan bahasa pemrograman Cod Vision AVR. Prinsip kerja alat ini adalah menggunakan gelombang radio untuk mengontrol lampu dan kipas pada jarak jauh, pada bagian transmitter (remote) terdiri dari keypad, mikrokontroler dan gelombang frekuensi 315Mhz. dari keypad data akan dikirim ke transmiter secara wireless (tanpa kabel). Kemudian pada receiver data diterima dan diolah kemudian dibandingkan dengan data yang telah ditentukan pada program sebagai pengontrolan. Pada alat ini, jika pada transmiter di tekant 1, maka kipas akan hidup dengan kecepatan 25% , ditekan 2, kipas dengan kecepatan 50%, ditekan 3, kipas dengan kecepatan 75% dan jika ditekan 4, kipas akan bergerak dengan kecepatan 100%. Untuk menghidupkan lampu maka di tekan 5, maka lampu akan menyala dengan terang 25%,di tekan 6, terangnya 50%, ditekan 7, terangnya 75% dan jika ditekan 8 lampu akan menyala dengan terang maksimum yaitu 100%. Untuk mematikan lampu ditekan C, mematikan kipas ditekan B dan untuk mematikan lampu dan kipas ditekan 0.