树莓派IIC操作

树莓派IIC操作

一、树莓派连接OLED显示器(SSD1306)

1、开启树莓派IIC

config1
config2config3
config4
config5
config6

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、接线

ras
OLED模块(SSD1306)IIC接口:

  • GND
  • VCC
  • SCL
  • SDA
    oled

分别接树莓派1、3、5、6引脚
connect

4、查看IIC地址
sudo i2cdetect -y 1

IIC_address

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

display
也可以下载 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
    ultrasonic
    分别接树莓派1、3、5、6引脚
    ultra_connect
4、查看IIC地址
sudo i2cdetect -y 1

IIC_dis_address

5、查看超声波传感器地址并读取0x00内容
sudo i2cdump -y 1 0x74
sudo i2cget -y 1 0x74 0x00

address_content_read
根据KS103文档资料,距离信息存储在0x02寄存器(0x020x03)中,所以读取0x02中的信息即可,读取时需要发送一条探测指令,根据文档,往0x02寄存器写入0xb0,等待33ms(探测最大耗时33ms)后,读取0x02的值即为距离信息

ks_103doc

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

read_sensor

参考链接

https://blog.csdn.net/ki1381/article/details/79291138
https://blog.csdn.net/gouxf_0219/article/details/88423297
KS103文档

如有错误或版权问题,请指正。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值