Laporan Akhir 1 Modul 3
Percobaan 1
1. Rangkai rangkaian sesuai dengan modul praktikum.
2. Tulis program untuk arduino di software Arduino IDE.
2. Tulis program untuk arduino di software Arduino IDE.
3. Sambungkan arduino dengan laptop
4. Upload program tadi ke arduino
5. Setelah program selesai di upload, jalankan simulasi rangkaian
4. Upload program tadi ke arduino
5. Setelah program selesai di upload, jalankan simulasi rangkaian
6. Periksa apakah rangkaian sensuai dengan yang diharapkan, jika tidak, perbaiki rangkaian dan/atau program yang terkait
2. Hardware dan Diagram Blok
[Kembali]
Hardware :
Diagram Blok:
3. Rangkaian Simulasi dan Prinsip Kerja [Kembali]
Rangkaian Simulasi :
Prinsip Kerja :
Percobaan ini merupakan komunikasi serial jenis UART antara dua Arduino, di mana satu Arduino bertindak sebagai Master dan satu lainnya sebagai Slave. Pada Arduino Master, terdapat delapan pin input yang terhubung dengan delapan tombol. Ketika salah satu tombol ditekan, program akan membaca nilai digital pada pin tersebut dan mengirimkan karakter yang sesuai melalui komunikasi serial ke Arduino Slave.
Pada Arduino Slave, terdapat delapan pin output yang terhubung dengan delapan LED. Program ini akan membaca data yang diterima melalui komunikasi serial dari Arduino Master. Jika data yang diterima sesuai dengan karakter yang dikirimkan oleh Master, maka LED yang sesuai akan dimatikan (karena logika aktif rendah pada digitalWrite()). Setelah itu, semua LED akan dinyalakan kembali. Dengan demikian, program ini memungkinkan pengontrolan LED pada Slave secara remote dari Master menggunakan komunikasi serial antara dua Arduino.
4. Flowchart dan Listing Program
[Kembali]
Flowchart :
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);
pinMode(DS2, INPUT);
pinMode(DS3, INPUT);
pinMode(DS4, INPUT);
pinMode(DS5, INPUT);
pinMode(DS6, INPUT);
pinMode(DS7, INPUT);
pinMode(DS8, INPUT);
}
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 == HIGH)
{
Serial.write('8');
}
else if (b7 == HIGH)
{
Serial.write('7');
}
else if (b6 == HIGH)
{
Serial.write('6');
}
else if (b5 == HIGH)
{
Serial.write('5');
}
else if (b4 == HIGH)
{
Serial.write('4');
}
else if (b3 == HIGH)
{
Serial.write('3');
}
else if (b2 == HIGH)
{
Serial.write('2');
}
else if (b1 == HIGH)
{
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();
Serial.println(message);
if (message == '1')
{
digitalWrite(led[0], 0);
}
else if (message == '2')
{
digitalWrite(led[1], 0);
}
else if (message == '3')
{
digitalWrite(led[2], 0);
}
else if (message == '4')
{
digitalWrite(led[3], 0);
}
else if (message == '5')
{
digitalWrite(led[4], 0);
}
else if (message == '6')
{
digitalWrite(led[5], 0);
}
else if (message == '7')
{
digitalWrite(led[6], 0);
}
else if (message == '8')
{
digitalWrite(led[7], 0);
}
}
delay(20);
digitalWrite(led[0], 1);
digitalWrite(led[1], 1);
digitalWrite(led[2], 1);
digitalWrite(led[3], 1);
digitalWrite(led[4], 1);
digitalWrite(led[5], 1);
digitalWrite(led[6], 1);
digitalWrite(led[7], 1);
}
Percobaan 1
Komunikasi UART antara 2 arduino dengan input dipswitch dan output LED
6. Video Demo [Kembali]
7. Download File
[Kembali]
HTML klik disini
Video Percobaan klik disini
Listing Program klik disini
Datasheet Arduino klik disini
Datasheet DIP Switch klik disini