树莓派4B连接PCF8591模块

2023-05-16

1.、PCF8591是8位的数模\模数转换集成芯片,如图 1.(详细介绍可以点击参考

 图 1 PCF8591

2、AIN0-AIN3接模拟输入,比如气体传感器,能外接三个通道的模拟输入,AOUT是模拟输出。

SCL、SDA分别接树莓派引脚的2、3引脚,与树莓派进行I2C通信,VCC、GND接树莓派的5V,GND.

线路连接好后,树莓派命令行查看PCF8591的地址

sudo i2cdetect -y 1 

3、读取PCF8591的值,注意它的地址值和控制字

import matplotlib.pyplot as plt
import RPi.GPIO as GPIO
import numpy as np
import smbus

address = 0x48   # PCF8591地址
ain_address = [0x40, 0x41, 0x42, 0x43]   # 读取模拟输入,对应AIN0-AIN3

bus = smbus.SMBus(1)

bus.write_byte(address, ain_address[0])   # 0X40 AIN0
bus.read_byte(address)                    # 空读一下
value = bus.read_byte(address)            # 0x40通道的值


树莓派外接多个PCF8591

树莓派和PCF8591AD模块采用I2C通信协议的方式,地址由A2A1A0决定(如图2),通过改变地址的组合方式,理论上树莓派可以外接2^3 = 8个AD模块,但是由于PCF8591硬件编程地址引脚A2A1A0默认接地(见原理图),PCF8591模块的默认地址是0x48(1001000),为了树莓派能外接多个AD模块,就需要改变模块的默认地址。

改变PCF8591AD模块地址的方法:本方法中采用的方式是破坏PCF8591芯片的A2A1A0引脚接地状态(也就是暴力挑开A2A1A0引脚,强行改变它的地址)。第一个AD模块不改变引脚状态,得到默认地址0x48(1001000);第二个AD模块的A0接高电平,A1和A2接低电平,得到地址0x49(1001001);第三个AD模块的A1接高电平,A0和A2接低电平,得到地址0x4a(1001010);第四个AD模块的A2接高电平,A0和A1接低电平,得到地址0x4c(1001100)。

图 2 PCF8591控制字

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

树莓派4B连接PCF8591模块 的相关文章

  • 页面跳转的几种方法

    location对象 href assgin跳转到另一个页面可以返回到原来的页面 location span class token punctuation span href span class token operator 61 sp
  • 学习JS基础部分一

    数据类型 分支结构 循环结构 数据类型 简单数据类默认值Number0BooleanfalseString Undefinedundefinednullnull 复杂数据类型默认值Array Object 分支结构 分支语句说明if 条件
  • 来,带你见识一下CT三维重建

    文 xff1a 北京协和医院放射科孙昊 来源 xff1a 从医开始 xff0c 协和八的奇妙临床笔记 相信各位同学在临床工作中 xff0c 已经接触到很多CT三维重建的图像了 xff0c 那么CT三维重建到底是个啥东东 xff1f 这个问题
  • 数组常用方法

    concat span class token keyword let span arr1 span class token operator 61 span span class token punctuation span span c
  • 深拷贝和浅拷贝

    浅拷贝和深拷贝的区别 浅拷贝是复制原数据的数据内容 xff0c 引用原数据的地址 xff1b 当改变复制之后的数据时 xff0c 原数据的数据内容也会被改变 xff0c 因为这是引用原来数据的地址 xff0c 改变的是原数据地址的数据内容
  • Set集合和Map集合

    Set集合 用于存放不重复的数据 xff0c 通过构造函数的形式 参数必须是一个可迭代对象 创建Set对象 span class token keyword const span s1 span class token operator 6
  • js树型结构处理

    span class token comment 获取树形结构并处理 span span class token comment 当child为null时处理 span span class token comment 如果是childre
  • 姿态旋转与坐标变换

    姿态旋转与坐标变换 旋转还是变换 xff1f 坐标旋转 变换矩阵 xff08 Rotation Matrix xff09 等效旋转矢量 xff08 Axis Angle xff09 罗德里格斯公式 xff08 Rodrigues 39 s
  • Gitlab

    Gitlab Gitlab介绍 我们了解了git是以个人为中心 xff0c 但是人人都得数据交互呀 python程序员每天都忙着进行py交易 交互数据的方式 使用github或者码云等公有代码仓库 xff0c 托管代码的地方 xff0c 谁
  • word论文排版和写作04:用MathType和word公式编辑器插入数学公式

    写在前面 插入公式在论文写作中是一个常见的操作 xff0c 本文作为补充 xff0c 主要介绍如何规范和方便地在word中插入公式 主要的方式有两种 xff0c 一种是使用MathType xff0c 一种是使用word自带的公式编辑器 关
  • Jetson Nano ros melodic+realsense+aruco

    一 realsense SDK和realsense ros安装 参考链接 xff1a Ubuntu18 04 43 ROS melodic 安装使用 RealSenseD435i Lynn mg的博客 CSDN博客 ubuntu18安装re
  • ROS同步订阅realsense的彩色图和深度图(python实现)

    首先要保证realsense ros功能包的正常使用 xff0c 具体安装使用如下 xff1a Jetson Nano ros melodic 43 realsense 43 aruco 杰杰 xff01 的博客 CSDN博客 1 创建订阅
  • 用opencv的aruco库生成二维码marker标记

    用opencv的aruco库生成二维码marker标记 代码来源于官方提供的完整的工作实例create marker cpp 在opencv源码中的位置为opencv contrib 4 4 0 modules aruco samples
  • 树莓派上手实战之SSH下配置VNC服务器实现远程桌面(可以实现开机自启动vncserver)

    VNC是linux下面常用的远程桌面 xff0c 用它可以在windows或者unix主机上方便的通过网络操作远程主机而不需要一个额外的显示器 xff0c 非常实用 这篇教程将会详细讲解安装配置VNC服务器开启远程桌面服务的全部过程 首先
  • minikube搭建kubernetes

    系统环境 deepin15 11 安装virtualbox虚拟机 xff1a 应用商店就有安装minikube aizhao 64 aizhao hellonode curl Lo minikube https storage google
  • 安装软件时出现Command “python setup.py egg_info“ failed with error code 1 in /tmp的解决方案

    问题出现 pip3 install paramiko Collecting paramiko Downloading https pypi doubanio com packages be 6f f0ec5f5fb00d270ebd8094

随机推荐

  • flask基础总结(一)——从最简单的例子做起

    Flask是一个用Python编写的Web应用程序框架 xff0c 基于Werkzeug WSGI工具包和Jinja2模板引擎 下面从一个最简单的flask例子说起 span class token keyword from span fl
  • 为什么不建议对Intel Realsense的D400 Series和T265进行标定(Calibration)

    若非特殊情况或有专业设备 xff0c 不建议对相机进行标定 xff01 xff01 xff01 D400 Series 我就是在标定之后才发现 xff0c 标定就是个坑 xff01 xff01 xff01 我在标定后出现问题了才去问的售后
  • NVIDIA Xavier NX的Intel Realsense双目相机(T265+D435i)环境搭建

    文章目录 一 硬件部分二 环境配置1 安装ROS2 编译realsense xff08 1 xff09 查看版本 xff08 2 xff09 编译librealsense xff08 3 xff09 编译realsense ros xff0
  • 启动IntelRealsense的D435i没有数据输出的解决方法

    我在NVIDIA的NX上调试双相机的VIO时 xff0c 出现了一个问题 xff0c 在启动D435i后 xff0c 查看话题频率发现出现no new message的字样 我在包括github上寻找了很多资料和别人的解决方法 xff0c
  • windows下PX4飞行日志文件ulog转csv流程

    确保ulg文件可以使用FlightPlot等分析软件正常打开查看安装pyulog包 xff0c 开源地址 先安装anaconda xff0c 下载地址打开anaconda prompt 运行 pip install pyulog可通过在an
  • Windows平台对PX4源码进行编译的步骤

    主要使用到的工具就是PX4 Toolchain 1 首先去github上下载Toolchain安装包 xff0c 是一个 msi文件 xff0c 然后直接照着官网教程双击安装这个文件 注意最后的安装完成页有一个clone the PX4 r
  • ros多传感器融合

    转 xff1a http www rosclub cn post 1030 html 最近实验室老师在做一个多传感器数据采集实验 xff0c 涉及到了消息同步 所以就学习了ROS官网下的消息同步工具message filters http
  • 几种嵌入式RTOS的分析与比较

    1 4种操作系统的介绍 1 1 VxWorks VxWorks是美国WindRiver公司的产品 xff0c 是目前嵌入式系统领域中应用很广泛 xff0c 市场占有率比较高的嵌入式操作系统 VxWorks实时操作系统由400多个相对独立 短
  • 【python】python的命名规范:啥时候用驼峰啥时候用下划线啥时候用大写

    类属性 类方法 xff1b 私有属性 公有属性 xff1b 私有方法 公有方法 xff1b 静态属性 静态方法 xff1b python的命名规范 xx xx xx xff08 自用笔记 xff09
  • 修改Linux启动Logo(总结)

    修改Linux 启动Logo 完美 总结 1 修改启动Logo xff0c 换成自定义的图片 目的 xff1a 开机后显示自定义的图片 xff0c 替代小企鹅 xff08 1 xff09 准备一张 png 图片 xff08 2 xff09
  • 搞懂408数据结构中的结构体的定义

    对于一些跨考408的同学来说 xff0c 是不是经常会出现看见一些结构体的定义却不懂是什么意思 xff0c 或者让你定义一个节点类型时 xff0c 不懂各个部分的具体含义 希望这篇文章能够让你搞懂结构体到底是什么 xff0c 各个部分是什么
  • 无人机集群控制方案

    无人机集群控制方案 集群控制简介 多机器人群体控制系统一般分为集中式控制结构和分布式控制结构 集中式控制结构 xff1a 一个主控单元 xff0c 集中掌握了环境中全局信息和所有机器人的信息 xff0c 进行集中式处理任务与资源分配由主控单
  • 谷粒学院学习知识点汇总-------01

    前言 谷粒学院视频的系列首先先是学习一波理论知识 xff0c 最后跟着视频敲一遍整个项目 xff0c 到部署项目上线 xff0c 给自己定个flag xff0c 一个月之内完成项目部署上线 一 事务 1 1事务是数据库操作最基本单元 xff
  • Ubuntu下vscode的简单配置C/C++环境

    下载vscode并安装 方法1 在ubuntu软件中搜索 vscode下载 xff0c 但是我失败了 方法2 直接去官网下载https code visualstudio com Download xff0c 下载Linux版本的并安装 方
  • ubuntu zip和unzip命令

    zip span class token operator span r myfile span class token punctuation span zip test span class token operator span un
  • 一、ROS2简介

    ros2相关简介 ROS2的前身是ROS xff0c ROS即机器人操作系统 xff08 Robot Operating System xff09 但是ROS本身并不是一个操作系统 xff0c 而是一个软件库和工具集 Ros的出现解决了机器
  • 二、ROS2基本操作

    ROS2节点 ROS2的节点讲究分工合作 xff0c 每个节点负责一个单独的模块化功能 举一个激光雷达的例子 xff0c 一个节点负责获取激光雷达的扫描数据 xff0c 一个节点负责处理激光雷达数据 xff0c 还有一个节点负责控制车轮转动
  • 六、ROS2通信机制(服务)

    一 服务介绍 客户端发送请求给服务端 xff0c 服务端可以根据客户端的请求做一些处理 xff0c 然后返回结果给客户端 这里与话题的主要区别就是 xff1a 话题是没有返回的 xff0c 适用于单向或大量的数据传递 而服务是双向的 xff
  • 作业4-8-5:HBase Shell插入数据:学生表、课程表、选课表

    现有以下关系型数据库中的表和数据 xff0c 要求将其转换为适合于HBase存储的表并插入数据 xff1a 学生表 xff08 Student xff09 keyRow 学号 xff08 S No xff09 姓名 xff08 S Name
  • 树莓派4B连接PCF8591模块

    1 PCF8591是8位的数模 模数转换集成芯片 xff0c 如图 1 xff08 详细介绍可以点击参考 xff09 图 1 PCF8591 2 AIN0 AIN3接模拟输入 xff0c 比如气体传感器 xff0c 能外接三个通道的模拟输入