当前位置: 首页 > article >正文

51单片机快速入门之 AD(模数) DA(数模) 转换 2024/10/25

51单片机快速入门之 AD(模数) DA(数模) 转换 2024/10/25

声明:本文图片来源于网络 

 

A模拟信号特点: 电压或者电流  缓慢上升 随着时间连续缓慢上升或下降

D数字信号特点:电压或者电流  保持一段时间的高/低电平 状态    / 突变 (高电压瞬间低电压)

数字电路中 通常将0-1v电压称呼为低电平(0),    3-5v电压称呼为高电平(1)

AD(将模拟信号转换成数字信号)转换

分四个步骤:

                     1.采样

每隔一段时间对模拟信号进行取值 (信号电压)

                     2.保持

将第一步采样得到的信号电压 保存下来

参考该简易电路图 v1是模拟信号的输入端, v0 是模拟信号的采样端

当开关 因数字信号 高电平  闭合时 模拟信号进入 电路 对电容C充电, 当低电平时 开关断开

此时电容C中的电压被保存了下来  采样图中的点位就是开关闭合 和断开之后的 示范 注意看红点

 

                     3.量化

将采样信号分割成整数个电压段的过程

                     4.编码

将每个电压段 用相应二进制表示的过程 

知识拓展 

模数转换的过程是将连续的模拟信号转换为离散的数字信号,通常用二进制数表示。转换的精度取决于转换器的位数(bit数),即分辨率

分辨率和位数

  • 3位二进制:表示8个不同的状态(2^3 = 8)。这在实际应用中非常有限,通常用于简单的低精度应用。
  • 8位二进制:表示256个不同的状态(2^8 = 256)。这在许多基本的电子设备中已经足够。
  • 10位二进制:表示1024个不同的状态(2^10 = 1024)。常用于音频处理和其他需要更高精度的应用。
  • 12位、14位、16位甚至更高:这些分辨率用于需要极高精度的应用,如医疗设备、科学仪器和高性能音频设备。

应用场景

  • 低分辨率(如3位):适用于简单的开关信号或非常粗略的测量。
  • 中等分辨率(如8位到10位):适用于大多数消费电子产品、传感器数据采集等。
  • 高分辨率(如12位及以上):适用于高精度测量、音频处理、图像处理等领域。

 


DA(将数字信号转换成模拟信号)转换 

转换流程:数字电路经过DA转换成如上图所示的高低块 再经过平滑电路 转换成模拟信号

以前面模拟信号转数字信号为例

我们可以看到第一个三位是AD模数转换之后 是010 再之后是011 101

DA数模转换就是 当数字信号010 输出到DA转换器,其输出的将会是4v电压 

简单的说就是通过数字信号去控制输出电压的高低,来控制模拟信号的高低,

再通过平滑电路的处理让其变得连续 完成整个信号的转换!


转换芯片举例:PCF8591

芯片简介:

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

拓展知识 :

单端输入:一条线输入,基准电压固定为0V 或者其他电压,是不变的!

输入信号=单端输入电压 与 固定电压之间的差值

适用于:电压高(高于1v)  导线短 且共地


双端输入:两条线输入, 具有很好的 抗干扰性

输入信号=A端输入电压 与 B端输入电压之间的差值

适用于:信号小 导线长 不共地


抗干扰性举例

单端时输入电压是2v 但由于干扰 多了0.2v 

此时输入电压就为2.2v-0v(地)

差分时由于AB两线输入电压不同,但其差值,一直会保持在2v的电压信号(不会超出)

电路图: 

程序: 和之前i2c一样,发送控制码即可


http://www.kler.cn/news/365372.html

相关文章:

  • Github 2024-10-25 Java开源项目日报 Top8
  • grafana 和 prometheus
  • Openpyxl--学习记录
  • 大家都在用的HR招聘管理工具:国内Top5排名
  • 什么是纯函数
  • 【32】C++流
  • react18中的函数组件底层渲染原理分析
  • Git的初次使用
  • 若依框架篇-若依集成 X-File-Storage 框架(实现图片上传阿里云 OSS 服务器)、EasyExcel 框架(实现 Excel 数据批量导入功能)
  • Git 完整教程:版本管理、分支操作与远程仓库解析
  • Leetcode|24. 两两交换链表中的节点 ● 19.删除链表的倒数第N个节点 ● 面试题 02.07. 链表相交 ● 142.环形链表II
  • Vue3 项目 npm install 报错 Failed at the node-sass@7.0.3 postinstall script.
  • Python:背景知识及环境安装
  • Servlet(三)-------Cookie和session
  • 【Qt】控件——Qt控件的介绍、QWidget的介绍、QWidget的属性、QWidget的函数
  • 腾讯云技术深度解析:构建高效云原生应用与数据安全管理
  • 开挖 Domain - 前奏
  • 前端零基础入门到上班:【Day5】HTML 和 CSS
  • Qt--利用easyloggingpp库打印日志
  • 3D、VR、AR技术的应用,对家电品牌营销有哪些影响?
  • 强化学习与GPT-o1模型的融合,强化学习对GPT-o1模型思维链能力的影响
  • 使用Python来下一场深夜雪
  • Java面试题四
  • [bug] vllm 0.6.1 RuntimeError: operator torchvision::nms does not exist
  • web网站搭建(静态)
  • 学习webservice的心得