Modul III
Percobaan 1
1. Rangkai komponen sesuai percobaan dan yang
dipilih.
2. Buat program menggunakan Arduino IDE.
3. Transfer program yang telah dibuat ke Arduino Uno.
4. Uji coba program pada rangkaian percobaan sesuai dengan kondisi yang
diinginkan.
5. Proses selesai setelah uji coba berhasil dilakukan.
2. Hardware dan Diagram Blok
[Kembali]
a. Rangkaian Simulasi
b. Prinsip Kerja
1) Perangkat pertama, yaitu Arduino 1, memiliki tanggung jawab untuk membaca input dari dipswitch dan mengirimkan pesan ke perangkat kedua, yaitu Arduino 2, berdasarkan kondisi yang terdeteksi. Terdapat delapan tombol switch yang terhubung ke pin input Arduino 1. Konfigurasi pin input menggunakan pull-up resistor, sehingga tombol-tombol ini dapat menentukan logika 1 atau 0 pada pin input. Arduino 1 secara terus-menerus memantau kondisi tombol-tombol ini menggunakan fungsi `digitalRead()` untuk setiap pin input. Ketika kondisi tombol memenuhi syarat tertentu untuk mengaktifkan LED, Arduino 1 akan mengirimkan pesan melalui komunikasi serial.
2) Perangkat kedua, yaitu Arduino 2, bertugas untuk menerima pesan dari Arduino 1 dan mengatur LED sesuai instruksi yang diterima. Terdapat delapan LED yang terhubung ke pin output Arduino 2, dan mereka akan dikontrol berdasarkan pesan yang diterima. Arduino 2 terus memantau komunikasi serial untuk menerima pesan baru dari Arduino 1. Ketika pesan diterima, Arduino 2 akan memicu urutan LED yang berjalan, di mana setiap LED akan menyala dan kemudian mematikan LED tersebut.
Melalui interaksi antara Arduino 1 dan 2, keduanya dapat berkomunikasi dan mengontrol LED sesuai dengan tindakan yang dilakukan pada Arduino 1. Respons atas tindakan yang terdeteksi pada Arduino 1 akan ditampilkan melalui urutan LED yang diatur oleh Arduino 2. Dengan demikian, keduanya bekerja bersama untuk menciptakan respon terhadap input yang diterima oleh Arduino 1.
4. Flowcharth dan Listing Program [Kembali]
a. Flowcharth
b. Listing Program
#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);
}
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);
}
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);
}
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);
}
Modul 3 Percobaan 1 Komunikasi UART
6. Video Demo[Kembali]
Download HMTL Klik disini
Download Gambar Hardware Klik disini
Download Gambar Simulasi Klik disini
Download Video Demo klik disini
Download Listing Program klik disini
Datasheet Arduino klik disini
Datasheet Push Button klik disini
Datasheet LED klik disini
Datasheet Resistor klik disini