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.




Raspberry pi 5 

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ı.")



Bu blogdaki popüler yayınlar