Esp8266学习4. 基于Arduino的PWM与红外信号处理
创始人
2024-05-31 10:42:16
0

Esp8266学习4. 基于Arduino的PWM与红外信号处理

  • 一、基本概念
    • 1. PWM
    • 2. ESP8266 的 PWM功能
    • 3. node-mcu 引脚图
    • 4. 模拟写入
      • (1)analogWrite
      • (2)修改频率 analogWriteFreq
      • (3)调节分辨率
  • 二、使用 `analogWrite`实现PWM
  • 三、发送红外信号
    • 1. 红外通信原理
    • 2. 载波频率
    • 3. 发送周期
    • 4. 使用
      • (1)安装库
      • (2)代码实现
    • 5. 红外接收示例

在这里插入图片描述

一、基本概念

1. PWM

PWM(Pulse Width Modulation)即脉宽调制,是一种通过调节信号的占空比来控制电路的技术。在 PWM 技术中,信号的周期保持不变,但是信号的占空比可以随时间变化而改变。当信号的占空比为 0% 时,表示信号一直处于低电平状态;当占空比为 100% 时,表示信号一直处于高电平状态;而在占空比为中间值时,信号将以一定的频率在低电平和高电平之间切换。

在电路应用中,PWM 技术常用于控制电机的转速、控制 LED 的亮度和颜色、实现音频数字化等方面。例如,在控制 LED 亮度时,可以通过调节 PWM 信号的占空比来控制 LED 的亮度,占空比越大,LED 灯亮度越高,反之亦然。

在微控制器中,通过定时器和计数器等硬件模块,可以实现高精度的 PWM 信号输出。许多单片机和嵌入式系统都提供了 PWM 功能,并且在软件层面提供了相应的 API 和库函数,方便开发者使用。在使用 PWM 技术时,需要根据具体的应用场景选择合适的 PWM 频率和分辨率,以及合适的占空比范围和切换速率,以达到最优的控制效果。

2. ESP8266 的 PWM功能

ESP8266 是一款高度集成的 Wi-Fi SoC 芯片,内部集成了许多硬件模块,其中包括一个灵活的 PWM 控制器,即 LEDC(LED 控制器)。LEDC 可以用于实现高精度的 PWM 输出,适用于控制 LED 的亮度、颜色和闪烁等效果。

ESP8266 的 LEDC 控制器可实现同频率、不同占空比的PWM波形输出。LEDC 模块的主要特点包括:

  • 高精度:LEDC 支持高达 20 位的 PWM 分辨率,可实现非常精细的 PWM 控制。
  • 多路输出:LEDC 可以同时控制多达 16 个 PWM 通道,满足多路 PWM 输出的需求。
  • 灵活配置:LEDC 可以配置不同的 PWM 频率和分辨率,以适应不同的应用场景。
  • 低成本:LEDC 是 ESP8266 芯片内置的硬件模块,使用 LEDC 功能无需外接任何外部元器件,节省了硬件成本。

在使用 ESP8266 的 PWM 功能时,可以使用 ESP8266 的官方库文件 ESP8266WiFi.h 中提供的 LEDC 相关函数进行配置和控制。例如,可以使用 ledcSetup() 函数来初始化 PWM 通道,并使用 ledcWrite() 函数来设置 PWM 占空比。此外,ESP8266 的开发环境也提供了丰富的示例代码和库函数,方便开发者快速上手使用 PWM 功能。

要注意的是,GPIO1和GPIO3作为调试串口的TX和RX,一般不做PWM使用。

3. node-mcu 引脚图

在这里插入图片描述

4. 模拟写入

(1)analogWrite

要实现输出PWM信号,可以使用analogWrite()函数:

analogWrite(pin,value)
  • pin:GPIO引脚
  • value:默认0-1023
    当值为0时,该引脚禁用PWM。 值为1023时 占空比100%。

(2)修改频率 analogWriteFreq

analogWriteFreq(new_frequency);

(3)调节分辨率

可以用于调节模拟输出的 PWM 范围。
在 ESP8266 中,analogWriteRange() 函数用于设置 PWM 的分辨率。默认情况下,ESP8266 的 PWM 分辨率为 10 位,即占空比范围为 0~1023。通过调用 analogWriteRange() 函数,可以将 PWM 分辨率调节为 8 位或 9 位,以扩大或缩小 PWM 占空比范围。

二、使用 analogWrite实现PWM

const int ledPin = 2; void setup() {}void loop() {// 增加LED亮度for(int dutyCycle = 0; dutyCycle < 1023; dutyCycle++){   // 通过PWM改变LED亮度analogWrite(ledPin, dutyCycle);delay(10);}// 降低LED亮度for(int dutyCycle = 1023; dutyCycle > 0; dutyCycle--){// 通过PWM改变LED亮度analogWrite(ledPin, dutyCycle);delay(10);}
}

三、发送红外信号

1. 红外通信原理

红外通信是一种无线通信方式,它通过发射红外线来传输数据或控制信号,通常用于红外遥控器、红外传感器等场景。

红外信号是一种电磁辐射,其频率在可见光波和微波之间,一般波长为0.75至1000微米,其中,可见光波长为0.38至0.78微米。红外线被称为"热线",因为物体温度越高,发射的红外线辐射就越多。

在红外通信中,通过对载波信号进行调制,将数字信号转换为红外信号,从而实现数据或控制信号的传输。调制方式主要有两种:幅度调制和频率调制。

  • 幅度调制:通过改变载波信号的幅度,将数字信号转换为红外信号。在幅度调制中,通常用一个二进制信号来控制红外发射器的开关状态,从而实现传输数据。
  • 频率调制:通过改变载波信号的频率,将数字信号转换为红外信号。在频率调制中,常用的方式是将数字信号和一个固定的载波信号进行异或运算,从而得到一个频率变化的信号,用来控制红外发射器的开关状态,实现传输数据。

接收端通过红外接收器接收到红外信号,然后通过解调的方式提取出携带的数据或控制信号。解调的过程就是将红外信号转化为电信号,然后提取出载波信号,再将其与一个固定的频率进行比较,从而恢复出原始的数字信号。

2. 载波频率

红外信号的载波频率(Carrier Frequency)指的是红外信号中用于携带信息的载波波形的频率。在红外通信中,常用的载波频率一般在 20 kHz 到 50 kHz 之间。

将信息信号和载波信号进行调制后,就可以通过红外发射器将带有载波信号的红外信号发送出去。接收器可以通过解调过程,将携带的信息信号提取出来。

在红外遥控器中,一般使用一定的载波频率进行通信。这样可以提高通信的可靠性,同时也可以避免干扰,因为很少有其他的设备会使用相同的载波频率进行通信。

3. 发送周期

红外信号的发送周期是指一个完整的红外信号周期所需的时间。在红外通信中,为了确保通信的可靠性,每一个红外信号周期中一般包含多个载波周期。具体来说,发送周期包括两部分时间:载波周期和调制周期。

  1. 载波周期:指载波信号一个完整的波形所需的时间,它是红外信号的基本单位。在红外通信中,载波周期通常为一个固定的时间,一般在38kHz左右。
  2. 调制周期:指一个完整的红外信号周期所需的时间,它包括了载波周期和数字信号的调制。在红外通信中,调制周期的长度取决于传输的数据长度和传输速率。一般来说,调制周期越长,传输速率就越慢,但是数据传输的可靠性会更高。

在红外遥控器中,每一个按键通常对应一个特定的红外信号,这个红外信号的发送周期一般是固定的,以确保遥控器能够正确地发送信号,并且接收器能够正确地解码信号。

4. 使用

(1)安装库

在这里插入图片描述

库开源地址:
https://github.com/crankyoldgit/IRremoteESP8266

(2)代码实现

#include 
#include IRsend irsend(4); // 初始化IRsend对象并设置输出引脚,GPIO4=D2void setup()
{Serial.begin(115200);delay(1000);
}void loop()
{Serial.println("Sending IR signal...");irsend.sendSony(0xA90, 12); // 发送SONY红外信号,传输数据为0xA90,数据长度为12位delay(1000); // 等待1秒钟
}

5. 红外接收示例

#include 
#include 
#include 
#include // An IR detector/demodulator is connected to GPIO pin 14(D5 on a NodeMCU
// board).
// Note: GPIO 16 won't work on the ESP8266 as it does not have interrupts.
// Note: GPIO 14 won't work on the ESP32-C3 as it causes the board to reboot.
#ifdef ARDUINO_ESP32C3_DEV
const uint16_t kRecvPin = 10;  // 14 on a ESP32-C3 causes a boot loop.
#else  // ARDUINO_ESP32C3_DEV
const uint16_t kRecvPin = 14;
#endif  // ARDUINO_ESP32C3_DEVIRrecv irrecv(kRecvPin);decode_results results;void setup() {Serial.begin(115200);irrecv.enableIRIn();  // Start the receiverwhile (!Serial)  // Wait for the serial connection to be establised.delay(50);Serial.println();Serial.print("IRrecvDemo is now running and waiting for IR message on Pin ");Serial.println(kRecvPin);
}void loop() {if (irrecv.decode(&results)) {// print() & println() can't handle printing long longs. (uint64_t)serialPrintUint64(results.value, HEX);Serial.println("");irrecv.resume();  // Receive the next value}delay(100);
}

相关内容

热门资讯

清华大学投档时承认高考加分 ... 清华大学投档时承认高考加分 选专业不承认 篇一清华大学作为中国著名的高等学府,一直以来都以严谨的招生...
上海高考满分语文作文(最新3... 上海高考满分语文作文 篇一《艺术的力量》艺术是人类情感和思想的表达,它拥有无穷的力量。在我们的生活中...
江苏高考满分作文【优质6篇】 江苏高考满分作文 篇一:努力拼搏,实现梦想作文题目:努力拼搏,实现梦想正文:每当我回忆起高考的那段日...
最新语文高考作文素材积累(最... 最新语文高考作文素材积累 篇一人工智能与人类关系的思考近年来,随着人工智能的快速发展,它在各个领域的...
高考满分作文:仰望星空与脚踏... 高考满分作文:仰望星空与脚踏实地 篇一仰望星空,追逐梦想,是每个人的心愿。无论是年轻的少年还是成熟的...
高考作文传承与创新【精选6篇... 高考作文传承与创新 篇一传承与创新是高考作文中的两个重要方面。传承是指在写作中继承传统文化的精髓和思...
高考满分作文:在“万方乐奏”... 高考满分作文:在“万方乐奏”中寻找“中国味” 篇一随着全球化的进程,越来越多的外来文化涌入中国,我们...
高考语文作文范文打印(推荐6... 高考语文作文范文打印 篇一人与自然的和谐共生人类与自然是紧密相连的,人类的生存与发展离不开自然的滋养...
高考满分作文:落花人独立(优... 高考满分作文:落花人独立 篇一落花人独立落花人独立,飘零自在。这句诗句出自唐代诗人李清照的《如梦令》...
高考作文题目:理想(精彩6篇... 高考作文题目:理想 篇一理想是人生的驱动力理想是人生道路上的指南针,是我们前行的动力和目标。每个人都...
高考英语作文万能句子【经典3... 高考英语作文万能句子 篇一How to Balance Study and Leisure Time...
2006年全国卷Ⅰ高考满分作... 2006年全国卷Ⅰ高考满分作文:在追求中认清自我价值篇一:追求梦想,实现自我价值追求是人生的动力,也...
祭奠高考(实用3篇) 祭奠高考 篇一高考,是中国教育体制中的一座丰碑,是每个年轻人人生道路上的一次重要里程碑。它不仅代表着...
江苏高考满分作文【优秀6篇】 江苏高考满分作文 篇一:努力奋斗,追逐梦想高考,是每个学子人生中的一次重要考验。对于我来说,这是一次...
备战高考作文材料范文【优质6... 备战高考作文材料范文 篇一标题:高三备战高考,努力拼搏,追求卓越高三备战高考是每个学生的重要任务,而...
高考满分作文:科学之痛(实用... 高考满分作文:科学之痛 篇一科学之痛科学是一把双刃剑,带给人类无尽的福祉的同时,也带来了一些痛苦。科...
高考语文作文写作大全范文24... 高考语文作文写作大全范文24篇 篇一:《青春之梦》青春是一段美好而又短暂的时光,它是我们追逐梦想的时...
2021年全国新高考Ⅰ卷高考... 2021年全国新高考Ⅰ卷高考优秀作文 篇一标题:探索创新:培养学生的实践能力随着社会的不断发展和进步...
高考热点素材:网络暴力(精彩... 高考热点素材:网络暴力 篇一网络暴力是一种通过网络平台进行的攻击、侮辱、威胁等恶意行为。随着互联网的...
高考作文有哪些素材(实用6篇... 高考作文有哪些素材 篇一高考作文是每个考生都要面对的一项任务,其中素材的选择对于作文的质量至关重要。...