基本说明:

PCF8591是一个单片集成、单独供电、低功耗、8-bit CMOS 数据获取器件。PCF8591具有4个模拟输入、1个模拟输出和1个串行I2C总线接口。PCF8591的3个地址引脚A0, A1和A2可用于硬件地址编程,允许在同个I2C总线上接入8个PCF8591器件,而无需额外的硬件。在PCF8591器件上输入输出的地址、控制和数据信号都是通过双线双向I2C总线以串行的方式进行传输。

图1 PCF8591模块

接口连接:

左边

AOUT 芯片DA输出接口

AIN0 芯片模拟输入接口0

AIN1 芯片模拟输入接口1

AIN2 芯片模拟输入接口2

AIN3 芯片模拟输入接口3

右边

SCL IIC 时钟接口 接树莓派SCL口

SDA IIC 数字接口 接树莓派SDA口

GND 模块地 外接地

VCC 电源接口 外接 3.3v-5v

模块共有 3 个红色短路帽,分别作用如下:

P4 接上P4短路帽,选择热敏电阻接入电路

P5 接上P5短路帽,选择光敏电阻接入电路

P6 接上P6短路帽,选择0-5V可调电压接入电路

如需外接,则取下跳帽

代码实现:

import smbus                 #在程序中导入“smbus”模块(系统管理总线模块)
import time# 0 代表 /dev/i2c-0, 1 代表 /dev/i2c-1 ,具体看使用的树莓派那个I2C来决定
bus = smbus.SMBus(1)         #创建一个smbus实例#在树莓派上查询PCF8591的地址:“sudo i2cdetect -y 1”
def setup(Addr):global addressaddress = Addrdef read(chn): #channelif chn == 0:bus.write_byte(address,0x40)   #发送一个控制字节到设备if chn == 1:bus.write_byte(address,0x41)if chn == 2:bus.write_byte(address,0x42)if chn == 3:bus.write_byte(address,0x43)bus.read_byte(address)             #从设备读取单个字节,而不指定设备寄存器。return bus.read_byte(address)      #返回某通道输入的模拟值A/D转换后的数字值def write(val):temp = val  # 将字符串值移动到temptemp = int(temp) # 将字符串改为整数类型# print temp to see on terminal else comment outbus.write_byte_data(address, 0x40, temp) #写入字节数据,将数字值转化成模拟值从AOUT输出if __name__ == "__main__":setup(0x48) #在树莓派终端上使用命令“sudo i2cdetect -y 1”,查询出PCF8591的地址为0x48while True:print '电位计   AIN0 = ', read(0)   #电位计模拟信号转化的数字值print '光敏电阻 AIN1 = ', read(1)   #光敏电阻模拟信号转化的数字print '热敏电阻 AIN2 = ', read(2)   #热敏电阻模拟信号转化的数字值tmp = read(0)tmp = tmp*(255-125)/255+125
# 125以下LED不会亮,所以将“0-255”转换为“125-255”,调节亮度时灯不会熄灭write(tmp)time.sleep(2)

树莓派控制PCF8591 AD/DA模块相关推荐

  1. PCF8591 ---AD\DA转换器的使用(IIC通信的软件模拟与应用) (by 51单片机)

    依旧是借着蓝桥杯的机会,来学习一些模块,和软件模拟一些通信方式. 今天学习的模块是PCF8591,一款AD\DA转换器,使用IIC通信方式. 芯片的内部框图如下所示: 各引脚作用如下表所示: 仍旧和之 ...

  2. 单片机C语言DA转换,51单片机PCF8591的DA转换程序详解[含HL-1与HJ-c52 DA代码AD/DA原理图](可直接复......

    以下是补充(能想到的范围有限有没想到的还请谅解) DA工作原理 基于PCF8591芯片 DA是什么? n DA指数模转换(Digital to Analog),顾名思义,就是把数字信号转换成模拟信号. ...

  3. AutoLeaders控制组——51单片机学习笔记(AD/DA、红外遥控)

    本篇内容是观看B站江科大自化协UP主的教学视频所做的笔记,对其中内容有所引用,并结合自己的单片机板块进行了更改调整. 以下笔记内容以一个视频为一个片段(内容较多,可能不适合速食,望见谅) 一些内容涉及 ...

  4. 51单片机学习笔记AD/DA

    AD/DA AD(Analog to Digital):模拟-数字转换,将模拟信号转换为计算机可操作的数字信号.比如单片机只能识别0与5V数字信号,当输入为2.5V--模拟信号时,就需要转化为单片机所 ...

  5. STC89C52单片机AD/DA介绍与代码演示

    目录 AD/DA介绍 硬件电路模型 硬件电路图 运算放大器 运放电路 AD原理 DA原理 AD/DA性能指标 XPT2046的使用介绍与配置 XPT2046的时序 代码解释 AD/DA介绍 AD(An ...

  6. AD/DA转换(XPT2046)

    AD/DA介绍 AD(Analog to Digital):模拟-数字转换,将模拟信号转换为计算机可操作的数字信号 DA(Digital to Analog):数字-模拟转换,将计算机输出的数字信号转 ...

  7. 树莓派控制超声波传感器

    看到大二的时候有写过关于树莓派控制HC-SR04超声波测距模块的教程,当时并未给出代码(也不知道是什么原因,估计初写博客并不熟悉吧),所以在三年后的今天贴代码出来,给大家参考下. //树莓派控制超声波 ...

  8. 树莓派控制16路PWM输出的PCA9685模块

    树莓派控制16路PWM输出的PCA9685模块 1.PCA9685 1.1简介 采用I2C通信,内置了PWM驱动器和一个时钟,不需要不断发送信号占用单片机资源 支持16路PWM输出,每路12位分辨率( ...

  9. 如何用树莓派连接语音模块,红外模块来控制红外设备详解

    如何用树莓派连接语音模块,红外模块来控制红外设备详解 1.硬件设备 2.软件准备 3.解码 1.红外解码流程 1.连接红外设备(与TTL串口相连) 2.获取开关红外电器的码 4.我们使用树莓派如何和W ...

  10. 树莓派与PCF8591模数转换器的那些事儿

    文章目录 一.简介 二.硬件准备 1.PCF8591 * 1 2.KY-011双色LED模块 * 1 3.树莓派4B * 1 4.硬件引脚连线 三.软件准备 1.PCF8591.py 2.main.p ...

最新文章

  1. jbuilder2006注册机
  2. SAP财务管控 财务总监背后的“管理大师” PDF下载
  3. Maven(3)--聚合与继承
  4. Leetcode#832. Flipping an Image(翻转图像)
  5. 基于SSH框架社区智能化管理系统答辩PPT模板
  6. Qt 简单的视频播放器
  7. PHP100视频教程(2012-2013版)下载地址及密码
  8. DSkin学习之DSkin.Forms
  9. 【VBA】用excel玩游戏,俄罗斯方块
  10. 数据评估:SD(标准差), 方差, 方差分析(ANOVA)
  11. Java代码验证社会统一信用代码规则
  12. m选n组合的两种算法(C语言实现)
  13. Unity一键更换TextMeshPro的字体
  14. 计算机知识练习中公,计算机考试题库:计算机基础练习题(14)
  15. 团队作业7——alpha阶段之事后诸葛亮分析
  16. mingw32-make[1]: *** [debug/qrc_resource.cpp] Error 1
  17. 字体图标之Symbol用法
  18. Good feelings
  19. 文件管理android2.3,Tomi文件管理器下载 v2.3.4 安卓版
  20. 联邦学习实战-2-用FATE从零实现横向逻辑回归

热门文章

  1. Android 方法耗时打印插件
  2. SSL_2893【谷仓的安保】
  3. 注册自己想要的域名,免费批量查询域名是否注册
  4. java fmail发送邮件_【已实测通过】JavaMail常用的几种邮件发送方式
  5. Excel合并计算完成多表格数据汇总求和
  6. Pandas - 5.缺失值处理
  7. Google 谷歌创业训练营2021展示日回顾
  8. CSS border-image(边框图片)
  9. 流量卡之家:5G从概念到落地,未来工厂触手可及
  10. android 拼音字母语音,拼音发音点读app