0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何将PCF8591 ADC模块与Raspberry Pi连接

科技观察员 来源:circuitdigest 作者:Abhishek Sharma 2022-08-26 15:58 次阅读

模数转换在嵌入式电子产品中是一项非常重要的任务,因为大多数传感器模拟值的形式提供输出并将它们馈送到只理解二进制值的微控制器,我们必须将它们转换为数字值。因此,为了能够处理模拟数据,微控制器需要模数转换器

在本教程中,我们将学习如何将 PCF8591 ADC/DAC 模块与 Raspberry Pi 连接。

所需组件

树莓派

PCF8591 ADC模块

100K 锅

跨接电缆

假设您安装了最新的 Raspbian OS 的 Raspberry Pi,并且您知道如何使用 putty 等终端软件通过 SSH 连接到 Pi。如果您是 Raspberry Pi 新手,请按照本文 开始使用 Raspberry Pi。尽管如此,如果您遇到任何问题,那么有大量的 Raspberry Pi 教程 可以提供帮助。

PCF8591 ADC/DAC 模块

PCF8591 是一个 8 位模数或 8 位数模转换器模块,这意味着每个引脚可以读取高达 256 的模拟值。它还具有 LDR 和板上提供的热敏电阻电路。该模块有四个模拟输入和一个模拟输出。它适用于I 2 C 通信,因此有用于串行时钟和串行数据地址的 SCL 和 SDA 引脚。它需要2.5-6V的电源电压并且具有低待机电流。我们也可以通过调节模块上电位器的旋钮来控制输入电压。板上还有三个跳线。J4接选择热敏电阻接入电路,J5接选择LDR/光敏电阻接入电路J6连接选择可调电压接入电路。板上有两个 LED D1 和 D2-D1 显示输出电压强度,D2 显示电源电压强度。输出或电源电压越高,LED D1 或 D2 的强度越高。您还可以使用 VCC 或 AOUT 引脚上的电位器来测试这些 LED。

poYBAGMIfOCAeCLFAAKC_eziIIE366.png

Raspberry Pi 中的 I2C 引脚

为了将PCF8591与 Raspberry Pi 一起使用,首先要做的是了解 Raspberry Pi I2C 端口引脚并在 Raspberry pi 中配置 I2C 端口。

下面是树莓派 3 Model B+ 的引脚图, 本教程使用I2C 引脚 GPIO2 (SDA) 和 GPIO3 (SCL) 。

在树莓派中配置 I2C

默认情况下,I2C 在 Raspberry Pi 中是禁用的。所以首先必须启用它。在 Raspberry Pi 中启用 I2C

1. 转到终端并键入 sudo raspi-config。

2. 现在树莓派软件配置工具出现了。

3. 选择 接口选项 ,然后启用 I2C。

poYBAGMIfN2AUQqyAABf8k3uFr0764.png

4. 启用 I2C 后重启 Pi。

使用树莓派扫描 PCF8591 的 I2C 地址

现在为了开始与 PCF8591 IC 通信,Raspberry Pi 必须知道它的 I2C 地址。要找到地址,首先将 PCF8591 的 SDA 和 SCL 引脚连接到 Raspberry Pi 的 SDA 和 SCL 引脚。还要连接 +5V 和 GND 引脚。

现在打开终端并输入以下命令以了解连接的 I2C 设备的地址,

sudo i2cdetect –y 1 或 sudo i2cdetect –y 0

现在找到 I2C 地址后,是时候构建电路并安装必要的库了,以便将 PCF8591 与 Raspberry Pi 一起使用。

将 PCF8591 ADC/DAC 模块与 Raspberry Pi 连接

PCF8591与树莓派接口的电路图很简单。在这个接口示例中,我们将从任何模拟引脚读取模拟值并将其显示在 Raspberry Pi 终端上。我们可以使用 100K 的罐子来更改这些值。

poYBAGMIfNeAIwmLAADv9nzg8jQ340.png

poYBAGMIfNOAFfisAAWeTRBIup0871.png

将 VCC 和 GND 连接到树莓派的 GPIO2 和 GPIO。接下来,将 SDA 和 SCL 分别连接到 GPIO3 和 GPIO5。最后用AIN0连接一个100K的电位器。您还可以添加16x2 LCD来显示 ADC 值,而不是在终端上显示。

用于模数转换 (ADC) 的 Python 程序

首先,导入用于I2 C 总线通信的smbus库和时间库,以在打印值之间提供休眠时间。

导入 smbus
导入时间

现在定义一些变量。第一个变量包含 I2C 总线的地址,第二个变量包含第一个模拟输入引脚的地址。

地址 = 0x48 
A0 = 0x40

接下来,我们制作了库 smbus 的函数 SMBus(1) 的对象

总线 = smbus.SMBus(1)

现在,第一行告诉 IC 在第一个模拟输入引脚上进行模拟测量。第二行将在模拟引脚读取的地址存储在变量值中。最后打印值。

while True: 
    bus.write_byte(address,A0) 
    value = bus.read_byte(address) 
    print(value) time.sleep 
    (0.1)

现在终于将 python 代码保存在带有 .py 扩展名的文件中,并使用以下命令在树莓派终端中运行代码“

蟒蛇文件名.py

现在终于将 python 代码保存在带有 .py 扩展名的文件中,并使用以下命令在树莓派终端中运行代码“

在运行代码之前,请确保您已启用 I 2 C 通信并且所有引脚都如图所示连接,否则会显示错误。模拟值必须开始显示在终端上,如下所示。调整锅的旋钮,你会看到数值的逐渐变化。

pYYBAGMIfM6AYQlrAABQTy37pq0375.png

import smbus

导入时间

地址 = 0x48

总线 = smbus.SMBus(1)


while True:

bus.write_byte(address,A0)

value = bus.read_byte(address)

print(value) time.sleep

(0.1)

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • adc
    adc
    +关注

    关注

    97

    文章

    6380

    浏览量

    543581
  • 模数转换器
    +关注

    关注

    26

    文章

    3079

    浏览量

    126689
  • PCF8591
    +关注

    关注

    3

    文章

    67

    浏览量

    32733
收藏 人收藏

    评论

    相关推荐

    PCF8591 DA转换

    想通过PCF8591芯片 进行DA转换 在1V开始 隔一秒输出加1V 应该怎么写程序 没弄懂PCF8591的工作原理还望大神赐教
    发表于 10-04 16:09

    PCF8591是什么?怎样去设计PCF8591电路?

    PCF8591是什么?怎样去设计PCF8591电路?如何去编写ADC/DAC模块函数代码?
    发表于 07-19 08:56

    PCF8591ADC与DAC分别是什么意思

    PCF8591ADC与DAC分别是什么意思?它们之间有何关系呢?
    发表于 02-14 07:36

    PCF8591中文数据手册

    PCF8591是一个单片集成、单独供电、低功耗、8-bit CMOS数据获取器件。PCF8591具有4个模拟输入、1个模拟输出和1个串行IC总线接口。PCF8591的3个地址引脚A0, A1和A2可用于硬件地址编程,允许在
    发表于 03-22 15:41 1741次下载
    <b class='flag-5'>PCF8591</b>中文数据手册

    PCF8591英文数据手册

    PCF8591英文数据手册,有兴趣的同学可以下载学习
    发表于 04-25 18:24 0次下载

    PCF8591驱动程序

    PCF8591驱动程序 51单片机程序
    发表于 08-31 16:11 30次下载

    基于8051的Proteus仿真-PCF8591模数与数模转换

    基于8051的Proteus仿真-PCF8591模数与数模转换实验
    发表于 05-12 10:18 204次下载

    PCF8591 AD电压采集仿真程序 电压表仿真设计 PCF85

    PCF8591 AD电压采集仿真程序 电压表仿真设计 PCF8591模拟量采集
    发表于 01-14 22:32 63次下载

    PCF8591 ADC和DAC芯片的数据手册免费下载

    本文档的主要内容详细介绍的是PCF8591 ADC和DAC芯片的数据手册免费下载主要内容包括了:YL-40 AD模块使用说明,四路采集串口显示程序,Commix串口调试助手,YL-40模块
    发表于 07-15 08:00 70次下载
    <b class='flag-5'>PCF8591</b> <b class='flag-5'>ADC</b>和DAC芯片的数据手册免费下载

    微雪电子ADC DAC AD DA转换PCF8591 PCF8591T简介

    PCF8591 AD DA转换模块 I2C接口 8位精度 四通道AD 单通道DA 电压输出型 型号 PCF8591 AD DA Board
    的头像 发表于 12-30 09:59 3148次阅读
    微雪电子<b class='flag-5'>ADC</b> DAC AD DA转换<b class='flag-5'>PCF8591</b> <b class='flag-5'>PCF8591</b>T简介

    PCF8591的原理图与电路图解析

    PCF8591是一个单电源低功耗的8位CMOS数据采集器件,其接口电路的工作原理图,PCF8591原理图与PCF8591电路图。
    的头像 发表于 02-20 01:18 4.8w次阅读
    <b class='flag-5'>PCF8591</b>的原理图与电路图解析

    蓝桥杯单片机组IIC总线PCF8591

    一,PCF8591——ADC先上干货//Control_byte:控制字节u8 read_pcf8591(Control_byte)//读pcf8591,读取转换通道的转换值{ u8
    发表于 12-14 19:01 5次下载
    蓝桥杯单片机组IIC总线<b class='flag-5'>PCF8591</b>

    单片机:PCF8591 应用程序

    文章目录PCF8591 应用程序PCF8591 应用程序PCF8591 的通信接口是 I2C,那么编程肯定是要符合这个协议的。单片机对 PCF8591 进行初始化,一共发送三个字节即可
    发表于 01-18 10:38 28次下载
    单片机:<b class='flag-5'>PCF8591</b> 应用程序

    PCF8591 ADC与Arduino连接的方法

    在本教程中,我们检查 如何将 PCF8591 ADC/DAC 模块与 Arduino 连接
    发表于 08-26 15:18 3939次阅读
    <b class='flag-5'>将</b><b class='flag-5'>PCF8591</b> <b class='flag-5'>ADC</b>与Arduino<b class='flag-5'>连接</b>的方法

    Linux驱动开发-编写PCF8591(ADC)芯片驱动

    PCF8591是一个IIC总线接口的ADC/DAC转换芯片,功能比较强大,这篇文章就介绍在Linux系统里如何编写一个PCF8591的驱动,完成ADC数据采集,DAC数据输出。
    的头像 发表于 09-17 15:16 2005次阅读
    Linux驱动开发-编写<b class='flag-5'>PCF8591</b>(<b class='flag-5'>ADC</b>)芯片驱动