如何在 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 (将#修改为@)