在之前的文章中,我们简单地介绍了ESP32的引脚最基本的控制,用来控制一个引脚的电平高低变化来控制一个LED的亮灭。在这种情况下,相当于我们是控制ESP32的引脚来发送了一个数字信号。但在ESP32中,可以发送或接收的并不仅仅是数字信号,所以在介绍更多关于代码方面的知识前,我们首先应该先了解ESP32引脚(GPIO)信号方面的知识,因为在物联网中,ESP32大部份情况下,都是通过引脚来控制其它设备或读取其它设备发送的信号。


一、数字信号

数字信号是指二进制形式的电子信号,信号的电压水平仅有高电平或低电平两种状态。这与模拟信号不同,模拟信号的电压水平可以任意变化,不仅仅是高电平或低电平。因此,数字信号可以进行高速传输和处理,但模拟信号则不能,模拟信号需要通过数字信号转换(模数转换)设备将其转换为数字信号。

电平是一个电学概念,用来表示一个电信号的大小。它是用来描述电压(Volt)的一个数字。一般来说,我们可以把电平分为高电平和低电平。高电平通常对应于较大的电压,而低电平对应于较小的电压。在数字电路中,高电平通常表示为1,而低电平表示为0。

在大部份教程中,对于电平的描述都是3.3V或5V为高电平,0V为低电平。但在实际应用和测试中,有的时候发现电压不足3.3V,比如2.5V时,ESP32同样可以识别为高电平。通常在电子工程中,高电平和低电平的临界点是定义在一定的电压范围内的,通常是3.3V或5V。具体的临界点数值取决于系统的设计和使用的芯片。通常,高电平的数值大于2.5V,低电平的数值小于0.5V,具体的数值最好通过测试研究来确定。 所以,如果要接收一个数字信号,必须要先了解该信号在高低电平时的电压和电流的值来确定ESP32是否可以正确接收。在ESP32中,大部份引脚都可以接收数字信号。


二、模拟信号

模拟信号是一种连续变化的电信号,其中电压或电流与时间相关。模拟信号通常用于记录、分析、传输和处理模拟信息,如音频、视频、温度、光线、加速度等。对于模拟信号来说,很难用一个特定的值来表示,例如,我们常用的电位器(可变电阻)就是一种模拟信号,当我们把100欧姆电位器转动到两端的正中间时,我们用万用表可以测到电阻为50欧姆,但如果这个万用表的精度足够高,我们可能测到的电阻更可能是50.00......欧姆。这里省略的数值也许是一个无限不循环的值。但在大多数情况下,我们并不需要这么高的精度。

ESP32对于模拟信号的处理,需要使用模拟电路和模拟信号处理芯片,如模拟前置放大器、模数转换器(ADC)、模拟数字转换器(DAC)等。

ESP32拥有多个内置的模数转换(ADC)通道,这些通道可以捕捉到电压的变化并将其转换为数字信号。ADC的输入电压范围一般在0V至3.3V之间,并且具有一定的分辨率,例如12位或16位等。 ESP32的ADC功能可以用于捕捉各种外部传感器的输入信号,如温度传感器,湿度传感器,光敏电阻等,并将其读取为数字信号进行处理。

ESP32的ADC通道的分辨率一般为12位,因为每个位可以对应2个值,所以,可以计算出,它的分辨率转换为十进制数值可以用2的12次方(2^12)来计算,结果就是2^12 = 4096。范围为0~4095。

模拟信号也存在一些缺点,如容易受到外界的干扰,信号传输的质量难以控制等。ESP32内置的ADC功能在官方文档中,也明确说明了该功能在精度和防干扰方面是比较差的。所以,如果在需求较高的情况下,可以使用更专业的ADC芯片。


三、PWM信号

PWM (Pulse Width Modulation) 是一种用来生成周期性数字信号的技术,通过改变占空比来模拟模拟信号。 PWM 信号的周期性电平以恒定频率交替变化,用来控制占空比的比例越长,则对应的平均电压越高。因此,PWM 信号可以用来控制设备的亮度,调整电机的速度等等。

通过 PWM,我们可以通过定义占空比来计算平均电压,从而控制设备。在ESP32中,我们可以使用内置的PWM输出功能来生成PWM信号,并通过该信号控制各种硬件设备。在实际运用中,从简单的用来控制LED的明亮变化,到复杂的用来发送红外线信号传输协议都有广泛的应用。又或者,我们可以自定义一个自已的一个信号传输协议并通过该协议来控制各种硬件设备。

PWM信号的频率指的是一个周期中的脉冲数。一般来说,PWM信号的频率越高,所表示的模拟信号就越平滑。PWM信号的频率可以在设备设置或编程时调整。不同的应用场合对PWM信号的频率有不同的要求,一般来说,PWM信号的频率越高,硬件的处理负担就越大,因此通常在需要与外界通信的应用中,PWM信号的频率要比在控制传动系统等内部控制应用中的频率要低。

在ESP32的PWM信号输出中,有几个比较重要的参数

  • 通道:ESP32具望多达16个PWM通道,每个通道可以独立配置和控制。
  • 频率:PWM信号的频率是指在指定时间内(如1秒)电平高低变化的次数,可以由用户自行设置,通常的频率范围为1 Hz到1 MHz,具体的频率取决于应用的需求。
  • 分辨率:ESP32的占空比分辨率,分辨率越高,精度越高。该值决定后面 占空比可写值,该值写8,则占空比最大可写255,该值写10,则占空比最大可写1023,值写成12,则占空比最大4095。
  • 占空比:PWM信号的占空比表示高电平电压占总周期电压的比例,占空比可以自行设置,一般范围为0到100%。占空比越高,高电平时间就越长,相应的,低电平时间就越短。

我们用一张图来说明一下频率,占空比之间的关系




esp32 模拟fc esp32 模拟信号_经验分享


如图:

一、在第一个波形和第二个波形中,占空比都为50%,但是他们在同样的时间(1秒)中,电平的高低电平变化分别为10和20,这时,他们的占空比虽然一样,但是他们的频率分别是10和20

二、在第二个波形和第三个波形中,频率都为20,但他们的占空比分别为50%和30%,这时,他们的频率虽然一样,但是因为它们的高低电平的时间是有区别的,第二个波形每个频率时间里,50%为高电平,50%为低电平;在第三个波形每个频率时间里,30%为高电平,70%为低电平。


以上就是ESP32中常用的三种信号,也是在物联网的开发中比较重要的三种信号。对于该开发板提供的其它协议的信号(如SPI/I2C/UART/I2S),在以后的文章中会在实际运用中给于详细的介绍