Komunikasi ARDUINO dengan ATmega8535

Arduino dengan AVR ATmega8535 sudah kita “adu” kemarin, sekarang kita “akur-kan” dengan jalan membangun komunikasi. Biasanya sebuah hubungan akan terasa kurang harmonis manakala komunikasi tidak lancar, terlebih dalam keluarga.
99 proyek arduinoMangkanya komunikasi dalam sebuah keluarga menjadi hal yang sangat penting. Banyak keluarga berantakan hanya gara-gara “gagal komunikasi” diantara pasangan. Lho kok malah membahas keluarga, emang ada hubungannya apa ? Ya ada lah, lha wong si Arduino dengan ATmega8535 kan satu keluarga AVR..  🙂

Master Mikrokontroler

Wis tidak perlu kakean ceramah, langsung kita bikin aplikasinya. Kita akan memakai board Master Mikro AVR dan board Master Mikro ARDUINO yang kita hubungkan secara serial.

Rangkaian Interfacing Arduino dg AVR

Program yang kita buat nantinya akan mengontrol LED di AVR tetapi tombol kontrolnya di Arduino. Sebaliknya tombol di AVR untuk mengontrol LED di Arduino.

Ini program yang Arduino

#include
SoftwareSerial mySerial(12, 13); // RX, TX
byte in_serial,str;
void setup()
{
pinMode(2,OUTPUT); pinMode(3,OUTPUT);
pinMode(4,OUTPUT); pinMode(5,OUTPUT);
pinMode(8,INPUT); pinMode(9,INPUT);
pinMode(10,INPUT); pinMode(11,INPUT);
digitalWrite(8,1);digitalWrite(9,1);
digitalWrite(10,1);digitalWrite(11,1);
mySerial.begin(19200);
}

void loop()
{
in_serial=mySerial.read(); //masih kode ASCII
str=char(in_serial); //ngerubah ke string
switch(str){
case ‘1’: //LED 1 ON
digitalWrite(2,1); digitalWrite(3,0);
digitalWrite(4,0); digitalWrite(5,0);
break;
case ‘2’: //LED 2 ON
digitalWrite(2,0); digitalWrite(3,1);
digitalWrite(4,0); digitalWrite(5,0);
break;
case ‘3’: //LED 3 ON
digitalWrite(2,0); digitalWrite(3,0);
digitalWrite(4,1); digitalWrite(5,0);
break;
case ‘4’: //LED 4 ON
digitalWrite(2,0); digitalWrite(3,0);
digitalWrite(4,0); digitalWrite(5,1);
break;
}
if(digitalRead(8)==0){
mySerial.print(‘1’);
delay(200);
}
else if(digitalRead(9)==0){
mySerial.print(‘2’);
delay(200);
}
else if(digitalRead(10)==0){
mySerial.print(‘3’);
delay(200);
}
else if(digitalRead(11)==0){
mySerial.print(‘4’);
delay(200);
}
}

Dan ini program untuk AVR ATmega8535 dengan bahasa BASCOM-AVR :

$regfile = “m8535.dat”
$crystal = 16000000
$baud = 19200
Dim D As Byte
Ddrb = &HFF
Ddrb = &H00
Portd = &HFF

Do
D = Inkey()
If D <> “” Then
Select Case D
Case “1” : Portb = &B00000001
Case “2” : Portb = &B00000010
Case “3” : Portb = &B00000100
Case “4” : Portb = &B00001000
End Select
End If

If Pind.2 = 0 Then
Print “1”;
Waitms 200
Elseif Pind.3 = 0 Then
Print “2”;
Portb = 0
Waitms 200
Elseif Pind.4 = 0 Then
Print “3”;
Waitms 200
Elseif Pind.5 = 0 Then
Print “4”;
Waitms 200
End If
Loop
End

Sekarang kita jalankan :

Komunikasi Arduino dengan AVR

Tekan tombol 1 pada Arduino, maka LEd 1 di AVR akan nyala. Coba untuk tombol yang lain. Demikian sebaliknya kita tekan tombol 3 di AVR maka LED 3 di Arduino akan nyala. Jadi LED di Arduino yang mengendalikan tombol di AVR, dan sebaliknya.

Iklan MM ARDU

Komunikasi serial antara Arduino dengan AVR tidak ada yang berbeda, seperti halnya dengan komputer atau perangkat lain.

OK, selamat mencoba.

This entry was posted in Arduino, Mikrokontroler AVR and tagged , , , , . Bookmark the permalink.

4 Responses to Komunikasi ARDUINO dengan ATmega8535

  1. doni says:

    ralat udh saya coba menggunkan simulasi di isis kok gak bisa ia gan padahal data pada virtual terminal udh keluar tapi di sisi micronya gak jalan ….

  2. Rahmadal N. S. says:

    Sebelumnya terimakasih banyak atas informasinya, sangat bermanfaat. Saya mau tanya, mungkin ga arduino uno menjalankan 2 komunikasi serial sekaligus, port 0 & 1 ke Bluetooth dan port 12 & 13 ke avr, dan apakah ada syarat dalam memilih kaki mana yg d pakai sebagai rx & tx baik di arduino maupun d avr, terimakasih.

Leave a Reply