• Witaj na Forum Arduino Polska! Zapraszamy do rejestracji!
  • Znajdziesz tutaj wiele informacji na temat hardware / software.
Witaj! Logowanie Rejestracja


Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
IDE problem if i else if ( wykonanie komendy w określnych godzinach)
#1
bry... ESP8266:

Jako że programista ze mnie z żaden, mimo to próbuje zabawy w te klocki i przy okazji czegoś się nauczyć.



Próbuje do pogodynki dodać kod sterujący podświetleniem w zależności od godziny.

Kod:
int getH=-1;
.............
void loop() {

getTime();
screen1();
delay(10000);
getCurrentData();
screen2();
delay(10000);
getForecastData();
screen3();
delay(10000);

if  (getH >= 0 && getH < 7);
    { analogWrite (TFT_LED, 100);  //  ("podswietlenie 10%");
      }
else if (getH >= 18 && getH < 20 );
      {  analogWrite (TFT_LED, 768);    //  ("podswietlenie 75%");
       }
else if (getH >= 20 && getH < 22 );
      {  analogWrite (TFT_LED, 512); //  ("podswietlenie 50%");
       }
else if (getH >= 22 && getH <= 24 );
      {  analogWrite (TFT_LED, 100); //  ("podswietlenie 10%");
       }
else
      { analogWrite (TFT_LED, 1023);  //  ("podswietlenie 100%")
       }
 }
Program, nie kompiluje się w Arduino IDE : 'else' without a previous 'if'  i nie umiem wyłapać co jest nie tak.


Jak inaczej osiągnąć sterowanie PWM pinem w określonych godzinach?

Próbowałem w ten sposób

Kod:
while (getH >= 0 && getH < 7);
    { analogWrite (TFT_LED, 100);  //  ("podswietlenie 100%");
      }
while (getH >= 18 && getH < 20 );
      {  analogWrite (TFT_LED, 768);    //  ("podswietlenie 75%");
      }
while (getH >= 20 && getH < 22 );
      {  analogWrite (TFT_LED, 512); //  ("podswietlenie 50%");
      }
while (getH >= 22 && getH <= 24 );
      {  analogWrite (TFT_LED, 100); //  ("podswietlenie 10%");
      }
while  (getH >= 8 && getH <= 17 );
      { analogWrite (TFT_LED, 1023);  //  ("podswietlenie 10%_noc")
      }


-------------- CUT HERE FOR EXCEPTION DECODER ---------------
19:36:22.726 ->
19:36:22.726 -> Soft WDT reset
19:33:42.991 ->
19:33:42.991 -> >>>stack>>>
19:33:43.024 ->
19:33:43.024 -> ctx: cont
19:33:43.024 -> sp: 3ffffdf0 end: 3fffffc0 offset: 01a0
19:33:43.057 -> 3fffff90:  3fffdad0 00000000 3ffe84d4 40202665 
19:33:43.124 -> 3fffffa0:  feefeffe feefeffe 3ffeed78 4020a574 
19:33:43.157 -> 3fffffb0:  feefeffe feefeffe 3ffe857c 40100c5d 
19:33:43.223 -> <<<stack<<<

19:37:00.466 -> --------------- CUT HERE FOR EXCEPTION DECODER ---------------

Jeśli użyje same if:

dostaje w odpowiedzi
Kod:
if  (getH >= 0 && getH < 7);
    { analogWrite (TFT_LED, 100);  //  ("podswietlenie 100%");
      }
if (getH >= 18 && getH < 20 );
      {  analogWrite (TFT_LED, 768);    //  ("podswietlenie 75%");
       }
if (getH >= 20 && getH < 22 );
      {  analogWrite (TFT_LED, 512); //  ("podswietlenie 50%");
       }
if (getH >= 22 && getH <= 24 );
      {  analogWrite (TFT_LED, 100); //  ("podswietlenie 10%");
       }
if  (getH >= 8 && getH <= 17 );
      { analogWrite (TFT_LED, 1023);  //  ("podswietlenie 10%_noc")
       }
Kod:
prad = analogRead(TFT_LED);
    Serial.println ("################### Czytam ustawienia PWM  i Godziny##########################");
     Serial.println (getH);
    Serial.println (prad);
     delay (1000);



19:48:23.252 -> ################### Czytam ustawienia PWM  i Godziny##########################
19:48:23.318 -> 19
19:48:23.318 -> 1023

Czyli nie za bardzo działa... o 19 powinna być wartośc 768
 
Odpowiedź
  


Wiadomości w tym wątku
IDE problem if i else if ( wykonanie komendy w określnych godzinach) - przez darjerz - 01-02-2023, 20:39

Skocz do:


Przeglądający: 1 gości