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) ARDUINO 1
Arduino
1 bertanggung jawab atas pembacaan input dari dipswitch dan
mengirimkan pesan ke Arduino 2 berdasarkan kondisi yang terdeteksi.
8 tombol switch terhubung ke pin input Arduino 1 dengan
konfigurasi pull-up, memungkinkan mereka menentukan logika 1 atau 0 pada
pin input. Arduino 1 secara terus-menerus memantau kondisi tombol
menggunakan fungsi `digitalRead()` untuk setiap pin input. Ketika
kondisi tombol memenuhi syarat untuk mengaktifkan LE. Arduino akan mengirimkan melalui komunikasi serial.
2) ARDUINO 2
Arduino
2 bertugas menerima pesan dari Arduino 1 dan mengatur LED
sesuai instruksi yang diterima. Ada 8 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 mematikan LED. Arduino 1 dan 2 dapat berkomunikasi dan
mengontrol LED sesuai dengan aksi yang dilakukan pada Arduino 1,
memberikan respons melalui LED. 4. Flowcharth dan Listing Program [Kembali]
a. Flowcharth
b. Listing Program
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);
}
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