python - 我正在尝试通过 Rs485 从 RasPi 与 arduino 通信。我在 RasPi 端使用 USB 到 Rs485 转换器,在 arduino 端使用 Max485 芯片
问题描述
我需要将 RasPi 连接到我现有的 RS485 网络,以便我可以通过互联网访问所有这些网络。我知道两个设备都可以发送信息,但对方没有收到
我有一个 RasPi 4B,带有一个 [USB 到 Rs485 适配器][1]。这个特殊的适配器有两个 LED,当您接收信息 (RXD) 和传输信息 (TXD) 时会亮起。它们非常有用,因为它们,我知道信息是从 RasPi 发出的。
Arduino 是一个 Arduino Mega,并连接到 [MAX485 Transceiver][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 的任何信息。
蟒蛇代码:
#!/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
解决方案
推荐阅读
- watchkit - 我可以从 watchKit 以编程方式打开相机远程应用程序吗
- python - 使用 Python 在保持比例的同时调整图像大小
- java - 如何在 JavaFX 中将 arrayList 添加到 Tableview
- java - Java - 在 2 或 3 列中打印列表
- prometheus - 仅当时间窗口内存在多个值时,我可以对值进行分组吗?
- azure-devops - Docker 从 azure DevOps 拉入管道?
- css - 如何用css实现曲线
- python - 无法通过 python 脚本将数据插入到 postgresql 表中
- identityserver4 - 身份服务器如何验证来自反向代理后面的客户端请求?
- android - Flutter 列表项随动画改变位置