树莓派IIC操作
文章目录
一、树莓派连接OLED显示器(SSD1306)
1、开启树莓派IIC
2、树莓派安装软件
- python-smbus
- i2c-tools
- python3-dev
- python3-pip
- luma.oled
sudo apt-get install python-smbus
sudo apt-get install i2c-tools
sudo apt-get install python3-dev
sudo apt-get install python3-pip
sudo -H pip3 install --upgrade luma.oled
3、接线
OLED模块(SSD1306)IIC接口:
- GND
- VCC
- SCL
- SDA
分别接树莓派1、3、5、6引脚
4、查看IIC地址
sudo i2cdetect -y 1
5、编写python程序
树莓派内新建oled.py
文件,写入以下内容
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import time
from luma.core.render import canvas
from luma.core.interface.serial import i2c
from luma.oled.device import ssd1306
def main():
with canvas(device) as draw:
draw.text((0, 0), text="Hello World", fill="white")
if __name__ == "__main__":
try:
serial = i2c(port=1, address=0x3C)
device = ssd1306(serial)
while True:
main()
time.sleep(5)
except KeyboardInterrupt:
pass
保存文件,并修改文件可执行属性
sudo chmod a+x oled.py
执行程序
~/env/bin/python3 oled.py
也可以下载 https://github.com/rm-hull/luma.examples 现成的示例,直接运行example
内的python文件即可
二、树莓派读取超声波传感器(KS103 IIC接口)
1、开启树莓派IIC
同上
2、树莓派安装软件
- python-smbus
- i2c-tools
sudo apt-get install python-smbus
sudo apt-get install i2c-tools
3、接线
超声波传感器(KS103)IIC接口:
- GND
- VCC
- SCL
- SDA
分别接树莓派1、3、5、6引脚
4、查看IIC地址
sudo i2cdetect -y 1
5、查看超声波传感器地址并读取0x00内容
sudo i2cdump -y 1 0x74
sudo i2cget -y 1 0x74 0x00
根据KS103文档资料,距离信息存储在0x02寄存器(0x02
、0x03
)中,所以读取0x02中的信息即可,读取时需要发送一条探测指令,根据文档,往0x02寄存器写入0xb0,等待33ms(探测最大耗时33ms)后,读取0x02的值即为距离信息
5、编写python程序
树莓派内新建sensor.py
文件,写入以下内容
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import smbus
import time
bus = smbus.SMBus(1)
iic_address = 0x74
register_address = 0x02
cmd_byte = 0xb0
read_register_address = 0x03 # distance is 0x02 0x03,but distance is short,so,read 0x03
while True:
bus.write_byte_data(iic_address, register_address, cmd_byte)
time.sleep(1) #1s
data = bus.read_byte_data(iic_address, read_register_address)
print(data)
保存文件,并修改文件可执行属性
sudo chmod a+x sensor.py
执行程序
python sensor.py
参考链接
https://blog.csdn.net/ki1381/article/details/79291138
https://blog.csdn.net/gouxf_0219/article/details/88423297
KS103文档
如有错误或版权问题,请指正。