网站建设东北,优化大师网页版,网站流量如何增加,百度怎样收录网站一、引脚对应 二、按键控制 LED 亮灭
2.1样例1
#include ESP8266WiFi.hconst int ledPin D2; // LED 连接到 D2 引脚
const int keyPin D4; // 按键连接到 D4 引脚volatile bool flag false; // 记录 LED 状态的标志// 外部中断处理函数
ICACHE_RAM_ATTR void han…一、引脚对应 二、按键控制 LED 亮灭
2.1样例1
#include ESP8266WiFi.hconst int ledPin D2; // LED 连接到 D2 引脚
const int keyPin D4; // 按键连接到 D4 引脚volatile bool flag false; // 记录 LED 状态的标志// 外部中断处理函数
ICACHE_RAM_ATTR void handleInterrupt() {flag !flag; // 切换 LED 状态
}void setup() {pinMode(ledPin, OUTPUT); // 设置 LED 引脚为输出模式pinMode(keyPin, INPUT_PULLUP);// 设置按键引脚为输入模式并启用上拉电阻attachInterrupt(digitalPinToInterrupt(keyPin), handleInterrupt, FALLING); // 设置外部中断
}void loop() {if (flag) {digitalWrite(ledPin, HIGH); // 点亮 LED} else {digitalWrite(ledPin, LOW); // 关闭 LED}
}
2.2样例2
#include ESP8266WiFi.hconst int ledPin D2; // LED 连接到 D2 引脚
const int keyPin D4; // 按键连接到 D4 引脚volatile bool flag false; // 记录 LED 状态的标志// 外部中断处理函数
ICACHE_RAM_ATTR void handleInterrupt() {flag !flag; // 切换 LED 状态
}void setup() {pinMode(ledPin, OUTPUT); // 设置 LED 引脚为输出模式pinMode(keyPin, INPUT_PULLUP);// 设置按键引脚为输入模式并启用上拉电阻attachInterrupt(digitalPinToInterrupt(keyPin), handleInterrupt, FALLING); // 设置外部中断
}void loop() {// 控制 LED 状态digitalWrite(ledPin, flag ? HIGH : LOW); // 根据标志控制 LED 亮灭
}
三、代码解释
使用了 volatile bool 类型的 flag 变量来记录 LED 的状态。当按键按下时会触发外部中断调用 handleInterrupt() 函数来切换 flag 的值从而切换 LED 的状态。主循环中根据 flag 的值来控制 LED 的亮灭。
四、attachInterrupt() 函数 attachInterrupt(digitalPinToInterrupt(pin), ISR, mode); pin指定要附加中断的硬件引脚。通常你需要将其转换为中断编号使用digitalPinToInterrupt(pin)函数。ISR是中断服务程序的函数名也就是当中断触发时要执行的代码块。mode指定触发中断的条件可以是 CHANGE电平变化触发、RISING上升沿触发或 FALLING下降沿触发。
例如在上面的示例中我们使用了attachInterrupt(digitalPinToInterrupt(keyPin), handleInterrupt, FALLING);将外部中断与keyPin引脚关联起来当keyPin引脚检测到下降沿时即按键按下将调用handleInterrupt函数。 五、区别于传统的输入上拉
int led2;
int key4;
int flag0;
void setup()
{pinMode(led,OUTPUT);pinMode(key,INPUT_PULLUP);
void loop()
{if(digitalRead(key)LOW){if(flag0){flag1; digitalWrite(led,LOW);}else{flag0; digitalWrite(led,HIGH);}while(!digitalRead(key));//避免多次触发}}
六、按钮、继电器 比较
按钮和继电器都是常见的电子元件用于控制电路的开关。它们各自具有一些优点和缺点下面是它们的比较
按钮
优点
简单易用 按钮是一种简单的电子组件易于使用和安装。成本低廉 按钮的制造成本通常较低适用于成本敏感的应用场景。可靠性高 由于按钮没有移动部件因此其可靠性通常比较高不易出现故障。
缺点
有抖动现象 按钮在按下或释放时可能会产生抖动现象导致多次触发需要额外的硬件或软件去抖动处理。操作不便 按钮需要手动操作对于需要远程或自动化控制的场景操作不够便利。只能实现离散控制 按钮只能实现开关式的控制无法实现连续调节或精细控制。
继电器
优点
能够控制高功率设备 继电器可以控制高功率的电气设备如电机、加热器等。可以实现远程控制 继电器可以通过电磁信号或网络通信实现远程控制适用于远程监控和自动化系统。稳定可靠 继电器由机械开关构成通常比较稳定可靠适用于长期工作和恶劣环境。
缺点
成本较高 继电器的制造成本较高且需要额外的驱动电路成本较按钮更高。存在机械磨损 继电器中的机械开关存在磨损长时间使用后可能需要维护或更换。占用空间大 继电器通常体积较大占用空间相对较多不适合空间有限的应用场景。
硬件和代码方面的区别
硬件接线 按钮通常只需要连接到一个数字输入引脚而继电器需要连接到控制信号引脚以及电源和负载。电路稳定性 按钮不需要额外的驱动电路而继电器需要驱动电路来控制电磁线圈。软件处理 对于按钮可能需要在软件中添加去抖动处理逻辑而对于继电器可能需要编写额外的代码来实现电磁线圈的控制和保护逻辑。 七、演示
视频审核中