2. Rangkaian Simulasi [Kembali]
Rangkaian terdiri dari 2 Arduino Uno, 1 LED, dan 1 SPDT. Pin 2 master terhubung dengan pin 12 dengan LED dan SPDT lalu ke ground. Pin TXD master terhubung ke pin RXD Slave. Pin RXD master terhubung ke pin TXD slave.
Berdasarkan kondisi percobaan LED akan hidup ketika spdt pulldown. Maka untuk program arduino dapat dibuat sebagai berikut.
MASTER
#define spdt 2 //Deklarasi pin 2 untuk spdt
void setup() //Semua kode dalam fungsi ini dieksekusi sekali
{
pinMode(spdt,INPUT_PULLUP); //spdt di-set sebagai input_pullup
Serial.begin(9600); //Set baud rate 9600
}
void loop() //Semua kode dalam fungsi ini dieksekusi berulang
{
int nilai = digitalRead(spdt); //dilakukan pembacaan nilai spdt
if(nilai == 0) //jika bernilai 0 (dihubungkan ke ground)
{
Serial.print("1"); //Master akan mengirimkan data "1" ke slave
}
else //Jika nilainya bukan 0, Master akan mengirim data "2"
{
Serial.print("2"); //Master akan mengirimkan data "2" ke slave
}
delay(200);
}
SLAVE
#define led 12 //Deklarasi pin 12 untuk led
void setup() //Semua kode dalam fungsi ini dieksekusi sekali
{
pinMode(led, OUTPUT); //Deklarasi led sebagai output
Serial.begin(9600); //Set baud rate 9600
}
void loop() //Semua program dalam fungsi ini dieksekusi berulang
{
if (Serial.available() > 0)
{
int data = Serial.read(); //membaca data yang dikirimkan data dalam bebas
if (data == '1') //Jika data yang diterima berlogika 1
{
digitalWrite (led,HIGH); //LED menyala
}
else
{
digitalWrite(led, LOW); //led mati
}
}
}
Untuk penjelasannya program arduino yaitu deklarasi pin 2 untuk spdt. Kemudian fungsi voide setup() dimana semua kode dalam fungsi ini dieksekusi sekali. Untuk kode didalamnya terdapat spdt yang diset sebagaiinput_pullup. Kemudian diatur set baud menjadi 9600. Selanjutnya fungsi void loop lalu membaca nilai spdt, kemudian ada percabangan jika nilai ==1 maka master akan mengirim data 1 ke slave dan jika tidak maka master akan mengirim data 2 ke slave. Kemudian di delay 200ms.
SLAVE
Untuk penjelasannya program arduino yaitu deklarasi pin 12 untuk led. Kemudian fungsi voide setup() dimana semua kode dalam fungsi ini dieksekusi sekali. Untuk kode didalamnya terdapat pinMode(led, OUTPUT) dklarasi led sebagai output san menset baud rate 9600. Kemudian selanjutnya fungsi void loop lalu ada percabangan dimana kondisinya jika (Serial.available() > 0) yang artinya jumlah byte (karakter) yang tersedia untuk dibaca dari port serial lebih dari 0 maka kode di dalam if dieksekusi. Lalu membaca data yang dikirmkan dalam data bebas. Selanjutnya ada percabangan if didalamnya yaitu jika dataa ==1 data data yang diterima berlogika 1 maka led akan menyala dan jika tidak maka led akan off.
Saat kondisi button pullup, maka spdt berlogika HIGH dan data yang dikirimkan adalah "2" sehingga LED mati. Kemudian ketika spdt pulldown (terhubung ke ground), maka spdt berlogika LOW dan data "1" akan dikirimkan sehingga LED hidup.
5. Link Download [Kembali]
Tidak ada komentar:
Posting Komentar