TP 1 MODUL 3
Percobaan 1 Kondisi
Komunikasi UART
1. Prosedur [Kembali]
- Rangkai semua komponen
- Buat program di aplikasi arduino IDE
- Setelah selesai masukkan program ke arduino
- Jalankan program pada simulasi dan cobakan sesuai kondisi
- Rangkaian
- Diagram Blok
- Prinsip Kerja
Pada percobaan 1 Kondisi 6 menggunakan komunikasi UART pada arduino. Pada arduino master terdapat input berupa switch yang dideklarasikan dengan DS1 - DS8, pada arduino master ini akan mengirimkan kode atau data berupa 'r' saat menjalankan program running LED dengan syarat 1 switch pull-down dan 4 switch pull-up, saat ingin menjalankan blinking LED maka master akan mengirimkan data atau kode berupa 'b' dengan syarat 4 switch pull-down dan 1 switch pull-up.
Pada arduino slave, akan diterima data dari arduino master dan akan menjalankan data sesuai dengan kode yang diterima, seperti menjalankan running LED saat mendapatkan data 'r', dan menjalankan blinking LED saat menerima data 'b'.
Pada komunikasi UART ini menggunakan pin Tx dan Rx, yaitu Tx sebagai transmiter dan Rx sebagai receiver.
- 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);
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 kondisi tombol yang ditekan
if (b8 == HIGH && b7 == HIGH && b6 == HIGH && b5 == HIGH &&
b4 == LOW && b3 == HIGH && b2 == HIGH && b1 == HIGH) {
// Mengaktifkan running LED
Serial.write('r');
} else if (b8 == HIGH && b7 == LOW && b6 == LOW && b5 == LOW &&
b4 == LOW && b3 == LOW && b2 == LOW && b1 == LOW) {
// Mengaktifkan blinking LED
Serial.write('b');
}
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 == 'r') {
// Mengaktifkan running LED
for (int i = 0; i < 8; i++) {
digitalWrite(led[i], HIGH);
delay(100);
digitalWrite(led[i], LOW);
}
} else if (message == 'b') {
// Mengaktifkan blinking LED
for (int i = 0; i < 8; i++) {
digitalWrite(led[i], HIGH);
}
delay(500);
for (int i = 0; i < 8; i++) {
digitalWrite(led[i], LOW);
}
delay(500);
}
}
}
4 Switch Pull-down dan 4 switch pull-up, 1 switch pull-down dan 4 switch pull-up akan mengaktifkan running LED, 4 switch pull-down dan 1 switch pull-up akan mengaktifkan Blinking LED.
x HTML klik disini
Simulasi klik disini
Gambar Simulasi klik disini
Video Simulasi klik disini
Listring Program master klik disini
Video Simulasi klik disini
Listring Program master klik disini
Listing Program Slave klik disini
Komentar
Posting Komentar