RPi Zero Relay

来自Waveshare Wiki
跳转至: 导航搜索
Pico-Relay-B
{{{name2}}}
{{{name3}}}
功能简介
特性 无特性,不解释
继电器路数 6路
' 无特性,不解释
' 无特性,不解释
' 无特性,不解释
接口 RPi、CAN、RS485

说明


产品概述

提供 C 语言 和 Python 例程。

特点

  • 具备CAN功能,使用SPI接口CAN控制器MCP2515,搭配收发器SN65HVD230
  • 具备RS485功能,使用UART控制,半双工通讯,收发器为SP3485
  • 板载TVS(瞬态电压抑制管),RS485通讯可有效抑制电路中的浪涌电压和瞬态尖峰电压,防雷防静电

产品参数

  • 供电电压: 7V~36V
  • CAN控制芯片: MCP2515
  • CAN收发器: SN65HVD230
  • 485收发器: SP3485
  • 产品尺寸: 123mmx87.92mm
  • 固定孔通经: 3.5mm

接口说明

  • CAN总线
功能引脚 树莓派接口(BCM) 描述
GND GND 电源地
SCK SCK SPI时钟输入
MOSI MOSI SPI数据输入
MISO MISO SPI数据输出
CS CE0 数据/命令选择
INT 25 中断输出
  • RS485总线
功能引脚 树莓派接口(BCM) 描述
GND GND 电源地
RXD RXD 串口接收
TXD TXD 串口发送
  • Relay接口
功能引脚 树莓派接口(BCM) 描述
GND GND 电源地
IN_CH1 GPIO5 继电器1
IN_CH2 GPIO6 继电器2
IN_CH3 GPIO13 继电器3
IN_CH4 GPIO16 继电器4
IN_CH5 GPIO19 继电器5
IN_CH6 GPIO20 继电器6

安装库

如果使用bookworm系统,只能使用lgpio库,bcm2835跟wiringPi无法安装与使用

BCM2835

#打开树莓派终端,并运行以下指令
wget http://www.airspayce.com/mikem/bcm2835/bcm2835-1.71.tar.gz
tar zxvf bcm2835-1.71.tar.gz 
cd bcm2835-1.71/
sudo ./configure && sudo make && sudo make check && sudo make install
# 更多的可以参考官网:http://www.airspayce.com/mikem/bcm2835/

wiringPi

#打开树莓派终端,并运行以下指令
cd
sudo apt-get install wiringpi
#对于树莓派2019年5月之后的系统(早于之前的可不用执行),可能需要进行升级:
wget https://project-downloads.drogon.net/wiringpi-latest.deb
sudo dpkg -i wiringpi-latest.deb
gpio -v
# 运行gpio -v会出现2.52版本,如果没有出现说明安装出错

#Bullseye分支系统使用如下命令:
git clone https://github.com/WiringPi/WiringPi
cd WiringPi
./build
gpio -v
# 运行gpio -v会出现2.70版本,如果没有出现说明安装出错

lgpio

#打开树莓派终端,并运行以下指令
wget https://github.com/joan2937/lg/archive/master.zip
unzip master.zip
cd lg-master
sudo make install

# 更多的可以参考官网:https://github.com/gpiozero/lg
  • python
sudo apt-get update
sudo apt-get install python-serial
sudo pip install python-can

下载例程

在树莓派终端运行:

sudo apt-get install p7zip-full
wget https://www.waveshare.net/w/upload/2/2f/RPi_Zero_Relay_Code.7z
7z x RPi_Zero_Relay_Code.7z  -r -o./RPi_Zero_Relay_Code
sudo chmod 777 -R RPi_Zero_Relay_Code/

CAN使用

本演示程序使用了两个RPi-Zero-Relay模块
提供python与c语言程序

前置工作

将模块连接好,然后修改开机脚本config.txt

sudo nano /boot/config.txt

在最后一行加入如下:

dtparam=spi=on
dtoverlay=mcp2515-can0,oscillator=16000000,interrupt=25,spimaxfrequency=3000000


保存退出后,重启树莓派:

sudo reboot

重启后,运行命令查看是否初始化成功:

dmesg | grep -i '\(can\|spi\)'

RS485 CAN HAT CAN1.png
如果不接上模块可能提示如下:
RS485 CAN HAT CAN2.png
请检查是否连接上模块。是否开启SPI并开启MCP2515内核驱动。是否进行重启。
确定好两边RPi-Zero-Relay都这样处理了,把两个模块的H与L对应连接
如果使用的是其他的CAN设备,确定连线H-H,L-L即可

C

  • 阻塞接收,树莓派打开终端,运行:
cd RPi_Zero_Relay_Code/CAN/wiringPi/receive/
make clean
make
sudo ./can_receive

接收程序是阻塞的。
RPi Zero Relay CAN 2.jpg

  • 发送,树莓派打开终端,运行:
cd RPi_Zero_Relay_Code/CAN/wiringPi/send/
make clean
make
sudo ./can_send

RPi Zero Relay CAN 1.jpg

输入对应的数值:
RPi Zero Relay CAN 3.jpg

此时接收接收到对应的id的报文:
RPi Zero Relay CAN 4.jpg

python

树莓派打开终端,运行:

cd RPi_Zero_Relay_Code/CAN/python/
#先运行接收:
sudo python can_reveive.py
#发送端:
sudo python can_send.py

与其他的CAN设备应该如何使用

1.确保硬件接线是正确的,即H-H,L-L连接
2.确保两边的波特率设置一致的,默认的例程设置的波特率为100K
3.确保两边的CAN ID是一致的,否则无法接收到

RPi Zero Relay CAN 10.jpg

RPi Zero Relay CAN 9.jpg

4.如果长时间发送数据有丢帧现象,可以尝试降低波特率解决

RS485使用

本演示程序使用了两个RPi-Zero-Relay模块
提供python与wiringPi语言程序

前置工作

开启Uart接口

打开树莓派终端,输入以下指令进入配置界面

sudo raspi-config
选择Interfacing Options -> Serial,关闭shell访问,打开硬件串口
L76X GPS Module rpi serial.png

打开/boot/config.txt文件,找到如下配置语句使能串口,如果没有,可添加在文件最后面。

enable_uart=1

然后重启树莓派:

sudo reboot

确定好两边树莓派都这样处理了,把两个模块的A与B对应连接
如果使用的是其他的485设备,确定连线A-A,B-B即可

C

  • 阻塞接收,树莓派打开终端,运行:
cd RPi_Zero_Relay_Code/485/WiringPi/receive
make clean
make
sudo ./485_receive

接收程序是阻塞的。
RPi Zero Relay 485 2.jpg

  • 发送,树莓派打开终端,运行:
cd RPi_Zero_Relay_Code/485/WiringPi/send
make clean
make
sudo ./485_send

RPi Zero Relay 485 1.jpg

输入对应的数值:
RPi Zero Relay 485 3.jpg

此时接收端接收到程序
RPi Zero Relay 485 4.jpg

python例程

cd RPi_Zero_Relay_Code/485/python/
#先运行接收:
sudo python receive.py
#发送端:
sudo python send.py

故障排查

如果485通信不正常,请分步调试:

  1. 确认是否禁止了从串行登录树莓派shell;
  2. 确定485的A,B是否与控制的485设备A,B一一对应;
  3. 可以先使用USB to 485设备与RPi Zero Relay通信,保证树莓派的设置没有问题;

资料


文档

程序

数据手册


FAQ


技术支持


联系人:彭工
EMAIL:2851966006@qq.com
电话:0755-83040712
QQ:2851966006
微信:扫下方二维码添加
Pqy.png

说明:进行售后服务前,请准备好客户信息(定货单位、定货人等),以供验证