#申请原创# 大家好今天我们继续通过米思齐和ESP32开发板来学习,生活中我们会遇到很多控制和输出不光光是通断,亮灭那么的简单。比如说台灯我们需要调节亮度吧?风扇空调需要调整出风量的的大小等等。 那他们是怎么做到的呢?今天我们就来揭开他们神秘的面纱。就拿台灯来说吧,我们可以通过改变他的工作电压来改变他的输出功率从而达到改变亮度的效果。比如说向我们初中学习的物理知识那样串联功率足够大电阻,来改变台灯 的工作电压和电流,来达到调光效果。这种办法优点就是操作简单。可是缺点就是电阻也会消耗电路中的电能,产生电能浪费。 那有没有既简单又能节省电能的方法呢? 今天告诉你答案,肯定有啦。那就是通过单片机模拟量的输入来控制模拟量的输出。听起来是不是很拗口啊。没事跟着我做起来你就会发现原来很简单。模拟量输入我们之前已经学过了,就像烧开水一样,数值是一个不断变化的直到达到顶点也就是极限后停止变化。今天我们就用一个100K的可调电阻来做模拟量的输入设备
。那用啥来进行模拟量输出呢?对啦那肯定是我们的老朋友ESP32开发板啦。那用啥显示出来输出是变化的模拟量呢我们再找来一个LED小灯来当台灯。 这里大家要注意啦ESP32开发板输出的模拟量并不是真正意义的模拟量,而是PWM。就是通过调整频率以及占空比等一系列操作来达到输出端有一个改变的电压值。大家想深入了解的话21IC内有很多大佬们的讲解,可以去那里深入学习,他们讲解的非常详细哦。 硬件选好啦老规矩先测试硬件好坏,请出我们的连线神器面包板和杜邦线。先将可调电阻连入开发板取得输入的模拟信号。连线非常简单因为我的可调电阻是三脚的只需在两边引脚接入3.3伏或者5伏电压中间引脚即可输出一个可变电压(模拟量)。我们编程看看数值通过串口打印显示模拟量数值。
我们发现输出数值为0-4095.
那为啥是这个数值呢?为啥不是 别的呢? 注意啦注意啦知识点来啦。这是因为这个数据和单片机的AD采样值有关。AD采样值一般有8位10位12位16位等。 8位AD的数值为0-255 10位AD的数值为0-1023 12位AD的数值为0-4095 16位AD的数值为0-65535.就相当于在相同电压下位数越大调节精度就越高。 既然模拟量输入有啦那我们直接编程成这样不就行了。连入LED小灯,我们写入程序,
确认端口,开发板型号正确写入程序。???好像不行啊能调节可是不明显刚转动就达到最亮了,再转动不会改变了。 这里就需要借助另一个程序模块了“映射模块”
它在数学模块类里,我们看看米思齐是怎么介绍它的。将一个数从第一个区间映射到第二个区间,并返回映射之后的的值。我们开始编程。编好啦我们写入开发板。先看看串口打印的输出值,
变成了 0-255了。再看看输出到LED小灯上会怎么样?可以啦调整可调电阻即可改便LED小灯的亮度啦。
同样我们可以根据这个原理来改变风扇的速度等等。相信大家都能够举一反三,制作出更好的更适合自己的互动作品,通过制作去学习更多的知识。 今天我们来复习下学习内容 1知道了开发板输出的不是真正意义的模拟量而是PWM; 2单片机的AD位数越高调节精度越高; 3映射模块的使用方法。 又是充实的收获满满的一天。 让我们一起努力,加油我们是最棒的。如果你也和我一样也是小白,也想学习物联网,也想提升自己学习编程,那就和我一起学起来吧,我们共同进步互相关心,鼓励,学习,让学习提升的路上不孤单。小白不会一直是小白,菜鸟努力终将飞上蓝天。大多数人都会选择安逸,可是我们不想做大多数人,我们不想超过任何人,我们只想超越昨天的自己。我们拒绝躺平,我们要不断地提升自我,超越自我。那样成功离我们还会远吗?加油。和我一起学起来吧。
|
基于米思齐环境和ESP32平台的模拟量的捕获试验,过程详细,效果展示完善。楼主可尝试直接将视频插入,效果会更好哦。