大数跨境
0
0

【树莓派基础系列教程】8、用树莓派通过I2C调试传感器

【树莓派基础系列教程】8、用树莓派通过I2C调试传感器 DF创客社区
2021-05-26
1
导读:我们已经逐渐熟悉了树莓派,用它来做一些简单的实验吧~
【点击上方「蓝字」关注DF创客社区,一起成为技术颜控】

现在我们已经逐渐熟悉了树莓派,我们就可以用它来做一些简单的实验了!

在数字传感器中,我们最常用的就是I2C通信的传感器,I2C(Inter-Integrated Circuit)总线是由PHILIPS公司开发的两线式串行总线,用于连接微控制器及其外围设备。是微电子通信控制领域广泛采用的一种总线标准。

下面是树莓派的引脚图,我们先只用了解I2C引脚就行了。

在使用树莓派的I2C引脚之前,我们需要先使能I2C引脚,

sudo raspi-config

按动图中的步骤就可以完成使能~

使能I2C后,不需要重启树莓派就可以使用。

一般来说,I2C传感器有VCC,GND,SDA,SCL这4个接口,我们需要将这4个接口接在上图树莓派的3,4,5,6引脚上。

现在我们开始在树莓派上调试~

首先,我们应先安装I2C库和工具

sudo apt-get install i2c-tools

安装成功后,我们输入下面的指令:

sudo i2cdetect -y -a 1

这个指令的目的有两个,首先是为了确认I2C使能成功,能与传感器正常通信,其次是为了扫描I2C设备的地址,方便我们下一步操作。

读取I2C设备的数据

sudo i2cdump -y 1 0x68
  • -y代表取消用户交互过程,直接执行命令

  • 1代表I2C设备号

  • 0x68代表I2C设备地址

读出的是0x68这个地址的设备各个寄存器的数据

写入数据

sudo i2cset -y 1 0x68 0x1a 0x55
  • 1 代表I2C设备号
  • 0x68代表I2C设备地址
  • 0x1a代表寄存器地址
  • 0x55代表向寄存器写入的数据

读取寄存器数据

sudo i2cget -y 1 0x68 0x1a
  • 1代表I2C设备号
  • 0x68代表I2C设备地址
  • 0x1a代表寄存器地址

I2C编程

上述方法是在指令层面的I2C通信,现在我们进入编程环节~

在本教程中,我们主要学习Python作为树莓派的编程语言,因此我们也只为大家介绍Python的I2C编程。

首先我们要安装smbus库,

sudo pip install smbus

接下来我们来学习使用smbus库。

下面的代码用了最常用的四个smbus库的方法~

import smbus
import time
i2cbus= smbus.SMBus(1)

data=bus.read_byte_data(addr,reg)
print(data)

bus.write_byte_data(addr,reg,0x99)

#对16位数据的读写
data=bus.read_word_data(addr,reg)
print(data)

bus.write_word_data(addr,reg,0x01d6)

#读写列表
data=bus.read_i2c_block_data(addr,reg)
print(data[0])
buffer=[0x24,0x26]
bus.write_i2c_block_data(addr,reg,buffer)

打开python环境,将上述代码逐行输入,每输入一行都可以看到运行结果(#后面的可以不用输入)

也可以将代码输入后缀为.py的Python脚本中,运行脚本就能看到I2C读取结果了!

- END -

硬件军火库


点击了解详情👆


大家有什么想法,或是对文章的指正,都欢迎在下方留言

学有余力的小伙伴,可以点击阅读原文,到社区继续学习!




 往期回顾 



树莓派是什么?能吃吗

【树莓派基础系列教程】1、配置和初始化树莓派

【树莓派基础系列教程】2、远程连接树莓派

【树莓派基础系列教程】3、Linux命令学习

【树莓派基础系列教程】4、点亮LED

【树莓派基础系列教程】5、超声波传感器测距

【树莓派基础系列教程】6、按键控制树莓派关机

【树莓派基础系列教程】7、用树莓派实现自动温控小风扇


点击阅读👆

【声明】内容源于网络
0
0
DF创客社区
我们是专注于创新和开源硬件开发的公司——DFRobot成立的创客社区,无论你是资深创客还是小白,这里都有你的一席之地。一个人玩自己的项目,你只是寂寞宅;一群人看你玩项目,你就是技术牛!快来分享你的项目吧!
内容 1282
粉丝 0
DF创客社区 我们是专注于创新和开源硬件开发的公司——DFRobot成立的创客社区,无论你是资深创客还是小白,这里都有你的一席之地。一个人玩自己的项目,你只是寂寞宅;一群人看你玩项目,你就是技术牛!快来分享你的项目吧!
总阅读1.7k
粉丝0
内容1.3k