1. Rangkai rangkaian pada alat sesuai dengan modul.
2. Tulis program untuk arduino di software Arduino IDE.
3. Compile program tadi, lalu upload ke dalam arduino.
4. Setelah program selesai di upload, jalankan rangkaian.
2. Tulis program untuk arduino di software Arduino IDE.
3. Compile program tadi, lalu upload ke dalam arduino.
4. Setelah program selesai di upload, jalankan rangkaian.
2. Hardware dan Diagram Blok
[Kembali]
3. Rangkaian Simulasi dan Prinsip Kerja
[Kembali]
Rangkaian Simulasi :
Prinsip Kerja :
Rangkaian ini menggunakan dua Arduino, yaitu master dan slave, yang berperan dalam pertukaran data. Master bertugas mengirimkan data, sementara slave menerima dan mengatur lampu LED. Kedua Arduino dihubungkan melalui komunikasi serial UART.
Pada sisi master, data yang dikirimkan mencerminkan status switch dalam format digital. Ketika switch aktif, master mengirimkan sinyal angka 1 (tinggi), sedangkan saat tidak aktif, sinyal yang dikirim adalah angka 0 (rendah). Proses pengiriman data terjadi melalui pin TX pada master dan diterima oleh pin RX pada slave melalui komunikasi serial.
Di sisi slave, data yang diterima dari master melalui pin RX diubah menjadi nilai digital 1 atau 0. Nilai ini menentukan lampu LED mana yang harus dinyalakan. Aturan logisnya adalah: jika nilai yang diterima adalah 1, maka lampu LED tertentu akan dinyalakan. Untuk menyalakan lampu LED berikutnya, switch sebelumnya juga harus dalam posisi aktif, dan seterusnya hingga mencapai lampu LED ke-8.
Dengan demikian, melalui rangkaian ini, master dapat mengendalikan lampu LED pada slave dari jarak jauh. Master mengirimkan instruksi digital melalui komunikasi serial UART, dan slave menginterpretasikan instruksi tersebut untuk menyalakan lampu LED sesuai dengan pola yang telah ditentukan.
4. Flowchart dan Listing Program
[Kembali]
Flowchart :
//MASTER
#define DS1 2
#define DS2 3
#define DS3 4
#define DS4 5
#define DS5 6
#define DS6 7
#define DS7 8
#define DS8 9
bool b1,b2,b3,b4,b5,b6,b7,b8;
void setup()
{
Serial.begin(9600);
pinMode(DS1, INPUT_PULLUP);
pinMode(DS2, INPUT_PULLUP);
pinMode(DS3, INPUT_PULLUP);
pinMode(DS4, INPUT_PULLUP);
pinMode(DS5, INPUT_PULLUP);
pinMode(DS6, INPUT_PULLUP);
pinMode(DS7, INPUT_PULLUP);
pinMode(DS8, INPUT_PULLUP);
}
void loop()
{
int b8 = digitalRead(DS8);
int b7 = digitalRead(DS7);
int b6 = digitalRead(DS6);
int b5 = digitalRead(DS5);
int b4 = digitalRead(DS4);
int b3 = digitalRead(DS3);
int b2 = digitalRead(DS2);
int b1 = digitalRead(DS1);
// Hidupkan LED sesuai dengan tombol yang ditekan
if (b8 == LOW)
{
Serial.write('8');
}
else if (b7 == LOW)
{
Serial.write('7');
}
else if (b6 == LOW)
{
Serial.write('6');
}
else if (b5 == LOW)
{
Serial.write('5');
}
else if (b4 == LOW)
{
Serial.write('4');
}
else if (b3 == LOW)
{
Serial.write('3');
}
else if (b2 == LOW)
{
Serial.write('2');
}
else if (b1 == LOW)
{
Serial.write('1');
}
delay(20);
}
//SLAVE
int led[] = {2, 3, 4, 5, 6, 7, 8, 9};
char message;
void setup()
{
Serial.begin(9600);
for (int i = 0; i < 8; i++)
{
pinMode(led[i], OUTPUT);
}
}
void loop()
{
if (Serial.available())
{
message = Serial.read();
if (message == '1')
{
digitalWrite(led[0], 1);
}
else if (message == '2')
{
digitalWrite(led[1], 1);
}
else if (message == '3')
{
digitalWrite(led[2], 1);
}
else if (message == '4')
{
digitalWrite(led[3], 1);
}
else if (message == '5')
{
digitalWrite(led[4], 1);
}
else if (message == '6')
{
digitalWrite(led[5], 1);
}
else if (message == '7')
{
digitalWrite(led[6], 1);
}
else if (message == '8')
{
digitalWrite(led[7], 1);
}
}
delay(20);
digitalWrite(led[0], 0);
digitalWrite(led[1], 0);
digitalWrite(led[2], 0);
digitalWrite(led[3], 0);
digitalWrite(led[4], 0);
digitalWrite(led[5], 0);
digitalWrite(led[6], 0);
digitalWrite(led[7], 0);
}
Percobaan : Komunikasi UART antara 2 arduino dengan input push button dan output LED
6. Video Demo [Kembali]
7. Soal Analisa
[Kembali]
1. Bagaimana cara mengupload program ke arduino dengan komunikasi yang digunakan?
Jawab:
Saat mengunggah program dari laptop ke Arduino, perlu untuk melepaskan koneksi pin TXD dan RXD antara kedua Arduino yang sedang melakukan komunikasi UART. Hal ini penting karena proses pengungahan program melibatkan komunikasi UART antara laptop dan Arduino yang dituju. Jika pada saat yang sama kedua Arduino masih terhubung dan melakukan komunikasi UART, dapat terjadi gangguan yang mengakibatkan kegagalan pengungahan program.
Oleh karena itu, sebelum mengunggah program ke Arduino yang akan melakukan komunikasi UART, disarankan untuk melepaskan koneksi fisik antara pin TXD dan RXD dari Arduino yang sedang berkomunikasi. Dengan cara ini, proses pengungahan program dari laptop ke Arduino dapat berjalan dengan lancar tanpa adanya interferensi dari komunikasi UART antar Arduino.
Setelah proses pengungahan selesai, koneksi antara pin TXD dan RXD dari kedua Arduino dapat disambungkan kembali untuk melanjutkan komunikasi UART di antara mereka. Dengan langkah ini, Anda dapat memastikan bahwa proses pengungahan program berjalan dengan baik dan komunikasi antara laptop dan Arduino berlangsung tanpa hambatan.
2. Berdasarkan program, bagaimana cara master memilih slave?
Jawab:
Dalam program diatas, master memilih slave secara tidak langsung dengan mengirimkan data melalui komunikasi serial UART.
Jadi, cara master memilih slave dalam konteks ini adalah dengan mengirimkan karakter yang sesuai dengan slave yang ingin diaktifkan. Setiap karakter yang dikirim oleh master mewakili instruksi untuk menyalakan LED pada slave tertentu. Slave kemudian menerima karakter tersebut dan bertindak sesuai instruksi yang diberikan, yaitu menyalakan LED yang sesuai dengan karakter yang diterima.
Dengan demikian, komunikasi serial UART digunakan sebagai medium untuk memungkinkan master dan slave berinteraksi satu sama lain, di mana master memilih slave dengan mengirimkan karakter ke slave yang dituju.
Dengan demikian, komunikasi serial UART digunakan sebagai medium untuk memungkinkan master dan slave berinteraksi satu sama lain, di mana master memilih slave dengan mengirimkan karakter ke slave yang dituju.
8. Download File
[Kembali]
HTML klik disini
File Rangkaian klik disini
Video Percobaan klik disini
Video Percobaan klik disini
Listing Program klik disini
Datasheet Arduino klik disini
Datasheet Button klik disini
Datasheet Led klik disini
Tidak ada komentar:
Posting Komentar