Raspberry Pi 5 ile Arduino Uno arasında UART (rx-tx) iletişimi
Bu çalışmada uart bağlantısı ile Raspberry Pi 5 üzerinden, arduino uno'ya veri gönderip, led yakıp söndürme yapacağız.
öncesinde raspberry pi 5 için pinleri bir görelim.
ARDUINO UNO
//arduino slave (yani köle) durumunda. Raspberry pi'den
//gelen sinyale göre led yanacaktır.
void setup() {
Serial.begin(9600);
pinMode(13, OUTPUT); // Dahili LED
}
void loop() {
if (Serial.available() > 0) {
String command = Serial.readStringUntil('\n');
command.trim(); // Boşluk ve \n'yi temizle
if (command == "ON") {
digitalWrite(13, HIGH);
Serial.println("LED AÇIK");
}
else if (command == "OFF") {
digitalWrite(13, LOW);
Serial.println("LED KAPALI");
}
}
}
---------------------------
Raspberry pi 5 Arduino UNO
Rx (GPIO 15) Tx (1)
Tx (GPIO 14) Rx (0)
GND (Ground) GND
Arduino Uno harici olarak beslenir.
import serial
import time
# Seri port ayarları (port adı Raspberry Pi 5'te genellikle '/dev/ttyAMA0')
ser = serial.Serial('/dev/ttyAMA0', baudrate=9600, timeout=1)
try:
while True:
command = input("Komut girin (ON/OFF): ").strip().upper()
if command in ["ON", "OFF"]:
ser.write(f"{command}\n".encode()) # \n ekleyerek gönder
response = ser.readline().decode().strip() # Arduino'dan yanıt oku
print(f"Arduino: {response}")
else:
print("Geçersiz komut! Sadece ON/OFF yazın.")
except KeyboardInterrupt:
ser.close()
print("Seri bağlantı kapatıldı.")