Tugas Pendahuluan 1 Modul III
Percobaan I
Komunikasi UART Menggunakan Arduino
1. Foto Hardware dan Diagram Blok [Kembali]
3. DIP Switch
Diagram Blok:
2. Prosedur Percobaan [Kembali]
+ Rangkai semua komponen
+ buat program di aplikasi arduino IDE
+ setelah selesai masukkan program ke arduino
+ jalankan program pada simulasi dan cobakan dengan modul
Prinsip Kerja
Pada percobaan kali ini kita menggunakan 8 Dip-switch sebagai input yang terhubung dengan rangkaian pull-down, 2 buah arduino uno satu berperan sebagai master dan satunya sebagai slave lalu yang terakhir yaitu 8 buah LED sebagai output pada rangkaian ini. Keduan arduino uno tersebut tehubung melalui sistem komunikasi UART (Universal Asynchronous Receiver Transmitter).
Pada sistem komunikasi UART ini merupakan protokol komunikasi data serial secara asynchronous yang menggunakan 2 pin(Rx dan Tx) untuk komunikasinya. Komunikasi ini juga menggunakan transmisi secara Full-Duplex yang mana dapat mengirim dan menerima secara bersamaan serta tidak membutuhkan clock kemudian sistem komunikasi ini juga sangat bergantung pada parameter Baud rate dan bit rate antar master dan slave.
Pada percobaan ini kita memiliki kondisi yang telah ditentukan yang mana jika 4 switch yang aktif maka akan menghidupkan 2 LED sedangkan jika 7 switch yang aktif maka akan menghidupkan 1 LED. pertama pada arduino master akan dibuat kondisi pesan yang akan dikirim sesuai input dari switch yang mana "A" menandakan 7 switch aktif dan "B" menandakan 4 switch yang aktif. Kemudian pesan itu akan dikirim pada arduino slave yang mana akan mengeksekusi perintah sesuai pesan yang dikirimkan oleh arduino master yang mana jika pesan "A" yang terkirim maka akan menghidupkan 1 LED dan jika pesan "B" yang terkirim maka akan menghidupkan 2 LED.
4. Flowchart dan Listing Program [Kembali]
Master Arduino:
Slave Arduino:
Listing Program:
Master
//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
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 count = 0;
for (int pin = DS1; pin <= DS8; pin++) {
count += digitalRead(pin);
}
if (count == 7)
{
Serial.write('A');
}
else if (count == 4)
{
Serial.write('B');
}
delay(20);
}
Slave
//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 == 'A')
{
digitalWrite(led[0], 1);
}
else if (message == 'B')
{
digitalWrite(led[3], 1);
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);
}
Pada kondisi 2 dari percobaan 1, Semua Switch dalam kondisi Pull-down, 7 switch mengaktifkan 1 led sementara 4 switch mengaktifkan 2 led.
᭒ HTML↠ klik disini
᭒ Rangkaian ↠ klik disini
᭒ Program ↠ klik disini
᭒ Video Percobaan↠ klik disini
᭒ Datasheet Arduino↠ klik disini
᭒ Datasheet LED↠ klik disini
᭒ Datasheet Push Button↠ klik disini
᭒ Datasheet Resistor↠ klik disini










0 Response to "Tugas Pendahuluan 1 Modul III"
Posting Komentar