面试常问,ADC,PWM

一 PWM介绍

pwm全名(Pulse Width Modulation):脉冲宽度调制

在具有惯性的系统中,可以通过对一系列脉冲的宽度进行调制,来等效地获得所需要的模拟参量,常应用于电机控速等领域。PWM一定程度上是数字到模拟的桥梁。

1.1基本原理:

面积等效原理:在冲量相同,形状不同的窄带波,加在具有惯性的环节上,出现的效果基本是相同的。

  解释:简单来说,PWM的根本原理图就是对于上面这张图的应用,如果说他们的电压和输出时间相等,我们可以把模拟信号也就是正弦波,等化为相同的方波信号。所以说我们可以通过调节数字信号也就是说方波信号,或者说是离散信号来控制模拟信号设备。本质上这上面划分的面积是大概相等的,所以我们可以调节方波来改变模拟信号的功率输出。

1.2常见概念解释:

1.2.1占空比就是指:在一定周期内,高电平所占整个周期的比例。

1.2.2分辨率 :占空比变化步距。

1.3常见问题:

1.3.1怎么产生pwm信号?

一般来说可以通过软件和硬件来实现。

软件上,首先通过定时器产生一个固定的周期时间,在51我们可以通过设置一个compare比较值来比较控制是否输出高低电平。在32基本定时器或者高级定时器当中我们可以通过配置输出比较通道输出PWM信号。

硬件上,通过在单片机外部连接几个电路、电容等元件来实现对PWM的控制。具体来讲,就是通过与硬件电路连接的比较器和计数器等元件,生成固定的PWM信号,然后再将PWM信号输出到某个器件(比如电机、LED灯)上。与软件实现相比,硬件实现的PWM控制精度更高、可靠性更强,应用领域也更广。

1.3.2怎么消除噪声干扰?

采用滤波器:在PWM信号的输出端或负载的输入端加设LC低通平衡滤波器。这样可以有效地减少尖峰干扰,并改善噪声状况。对于特定应用,可能需要组合使用多种滤波器。

1.3.3PWM的应用?

多应用于电机控制等领域,简单的可以有呼吸灯,电机调速。

二 ADC介绍:

2.1 ADC简介:

模数转换器(Analog-to-Digital Converter):ADC可以将引脚上连续变化的模拟电压转换为内存中存储的数字变量,建立模拟电路到数字电路的桥梁。

我们常常把各种传感器的模拟信号电压,通过ADC转化为数字信号量,通过单片机显示处理等等。

2.2.1 工作原理:

采样:采样阶段是将时间上连续变化的模拟信号转化为时间上离散变化的信号。这一过程是通过采样保持电路完成的,该电路在特定的时间间隔内对输入信号进行取样。采样的频率决定了转换后数字信号的分辨率和能够表示的模拟信号的频率范围。

保持:在采样阶段,ADC会将采样得到的结果储存起来,直到下一次采样。这个过程称为保持,它的目的是在量化阶段之前稳定信号,确保每次采样的准确性。

量化:量化是将采样后的模拟信号映射为一组离散的数值,通常使用二进制表示。

编码:编码则是将量化后的数值转换为数字形式的输出。在量化过程中,ADC会比较采样值与一组预定的阈值,每个阈值对应于数字输出的一位。如果采样值高于某个阈值,则相应的位会被设置为1;如果采样值低于阈值,则相应的位会被设置为0。

对于不同的ADC他们的具体实现不同,但本质上原理相同,离不开四个步骤(采样,保持,量化,编码)

2.2.2 ADC常见的类型:

在单片机领域内通常由,由并联比较型号,和逐次逼近型。

并联比较型号:

主要分为:分压部分+比较部分+编码部分

我们通过把模拟电压和参考电压进行输入对比,当对应的输入电压和参考电压相同时,比较器输出1否则输出0,最后编码器进行编码输出二进制数字量。

优点:转换速度快。

缺点:需要很多电阻,以及比较器占据很多硬件资源,对应成本较高,其次分辨率往往很低。

逐次逼近型(单片机常用):

简单简述一下逐次逼近型的工作原理,以上是我从百度搜索的一张简单原理图。

主要分为:控制电路+数码寄存器+D/A转换器+电压比较器;

首先我们需要,把VREF对应也就ADC的参考电压,我们把它保持,通过数码寄存器,不断产生一个

二进制数字量,通过D/A把二进制数字量转化为模拟电压,和输入的模拟电压,不断比较,

不断比较,是得我们不断逼近这个输入的模拟电压值,直到大致相同,输出到输出缓冲器,对应也就是一种数据寄存器。我们就可以读取数字寄存器DR,并且根据测量范围,进行一定比例的缩放运算,得到输入的模拟电压。

优点硬件成本较低

缺点:需要不断调节,不断逼近输入的模拟电压值,转换速度较慢

(其次对于时钟和控制,在之前有讲过);

2.3 ADC常见概念理解:

分辨率表示ADC能辨别的最小模拟量,用二进制数字表示。

(这个分辨率通常用二进制位数来表示,它决定了转换器所能分辨的输入模拟信号的最小增量。常见的有8,10,12,16。对于stm32来说是12位ADC)。

采样时间:STM32 ADC的总转换时间为: TCONV = 采样时间 + 12.5个ADC周期,也可以说是转换时间。

转换时间:表示完成一次A/D转换所需要的时间,转换时间越短,采样率越高。

精度:最小刻度基础上叠加各种误差的参数,进度受ADC性能,温度,和气压等影响;

2.4 ADC改进:

2.4.1如何改进精度?

可以采用更加准确的参考电压;

可以通过采用位数更高的ADC;

可以开启ADC后的延时采样与过采样,在开启ADC后,延时一段时间再进行采样可以排除初始阶段的电压波动。而过采样,即采样频率高于信号最高频率的两倍,也可以提高采样精度。通过尽可能快地采样数据并求平均,可以进一步减少噪声和误差

2.4.2如何改变分辨率?

可以通过软件操作数据结果进行一定的移位操作,来改变分辨率,一般可以用于降低。

2.4.3防止噪声干扰?

在硬件方面上,采用滤波器(加电容),过滤噪声干扰。

在软件方面,主要采取的措施包括:过采样:通过提高采样率,多次采样并平均数据,可以提高数据稳定性,减弱噪声,从而提高ADC的精度。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/748164.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java使用Selenium实现自动化测试以及全功能爬虫

前言 工作中需要抓取一下某音频网站的音频,我就用了两个小时学习弄了一下,竟然弄出来,这里分享记录一下。 springboot项目 Selenium Java使用Selenium实现自动化测试以及全功能爬虫 前言1 自动化测试2 java中集成Selenium3 添加浏览器驱动4…

【linux】进程(一)

先看预备知识,对本篇文章更有帮助。 目录 进程概念:了解动态运行的概念:进程的本身内部属性:启动进程:关闭进程: 如何创建进程:进程状态:直接看进程状态:僵尸进程与孤儿…

llamma笔记:部署Llama2

1 申请Llama2 许可 Download Llama (meta.com) 地址似乎不能填中国 1.1 获取url 提交申请后,填的那个邮箱会受到一封meta发来的邮件,打码部分的url,之后会用得上 2 ubuntu/linux 端部署Llama2 2.1 git clone Llama2的github 仓库 bash g…

每日一题 第五期 洛谷 图的遍历

图的遍历 题目描述 给出 N N N 个点, M M M 条边的有向图,对于每个点 v v v,求 A ( v ) A(v) A(v) 表示从点 v v v 出发,能到达的编号最大的点。 输入格式 第 1 1 1 行 2 2 2 个整数 N , M N,M N,M,表示点数…

Vue3 使用vite进行调试

通过此篇可以学到: 如何在vue3vite中代理到服务端地址如何修改项目本地启动的端口如何可以使用本机ip进行访问本地地址 修改vite.config.ts文件 import { fileURLToPath, URL } from node:urlimport { defineConfig } from vite import vue from vitejs/…

git基础命令(四)之分支命令

目录 基础概念git branch-r-a-v-vv-avv重命名分支删除分支git branch -h git checkout创建新的分支追踪远程分支同时切换到该分支创建新的分支并切换到该分支撤销对文件的修改,恢复到最近的提交状态:丢弃本地所有修改git checkout -h git merge合并指定分…

log4rs测试

引入crate: log4rs {version "1.3.0"} log {version "0.4.20"} 配置文件 和Cargo.toml同级创建log4rs.yml,内容如下: refresh_rate: 30 seconds appenders:stdout:kind: consolerollingfile:kind: rolling_filep…

【yolo检测模型出现大量误报】

文章目录 1.可能需要针对以下几个方面进行优化和调整:2.出现大量误报会直接导致精确率和准确率明显下降。3.解决办法,采用最简单的样本均衡3.1.样本均衡3.2.添加负样本 1.可能需要针对以下几个方面进行优化和调整: 数据集质量: 确…

ASP.NET Mvc+FFmpeg+Video实现视频转码

目录 首先,做了视频上传的页面: FFmpeg:视频转码 FFmpegHelper工作类: 后台控制器代码: 前端视图代码: 参考文章: 首先,做了视频上传的页面: 借鉴了这篇文章 ASP.…

D. Tandem Repeats?

思路&#xff1a;首先我们要枚举长度&#xff0c;然后从前往后遍历&#xff0c;判断是否存在改长度的重复串。 代码&#xff1a; void solve(){string s;cin >> s;int n s.size();int ans 0;for(int len n / 2;len > 1;len --){int t 0;for(int i 0;i len <…

【Qt问题】解决UI设计显示和运行显示界面大小不一致问题

问题描述&#xff1a; 在我自己第一次用Qt Creator的时候&#xff0c;发现老师的每次ui界面是多大&#xff0c;运行出来的窗口就是多大&#xff0c;而我自己的每次大小都对不上&#xff0c;所以我每次都要去手动调整窗口大小&#xff0c;非常痛苦。 经过多方查找发现这是由于…

TSINGSEE青犀AI智能分析网关V4酿酒厂安全挂网AI检测算法

在酿酒行业中&#xff0c;安全生产一直是企业经营中至关重要的一环。为了确保酒厂生产过程中的安全&#xff0c;TSINGSEE青犀AI智能分析网关V4的安全挂网AI检测算法发挥了重要作用。 TSINGSEE青犀AI智能分析网关V4的安全挂网检测算法是针对酒厂里酒窖挂网行为进行智能检测与识…

Qt按回车键实现确定/发送按钮功能

构造函数中&#xff0c;添加如下代码 connect(ui->lineEdit,SIGNAL(returnPressed()),ui->pushButton_send, SIGNAL(clicked()),Qt::UniqueConnection) 当光标在lineEdit上时&#xff0c;输入完毕直接按回车键&#xff08;大/小都可以&#xff09;&#xff0c; //就会…

个人简历主页搭建系列-03:Hexo+Github Pages 介绍,框架配置

今天的更新内容主要是了解为什么选择这个网站搭建方案&#xff0c;以及一些前置软件的安装。 Why Hexo? 首先我们了解一下几种简单的网站框架搭建方案&#xff0c;看看对于搭建简历网站的需求哪个更合适。 在 BuiltWith&#xff08;网站技术分析工具&#xff09;上我们可以…

【矩阵】73. 矩阵置零【中等】

矩阵置零 给定一个 m x n 的矩阵&#xff0c;如果一个元素为 0 &#xff0c;则将其所在行和列的所有元素都设为 0 。请使用 原地 算法。 示例 1&#xff1a; 输入&#xff1a;matrix [[1,1,1],[1,0,1],[1,1,1]] 输出&#xff1a;[[1,0,1],[0,0,0],[1,0,1]] 解题思路 1、…

SpringCloud Bus 消息总线

一、前言 接下来是开展一系列的 SpringCloud 的学习之旅&#xff0c;从传统的模块之间调用&#xff0c;一步步的升级为 SpringCloud 模块之间的调用&#xff0c;此篇文章为第八篇&#xff0c;即介绍 Bus 消息总线。 二、概述 2.1 遗留的问题 在上一篇文章的最后&#xff0c;我…

汇编语言(Assemble Language)学习笔记(更新中)

零.学习介绍和使用工具 【1】我们使用的教材是机械工业出版社的《32位汇编语言程序设计第二版》。 指导老师是福州大学的倪一涛老师。 这门课程教授的是Intel 80*86系列处理器的32位汇编。我们现在的处理器都兼容这个处理器。 这篇博客只是大二下汇编语言学习的总结&#xff…

数据结构顺序表的操作,窗口界面(c语言版)

// 准备头文件 #include <stdio.h> #include <stdlib.h>#define InitSize 10 // 动态顺序表的初始默认长度// 定义C语言的bool变量 #define bool char #define true 1 #define false 0/* 定义数据元素的数据类型 */ typedef int ElemType; // 方便更改// 动态顺…

sui move动态字段练习(5)- 总结与思考

引言 之前几篇文章&#xff0c;我们用sui move动态字段模拟solidity映射&#xff0c;实现了一个类似erc20的代币&#xff0c;这使我更加深刻地理解了sui move和solidity编程特性和编程思想的区别。下面是我的总结与思考。 总结 首先&#xff0c;sui与solidity的编程特性有很…

css 各种方位计算 - client系列 offset系列 scroll系列 x/y 系列

offset系列 HTMLElement.offsetTop - Web API 接口参考 | MDN 一文读懂offsetHeight/offsetLeft/offsetTop/offsetWidth/offsetParent_heightoffset-CSDN博客 client系列 搞清clientHeight、offsetHeight、scrollHeight、offsetTop、scrollTop-CSDN博客 scroll系列 秒懂scr…