Raspberry mit Waveshare HAT 2-CH RS485
Verfasst: Sonntag 28. Juni 2026, 13:11
Ein Hallo in die Runde,
ich versuche gerade ein Aufsatz für den Rapberry in Betreib zu nehmen.
Dazu habe ich den Code, eine Lib von Waveshare in meinen Code verbastelt, welcher so scheinbar läuft, aber ein paar Fragen für mich aufwirft.
https://www.waveshare.com/wiki/2-CH_RS ... 7cRwHaclk
Da ich einen Raspberry 5 verwende ist doch die Verwendung von RPi.GPIO nicht korrekt. Oder?
Die beiden RS485-Kanäle sind mit Kabeln zueinander verbunden, ich fahre also im Kreis ohne externe RS485-Geräte
Ich sende über "clock" raus und enpfange über "data". Funktioniert also.
das "dev = "/dev/ttyS0"" in der Class bei "def __init__" kann doch durch ein dev = "" ersetzt werden und es funktioiert immer noch.
Wird es durch
endat_clock = RS485config(dev = "/dev/ttySC0")
endat_data = RS485config(dev = "/dev/ttySC1")
definiert?
ich versuche gerade ein Aufsatz für den Rapberry in Betreib zu nehmen.
Dazu habe ich den Code, eine Lib von Waveshare in meinen Code verbastelt, welcher so scheinbar läuft, aber ein paar Fragen für mich aufwirft.
https://www.waveshare.com/wiki/2-CH_RS ... 7cRwHaclk
Da ich einen Raspberry 5 verwende ist doch die Verwendung von RPi.GPIO nicht korrekt. Oder?
Die beiden RS485-Kanäle sind mit Kabeln zueinander verbunden, ich fahre also im Kreis ohne externe RS485-Geräte
Ich sende über "clock" raus und enpfange über "data". Funktioniert also.
das "dev = "/dev/ttyS0"" in der Class bei "def __init__" kann doch durch ein dev = "" ersetzt werden und es funktioiert immer noch.
Wird es durch
endat_clock = RS485config(dev = "/dev/ttySC0")
endat_data = RS485config(dev = "/dev/ttySC1")
definiert?
Code: Alles auswählen
import serial
import RPi.GPIO as GPIO
import time
import os
import sys
import logging
class RS485config(object):
def __init__(ser, Baudrate = 115200, dev = "/dev/ttyS0"):
print (dev)
ser.dev = dev
ser.serial = serial.Serial(ser.dev, Baudrate)
GPIO.setmode(GPIO.BCM)
GPIO.setwarnings(False)
GPIO.setmode(GPIO.BCM)
GPIO.setup(TXDEN_1, GPIO.OUT)
GPIO.setup(TXDEN_2, GPIO.OUT)
GPIO.output(TXDEN_1, GPIO.HIGH)
GPIO.output(TXDEN_2, GPIO.HIGH)
def Uart_SendByte(ser, value):
ser.serial.write(value.encode('ascii'))
def Uart_SendString(ser, value):
ser.serial.write(value.encode('ascii'))
def Uart_ReceiveByte(ser):
return ser.serial.read(1).decode("utf-8")
def Uart_ReceiveString(ser, value):
data = ser.serial.read(value)
return data.decode("utf-8")
def Uart_Set_Baudrate(ser, Baudrate):
ser.serial = serial.Serial(ser.dev, Baudrate)
logging.basicConfig(level=logging.INFO)
libdir = os.path.join(os.path.dirname(os.path.dirname(os.path.realpath(__file__))), 'lib')
if os.path.exists(libdir):
sys.path.append(libdir)
TXDEN_1 = 27
TXDEN_2 = 22
endat_clock = RS485config(dev = "/dev/ttySC0")
endat_data = RS485config(dev = "/dev/ttySC1")
GPIO.output(TXDEN_1, GPIO.LOW) #send
GPIO.output(TXDEN_2, GPIO.HIGH) #read
clock = endat_clock.Uart_SendString("Hallo")
data = endat_data.Uart_ReceiveString(5)
print(data)