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

网站开通申请自学家装设计从哪入手

网站开通申请,自学家装设计从哪入手,docker实际企业解决方案,查建设工程规划许可证在哪个网站摘要#xff1a;本文主要介绍如何使用ESP32的ADC功能#xff0c;读取物联网智能小车的电池电压 今天介绍一个ESP32的新功能——如何利用ESP32的引脚#xff0c;采集模拟量信息。在前面GPIO的学习中我们知道#xff0c;可以利用GPIO的引脚读取外部设备输出的高低电平信号本文主要介绍如何使用ESP32的ADC功能读取物联网智能小车的电池电压 今天介绍一个ESP32的新功能——如何利用ESP32的引脚采集模拟量信息。在前面GPIO的学习中我们知道可以利用GPIO的引脚读取外部设备输出的高低电平信号这种只有2种高低电平的信号是数字信号而具有连续数值的信号则属于模拟信号比如我们今天要读取的电源电压就属于模拟信号。 ADCAnalog to Digital Converter模数转换器的功能就是将外部设备的模拟电压信号转换成数字量从而让单片机能够识别和进行处理。在前面GPIO学习的时候已经强调过了虽然除了电源引脚之外的引脚都是GPIO引脚但有些引脚只能输入有些引脚已经被特殊功能给占用了开发者是不能使用的。ADC功能同样如此也是需要注意有哪些引脚可以使用具体的对应关系如下表所示 GPIO 模拟功能 注释 GPIO0 ADC2_CH1 Strapping 管脚 GPIO2 ADC2_CH2 Strapping 管脚 GPIO4 ADC2_CH0 GPIO12 ADC2_CH5 Strapping 管脚JTAG GPIO13 ADC2_CH4 JTAG GPIO14 ADC2_CH6 JTAG GPIO15 ADC2_CH3 Strapping 管脚JTAG GPIO25 ADC2_CH8 GPIO26 ADC2_CH9 GPIO27 ADC2_CH7 GPIO32 ADC1_CH4 GPIO33 ADC1_CH5 GPIO34 ADC1_CH6 GPI GPIO35 ADC1_CH7 GPI GPIO36 ADC1_CH0 GPI GPIO37 ADC1_CH1 GPI GPIO38 ADC1_CH2 GPI GPIO39 ADC1_CH3 GPI 通过上表可以看到ESP32芯片有两个ADC单元分别是ADC1和ADC2ADC单元就相当于可以独立完成ADC功能的机器而这两个ADC单元可以工作在不同的工作模式两者不会互相影响。 上表中一共列举了18个GPIO引脚这就相当于给ADC单元供货的18个传送带它们负责把外部的模拟信号传递给ADC单元这18个传送带的学名叫通道Channel与ADC1连接的有8个通道分别命名为CH0、CH1、CH2……直到CH7。与ADC2连接的有10个通道分别命名为CH0、CH1、CH2……直到CH9。所以在将一个模拟信号接入到GPIO引脚的时候一定要知道连接的是哪一个通道以及哪一个ADC单元。关于ADC通道引脚有以下几个事项需要特别注意 只能将模拟信号接入上面表格中的GPIO引脚接入其他引脚是无法进行ADC转换无法采集模拟信号的。在使用ADC功能的时候在GPIO一节中介绍的那些不能使用的GPIO引脚同样适用ADC功能已经被内部占用的引脚同样不能用作ADC功能。当模块启用Wi-Fi的时候ADC2单元会被占用此时不能使用ADC2进行模数转换只能使用ADC1来进行模数转换需要将模拟信号接入到ADC1的10个通道。ADC2的10个通道全部都不能用作ADC功能了。要注意ADC引脚的可测量范围在0~3.3V所以接入的模拟信号不要高于3.3V。 ESP32这两个ADC都是12位SAR逐次逼近ADC。也就是最高的精度为12位即为 2^12 4096先记住4096这个数字后边会进一步的讲解。在实际使用中也可以将ADC的精度通过软件设置位11位、10位或者9位。 ESP32的ADC单元有两种工作模式 ADC单次读取模式适用于低频采样。ADC连续DMA模式适用于高频连续采样。 好了ADC功能先基本介绍到这里了可能初次接触的一下觉得有些复杂不好理解。下面就来看一下我们是如何实现电源电压采集的吧使用的方法还是很简单的。 在上边已经介绍过了ESP32的ADC通道引脚最多支持3.3V的输入电压而我们的电源电压是12V左右的是不能直接连接到GPIO引脚的。在这里我们就需要使用到分压模块该模块的作用就是将电压分压到原来的五分之一样子如下图所示这样我们的电源电压就转换成了0~3V以内了。没有这个模块的可以直接按照串联电阻分压原理找2个合适的电阻自己搭建一个也是可以的。 这个分压模块的原理如下图所示。 根据原理图我们只需要把左侧的VCC连接电池的正极GND连接电池的负极。右侧的“-”端连接到ESP32开发板的GND引脚“S”端连接到ESP32的P35引脚也可以使用别的引脚就可以了。 接下来就可以使用Mixly进行开发读取电源电压值的程序了。在这个功能中我们主要用到了“输入/输出”功能模块区的“模拟输入”功能该功能可以直接将指定引脚的电压信号转换成数字信号。我们在程序中将这个采集的数字输出出来就可以计算出我们电池的电源电压了。最简单的读取电压的程序如下图所示 下面就运行一下看看输入结果吧。我的输出结果如下图所示 我们看到每一次的输出都是一个4位数的整数那么如何转换成我们想要的电压值呢这就要用到我们前面介绍的ADC转换精度的知识了。默认情况下ADC使用的是12位的转换精度那么转换的结果就是0~4095也就是说0对应0V电压4095对应3.3V的电压。那么把采集的数除以4095然后再乘以3.3V就是GPIO引脚的输入电压了。最后别忘了我们使用了分压电路计算的结果还要再乘以5才是真正的电源电压。具体计算公式如下所示 2855/4095*3.3*511.5 这就说明我们电源的电压是11.5V。是不是很简单你成功了吗 最后我们再看一下Mixly的源代码了解一下用程序代码是如何工作的吧。 void setup(){   Serial.begin(115200); } void loop(){   Serial.println(analogRead(35)); } 只需要调用analogRead()函数就把P35引脚的电压信号转换成数字值了。但实际上ADC的工作不是那么简单的在读取模拟信号值之前也是要进行一系列配置的只不过这个配置过程都由开发工具在背后默默的完成了其使用到的参数都是参数的默认值。当我们需要进行个性定制话ADC转换的时候就没这么简单了。这在以后遇到了再详细的讲解吧。 前边用Mixly生成C语言的方式获得了供电电压的数值。接下来再用MicroPython语言也实现这个功能其实现方法和之前的C语言基本一样只不过增加了一个参考电压的设置参考电压的值越大ADC可测量的输入的模拟信号的电压值越高我们将其配置为3.3V具体开发方法如下所示 上传该程序后在串口窗口输出了返回的结果如下图所示 输出值为45755啊和前面的输出值不同啊别担心没出问题。这是因为MicroPython将ADC的结果转换为了在0~65535之间所以这个测量结果在计算被测电压的时候要除以的数值是65535而不是4095了。具体计算公式如下 45755/65535*3.3*511.5 没错两次测量的结果是一样的。但是C语言与MicroPython在这里对处理结果的差别要注意一下不然计算出来的结果就不对了。Mixly生成的MicroPython代码如下所示 import machine adc35 machine.ADC(machine.Pin(35)) adc35.atten(machine.ADC.ATTN_11DB) print(adc35.read_u16()) 自己尝试一下读懂它吧
http://www.pierceye.com/news/271650/

相关文章:

  • 纸 技术支持 东莞网站建设wordpress 手机 自建站
  • 网站后台 搜索广告发布合同模板
  • 手机网站设计教程网站建设 职位
  • 外贸网站图片素材谷歌seo和百度seo区别
  • 龙华网站 建设深圳信科潍坊网站建设培训
  • 域名网站平台qq在线登录
  • 成都做网站建设公司网站建设公司销售技巧
  • 打开网站是iis7三亚最新发布
  • php外贸网站中山网站建设方案报价
  • 好网站建设公司开发方案广告传媒公司加盟
  • 郑州膏药网站建设石家庄seo管理
  • 做国外产品描述的网站营销wordpress
  • 服务器2003怎么做网站枣庄网站建设电话
  • 南京网站建设一条龙汶上网站制作
  • 黑龙江微信网站开发郑州热门网络推广免费咨询
  • 深圳坪山站永久免费linux服务器
  • 东莞网站建议ipv6在家做网站
  • 政务网站源码1688电脑网页版
  • 大连企业网站网站rar文件
  • 揭阳东莞网站建设手机网站分享代码
  • 网站设计风格分析wordpress 用户介绍
  • 中国教育网站官网wordpress 自定义循环
  • 中国婚恋网站排名苏州网站建设设计公司哪家好
  • 微软雅黑做网站是否侵权杭州标志设计公司
  • 个人网站如何制作教程网站通栏广告设计
  • 网站建设与维护要求wordpress 常数函数
  • 网站开发u盘128够吗手机网站开发学习
  • 襄阳营销型网站国内最新保理公司排名
  • 网站开发系统学习网站需要续费吗
  • 问答网站如何优化wordpress简约电影