树莓派系列教程:I2C
一、启动I2C
执行如下命令进行树莓派配置
sudo raspi-config
选择Advanced Options -> I2C ->yes 启动i2C内核驱动 运行lsmod命令查看i2c时候启动
若没有启动i2c内核驱动,可以试下添加如下配置文件,运行如下命令打开配置文件。
sudo nano /etc/modules
增加以下两行并保存退出。
i2c-bcm2708
i2c-dev
二、i2c-tools 安装i2c-tools,这个工具在I2c硬件监控设备识别和故障诊断是非常重要。
sudo apt-get install i2c-tools
【i2c-tools官网】 http://www.lm-sensors.org/wiki/i2cToolsDocumentation
I2c-tools仅有四条命令,下面逐条介绍。
1、i2c-tool查询i2c设备:
i2cdetect -y 1
-y 代表取消用户交互过程,直接执行指令; 1 代表I2C总线编号;
上图是树莓派接上Pioneer 600扩展板检测到的i2C设备,
0x20是PCF8974 IO扩展芯片的地址,
0x48是PCF8591 AD/DA转换芯片的地址
0x68是DS3231 RTC时钟芯片的地址
0x77是BMP180压强传感器的地址
2、扫描寄存器内容:
i2cdump -y 1 0x68
-y 代表取消用户交互过程,直接执行指令;
1 代表I2C总线编号;
0x68 代表I2C设备从机地址,此处表示DS3231 RTC时钟芯片
3、寄存器内容写入:
i2cset -y 1 0x68 0x00 0x13
-y 代表曲线用户交互过程,直接执行指令
1 代表I2C总线编号
0x68 代表I2C设备地址,此处表示DS3231 RTC时钟芯片
0x00 代表存储器地址,
0x13 代表存储器地址中的具体内容
4、寄存器内容读出:
i2cget -y 1 0x68 0x00
-y 代表曲线用户交互过程,直接执行指令
1 代表I2C总线编号
0x68 代表I2C设备地址,此处表示DS3231 RTC时钟芯片
0x00 代表存储器地址
三、使用i2c-tools控制PCF8574 IO
PCF8574是I2C总线8位IO扩展芯片,初始状态IO为高电平. PCF8574和其他I2C芯片不同,该芯片没有寄存器,直接传输一个字节即控制IO输出状态。Pioneer 600扩展板,LED2接到PCF8574的p4管脚。低电平点亮LED.
写IO管脚:
i2cset –y 1 0x20 0xEF
0x20 代表I2C设备地址,此处表示PCF8574芯片
0xEF 传输的内容,此处表示PCF8574的P4管脚输出低电平,其他管脚输出高电平
可以看到Pioneer 600扩展板的LED2点亮
读IO管脚:
i2cget -y 1 0x20
运行这条命令即可读取PCF8574 IO管脚状态
熄灭LED2
i2cset –y 1 0x20 0xFF
同理,Pionerr 600扩展板,蜂鸣器接到PCF8574的P7管脚,可以用i2c-tool控制蜂鸣器
蜂鸣器响:
i2cset –y 1 0x20 0x7F
蜂鸣器停:
i2cset –y 1 0x20 0xFF
系列教程
- 树莓派系列教程:人生若只如初见
- 树莓派系列教程:烧写镜像
- 树莓派系列教程:远程登录树莓派(SSH登陆/远程桌面登陆/串口登陆)
- 树莓派系列教程:更换软件源
- 树莓派系列教程:访问树莓派
- 树莓派系列教程:配置WiFi
- 树莓派系列教程:系统配置(raspi-config)
- 树莓派系列教程:中文输入法
- 树莓派系列教程:摄像头
- 树莓派系列教程:Linux常用命令以及vi/vim编辑器
- 树莓派系列教程:文件共享(samba)
- 树莓派系列教程:wiringPi、bcm2835、python库安装
- 树莓派系列教程:如何点亮一个LED灯(上)
- 树莓派系列教程:如何点亮一个LED灯(下)
- 树莓派系列教程:按键
- 树莓派系列教程:I2C
- 树莓派系列教程:I2C编程
- 树莓派系列教程:I2C总线控制BMP180
- 树莓派系列教程:Serial串口
- 树莓派系列教程:红外遥控
- 树莓派系列教程:RTC
- 树莓派系列教程:PCF8591 AD/DA
- 树莓派系列教程:SPI
- 树莓派系列教程:物联网之MQTT
- Alphabot树莓派教程:变身路由器
- Alphabot树莓派教程:刷LEDE(OpenWRT)系统变身路由器
- 树莓派引脚对照表
- SIM868 ppp拨号上网