Berikut adalah contoh kode Arduino untuk komunikasi master-slave antara dua Arduino, di mana Arduino master membaca data suhu dari dua sensor suhu dan mengirimkannya ke Arduino slave untuk ditampilkan pada LCD melalui UART:
# Arduino Master (Mengirim Data)
```
c++
#include <Wire.h>
// Definisi pin untuk sensor suhu
const int pinSensorSuhu1 = A0;
const int pinSensorSuhu2 = A1;
void setup() {
Serial.begin(9600); // Inisialisasi komunikasi serial
}
void loop() {
int suhu1 = analogRead(pinSensorSuhu1);
int suhu2 = analogRead(pinSensorSuhu2);
// Konversi nilai analog ke suhu (asumsi menggunakan sensor suhu LM35)
float suhu1C = suhu1 * 0.48876;
float suhu2C = suhu2 * 0.48876;
// Kirim data suhu ke Arduino slave
Serial.print("Suhu 1: ");
Serial.print(suhu1C);
Serial.print(" C");
Serial.print(" | Suhu 2: ");
Serial.print(suhu2C);
Serial.println(" C");
delay(1000); // Tunggu 1 detik sebelum mengirim data lagi
}
```
# Arduino Slave (Menerima Data dan Menampilkan pada LCD)
```
c++
#include <LiquidCrystal.h>
// Inisialisasi LCD
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
void setup() {
Serial.begin(9600); // Inisialisasi komunikasi serial
lcd.begin(16, 2); // Inisialisasi LCD
}
void loop() {
if (Serial.available() > 0) {
String data = Serial.readStringUntil('\n');
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Suhu 1: ");
lcd.print(data.substring(data.indexOf("Suhu 1: ") + 8, data.indexOf(" C")));
lcd.setCursor(0, 1);
lcd.print("Suhu 2: ");
lcd.print(data.substring(data.indexOf("Suhu 2: ") + 8, data.indexOf(" C", data.indexOf("Suhu 2: "))));
}
delay(100);
}
```
Pastikan Anda menghubungkan pin TX Arduino master ke pin RX Arduino slave, dan pin RX Arduino master ke pin TX Arduino slave. Selain itu, pastikan juga Anda menghubungkan VCC dan GND dari kedua Arduino.
Perlu diingat bahwa kode di atas hanya contoh dan perlu disesuaikan dengan kebutuhan dan konfigurasi perangkat Anda.
Komentar
Posting Komentar