|
本帖最后由 hm184092 于 2018-11-24 21:32 编辑
树莓派和arduino之间通讯有很多方法,这里讲解一下i2c通信
首先先打开树莓派的i2c功能,新安装的系统 i2c 默认是关闭的,打开就好了
系统默认已安装了i2c工具,如果没有就安装一下 - sudo apt-get install i2c-tools
复制代码
安装好之后来查看一下已连接树莓派的i2c地址
当然这里看不到任何地址,因为还没有连接任何i2c器件,接下来写一下代码
Wire.begin(8);这里的8是设定arduino的从机地址,这个地址随便设置,范围到255
程序下载到arduino之后,连接树莓派,这里使用的是uno,A4连接树莓派sda,A5连接scl,gnd接gnd,接好之后再来查看一下i2c地址
那个08就是arduino的i2c地址,这说明和树莓派连接成功
接下来写个例子,树莓派通过i2c发送随机数给arduino,ard收到后把这个数通过pwm来点亮led
python代码: - import smbus
- import time
- import random
- bus = smbus.SMBus(1)
- while 1:
- val=random.randint(0, 255) #产生随机数,范围0-255
- bus.write_byte(0x08, val) #向地址8发送数据
- time.sleep(0.5) #延时0.5秒
复制代码
arduino代码: - #include <Wire.h>
- int a;
- void setup() {
- Wire.begin(8);
- Wire.onReceive(receiveEvent);
- Serial.begin(9600);
- pinMode(11,OUTPUT);
- }
- void loop() {
- delay(100);
- }
- void receiveEvent(int howMany)
- {
- while (Wire.available())
- {
- a = Wire.read();
- analogWrite(11,a);
- Serial.println(a);
- }
- }
复制代码
对指令不懂的可以看下语法手册
没有问题后可以看到11号引脚的led灯忽亮忽暗的 |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
|