提供 C 语言 和 Python 例程。
功能引脚 | 树莓派接口(BCM) | 描述 |
GND | GND | 电源地 |
SCK | SCK | SPI时钟输入 |
MOSI | MOSI | SPI数据输入 |
MISO | MISO | SPI数据输出 |
CS | CE0 | 数据/命令选择 |
INT | 25 | 中断输出 |
功能引脚 | 树莓派接口(BCM) | 描述 |
GND | GND | 电源地 |
RXD | RXD | 串口接收 |
TXD | TXD | 串口发送 |
功能引脚 | 树莓派接口(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 |
使用教程
- wget http://www.airspayce.com/mikem/bcm2835/bcm2835-1.68.tar.gz
- tar zxvf bcm2835-1.68.tar.gz
- cd bcm2835-1.68/
- sudo ./configure && sudo make && sudo make check && sudo make install
- # 更多的可以参考官网:http://www.airspayce.com/mikem/bcm2835/
- 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版本,如果没有出现说明安装出错
- 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/
本演示程序使用了两个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\)'
如果不接上模块可能提示如下:
请检查是否连接上模块。是否开启SPI并开启MCP2515内核驱动。是否进行重启。
确定好两边RPi-Zero-Relay都这样处理了,把两个模块的H与L对应连接
如果使用的是其他的CAN设备,确定连线H-H,L-L即可
- cd RPi_Zero_Relay_Code/CAN/wiringPi/receive/
- make clean
- make
- sudo ./can_receive
- cd RPi_Zero_Relay_Code/CAN/wiringPi/send/
- make clean
- make
- sudo ./can_send
树莓派打开终端,运行:
- cd RPi_Zero_Relay_Code/CAN/python/
- #先运行接收:
- sudo python can_reveive.py
- #发送端:
- sudo python can_send.py
1.确保硬件接线是正确的,即H-H,L-L连接
2.确保两边的波特率设置一致的,默认的例程设置的波特率为100K
3.确保两边的CAN ID是一致的,否则无法接收到
4.如果长时间发送数据有丢帧现象,可以尝试降低波特率解决
本演示程序使用了两个RPi-Zero-Relay模块
提供python与wiringPi语言程序
打开树莓派终端,输入以下指令进入配置界面
- sudo raspi-config
- 选择Interfacing Options -> Serial,关闭shell访问,打开硬件串口
打开/boot/config.txt文件,找到如下配置语句使能串口,如果没有,可添加在文件最后面。
- enable_uart=1
然后重启树莓派:
- sudo reboot
确定好两边树莓派都这样处理了,把两个模块的A与B对应连接
如果使用的是其他的485设备,确定连线A-A,B-B即可
- cd RPi_Zero_Relay_Code/485/WiringPi/send
- make clean
- make
- sudo ./485_receive
- cd RPi_Zero_Relay_Code/485/WiringPi/send
- make clean
- make
- sudo ./485_send
- cd RPi_Zero_Relay_Code/485/python/
- #先运行接收:
- sudo python receive.py
- #发送端:
- sudo python send.py
如果485通信不正常,请分步调试: