nodemcu - 如何将两个物理按钮添加到 AC 风扇调光器草图并在按下后更新相应的滑块/步骤小部件
问题描述
互联网上有很多带有零交叉检测的 AC Fan 调光器代码,也可以由 Blynk 应用程序运行。
问题是所有这些都只能通过wifi(有互联网)控制,而根本没有手动控制(没有互联网)。
我在下面分享了一个由 blynk app (Board NodeMCU) 运行的 AC 风扇调光器的代码。它仅在 wifi 可用时运行,即它没有手动控制。我正在尝试通过添加两个物理按钮来改进/修改相同的代码,以便在互联网不可用时手动控制风扇速度。在这种情况下,我无法修改这两个按钮的代码,这两个按钮还能够与 Blynk 应用程序滑块按钮一起增加和降低风扇速度。任何人都可以帮助/指导我开发这个。
#define BLYNK_PRINT Serial
#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>
#define triacPulse 4 //D2
#define ZVC 12 //D6
int Slider_Value;
int dimming;
int x = 0;
char auth[] = "AUTH TOKEN"; // You should get Auth Token in the Blynk App.
char ssid[] = "SSID"; // Your WiFi credentials.
char pass[] = "PASS"; // Set password to "" for open networks.
BLYNK_WRITE(V1) // function to assign value to variable Slider_Value whenever slider changes position
{
Slider_Value = param.asInt(); // assigning incoming value from pin V1 to a variable
}
void setup()
{
pinMode(ZVC, INPUT_PULLUP);
//digitalWrite(2, INPUT_PULLUP); // pull up
pinMode(triacPulse, OUTPUT);
Serial.begin(9600);
Blynk.begin(auth, ssid, pass);
attachInterrupt(digitalPinToInterrupt(ZVC), acon, FALLING); // attach Interrupt at PIN2
}
void loop()
{
Blynk.run();
// When the switch is closed
dimming = map(Slider_Value, 0, 100, 7200, 200);
}
void acon()
{
// Serial.println("REad");
delayMicroseconds(dimming); // read AD0
digitalWrite(triacPulse, HIGH);
delayMicroseconds(50); //delay 50 uSec on output pulse to turn on triac
digitalWrite(triacPulse, LOW);
// Serial.println(digitalRead(triacPulse));
}
解决方案
推荐阅读
- xampp - Mojave 升级时的 XAMPP Manager-OSX 错误
- java - 如何避免在 Java 中使用库中的堆栈方法
- python - 如何在 pandas 的 groupby 中进行第一次和最后一次观察并 dcast 数据帧
- c# - 如何在 c# 中读取 .txt 文件的一行?
- uber-api - uber central 和 Uber for business 是一样的吗?
- docker - mesosphere dcos 未注册更改 docker root
- javascript - 在基于 Typescript 的 UWP 应用程序中设置滚动条宽度
- javascript - 在烤面包机 onShown 事件中调用其他函数
- c# - 单击单元格时如何更改数据网格中的单元格值
- c - C 语言中的套接字编程:无法将消息从 FreeBSD 客户端广播到 Linux 服务器。广播 IP 应为 255.255.255.255