Arduino wifi > firebase 和超过 1 个 LED 控制

Arduino wifi > firebase and more than 1 LED control

你能帮我写下面的代码吗?它适用于 1 个 LED,但不适用于 2 个 LED/引脚。在引脚 3 上工作,但在引脚 5 上不行。有什么建议吗?

我尝试了很多不同的方法,但都卡住了。循环内有问题。我认为这将帮助论坛上的许多人。

代码段更正会很棒,或者告诉我如何解决该问题。

Arduino代码:

#include <ESP8266WiFi.h>
#include <FirebaseArduino.h>

// Set these to run example.
#define FIREBASE_HOST "test839785093353.firebaseio.com"
#define FIREBASE_AUTH "685g4d65d4g65d4g654TESTsf354s6f531sf531s"

//Change line with your WiFi router name and password
#define WIFI_SSID "Internet"  
#define WIFI_PASSWORD "password123123"


void setup() {
Serial.begin(9600);
pinMode(3, OUTPUT);

pinMode(5, OUTPUT);

// connect to wifi.
WiFi.begin(WIFI_SSID, WIFI_PASSWORD);
Serial.print("connecting");

while (WiFi.status() != WL_CONNECTED) {
Serial.print(".");
delay(500);
}

Serial.println();
Serial.print("connected: ");
Serial.println(WiFi.localIP());
Firebase.begin(FIREBASE_HOST, FIREBASE_AUTH);

// ob povezavi inicializiras status
Firebase.set("LED_STATUS", 0);
Firebase.set("LED2_STATUS", 0);
}
int led1 = 0;
int led2 = 0;
// int led3 = 0;


void loop() {
// get value
led1 = Firebase.getInt("LED_STATUS");

led2 = Firebase.getInt("LED2_STATUS");

// handle error
if (led1==1) {
Serial.println("LED 1 ON");
digitalWrite(3,HIGH);  
return;
delay(10);
}
else {
Serial.println("LED 1 OFF");
digitalWrite(3,LOW);  
return;
}

   // se en if..else stavek
if (led2==1) {
Serial.println("LED 2 ON");
digitalWrite(5,HIGH);  
return;
delay(10);
}
else {
Serial.println("LED 2 OFF");
digitalWrite(5,LOW);  
return;
}


}

这是因为您对 LED1 使用了 if else 语句。 如果 led1 为 1,则打开 led1 并退出 loop() 函数。 如果 led1 为 0,则关闭 led1 并退出 loop() 函数。

代码永远不会到达 led2。

试试这个改变

if (led1==1) {
Serial.println("LED 1 ON");
digitalWrite(3,HIGH);  
delay(10);
}
else {
Serial.println("LED 1 OFF");
digitalWrite(3,LOW);  
}

   // se en if..else stavek
if (led2==1) {
Serial.println("LED 2 ON");
digitalWrite(5,HIGH);  
delay(10);
}
else {
Serial.println("LED 2 OFF");
digitalWrite(5,LOW); 
}