我正在尝试通过Rs485从RasPi与arduino通信我在RasPi端使用Usb to Rs485转换器,在arduino端使用Max485芯片

问题描述

我需要将RasPi连接到我现有的RS485网络,以便可以通过Internet访问所有网络。我知道这两种设备都可以发送信息,但是对方无法接收

我有一个带[USB到Rs485适配器] [1]的RasPi 4B。当您正在接收信息(RXD)和传输信息(TXD)时,此特定适配器有两个指示灯点亮。它们非常有用,因为有了它们,我知道信息是从RasPi发送出去的。

Arduino是Arduino Mega,并连接到[MAX485收发器] [2]。我已经在Arduino到Arduino网络中广泛使用了这些芯片,并且它们的功能非常出色。

接线已反复检查:

USB适配器:A至MAX485 A,B至MAX485 B,GND至Arduino GND

MAX485:VCC至Arduino 5v,GND至Arduino GND,RO至Arduino RX3,DI至Arduino TX3,DE / RE至Arduino引脚3。

在下面的代码中,我没有试图来回发送信息。我只想知道我是否在Arduino上收到了任何东西。

Python代码


#!/usr/bin/env python3
import serial

rs = serial.Serial(
  port="/dev/ttyUSB0",baudrate = 9600,parity=serial.PARITY_NONE,stopbits=serial.STOPBITS_ONE,bytesize=serial.EIGHTBITS,timeout=0,rtscts = True
  )

if (rs.isopen() == True):
  rs.close()
rs.open()
rs.reset_input_buffer()

outstr = "5"
rs.write(outstr.encode(encoding = 'ascii'))

Arduino代码

void setup() {
  Serial3.begin(9600);
  Serial.begin(9600);
  pinMode(3,OUTPUT); //Set enable pin as Output
  pinMode(3,LOW);    //Allows MAX485 to recieve
  Serial.println("Engaged.");
  
}

void loop() {

  while(Serial3.available()){
    Serial.println("We got somethin"); //Lets me kNow if I somehow got something
    if(Serial3.available()){
      byte data = Serial3.read();
      Serial.println(data);
    }
  }

}

每个MAX485芯片和USB到RS485适配器都有多个,并且尝试过使用它们,以防设备内部损坏。没变化。

有什么想法吗? [1]:https://i.stack.imgur.com/iNBXZ.jpg [2]:https://i.stack.imgur.com/jOM8W.jpg

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)