Arduino Wi-Fi> FireBase и более чем 1 светодиодный контроль - PullRequest
0 голосов
/ 21 января 2019

Можете ли вы помочь мне с кодом ниже. Он работает с 1 светодиодом, но не с 2 светодиодами / контактами. На контакте 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 голосов
/ 22 января 2019

Причиной этого является сидение if else, которое вы использовали для LED1. Если 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); 
}
...