Arduino WiFi> Firebase和超过1个LED控件

时间:2019-01-21 20:13:21

标签: firebase firebase-realtime-database arduino arduino-esp8266

请帮我提供以下代码。它可以使用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;
}


}

1 个答案:

答案 0 :(得分:0)

这样做的原因是用于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); 
}