硬件:
1> 树莓派2/3 B板
2> PCA9685 16路驱动板: http://duinopeak.com/wiki/index.php?title=PCA9685_16%E8%B7%AF%E8%88%B5%E6%9C%BA%E9%A9%B1%E5%8A%A8%E6%9D%BF
3> 杜邦线, 针头线若干
软件:
1> pca9685驱动: github 上搜索 pca9685
2> 打开树莓派的i2c接口
单击桌面左上角menu --> preferences --> raspberry Pi configuration
再选择interface面板, 将i2c勾选为enable
3>确定i2c地址,
安装i2c-tools: sudo apt-get install i2c-tools
运行: i2cdetect -y 0 或者 i2cdetect -y 1 (B板) 运行效果如下
pi@raspberrypi:~$ i2cdetect -y 1
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: 40 -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: 70 -- -- -- -- -- -- --
pi@raspberrypi:~ $ i2cdetect -y 0
Error: Could not open file `/dev/i2c-0' or `/dev/i2c/0': No such file or directory
找到两个地址 0x40 0x70
控制tips:
1> 控制方式是使用i2c向寄存器中写入值, 所以断电时不会影响上一次的配置结果.一旦上电,控制器会按照上一次的配置继续输出pwm波.
2>使用OE端口解决上述问题: OE高电平时,输出禁止.OE低电平或者悬空时,输出有效
3>OE电平并不影响配置PCA9685. 所以在上电的同时,应该对OE置高电平,配置完成之后,再置为低电平
地址级联:
(后续补充)