如何解决如何在 AC 风扇调光器草图中添加两个物理按钮并在按下后更新相应的滑块/步进小部件
互联网上有很多带有零交叉检测的 AC 风扇调光器代码,也可以通过 Blynk 应用程序运行。
问题是所有这些都只能通过wifi控制(有互联网),而根本没有手动控制(没有互联网)。
我在下面分享了一个由 blynk 应用程序(Board NodeMCU)运行的交流风扇调光器的代码。它仅在 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,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));
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。