Skocz do zawartości

Sprawdzenie kodu


Chester11-86

Pomocna odpowiedź

Witam Wszystkich,

 

Napisałem taki prosty program na Arduino Uno i nie mogę go skompilować tego "if'a" w tym miejscu:😞

case 0x343442BD:
      if (digitalRead(A2) = LOW) {
        digitalWrite(5, LOW);
        digitalWrite(6, LOW);

 Wyskakuje błąd: lvalue required as left operand of assignment

Cały kod:

#include <IRremote.h>
IRrecv irrecv(2);
decode_results results;

void setup() { 
  pinMode(3, OUTPUT); 
  pinMode(4, OUTPUT);
  pinMode(5, OUTPUT); 
  pinMode(6, OUTPUT); 
  pinMode(A5, INPUT_PULLUP);
  pinMode(A4, INPUT_PULLUP); 
  pinMode(A3, INPUT_PULLUP);
  pinMode(A2, INPUT_PULLUP);
  irrecv.enableIRIn();
}
void loop() {
  if (irrecv.decode(&results)) {
    
    switch (results.value) {
      
      case 0x34347887: 
      if (digitalRead(A5) = LOW) { 
        digitalWrite(3, LOW);
        digitalWrite(4, LOW);
        delay (25);

      }else{
        digitalWrite(3, LOW);
        digitalWrite(4, HIGH);
        delay (25);
      }
      break;
      
      case 0x3434827D:
      if (digitalRead(A4) = LOW) { 
        digitalWrite(3, LOW);
        digitalWrite(4, LOW);
        delay (25);

      }else{
        digitalWrite(3, HIGH);
        digitalWrite(4, LOW);
        delay (25);
      }
      break;

      case 0x343433CC:  
        digitalWrite(3, LOW);
        digitalWrite(4, LOW);
      break;

      case 0x343455AA: 
      if (digitalRead(A3) = LOW) { 
        digitalWrite(5, LOW);
        digitalWrite(6, LOW);
        delay (25);

      }else{
        digitalWrite(5, LOW);
        digitalWrite(6, HIGH);
        delay (25);
      }
      break;
      
      case 0x343442BD:
      if (digitalRead(A2) = LOW) {
        digitalWrite(5, LOW);
        digitalWrite(6, LOW);
        
      }else{
        digitalWrite(5, HIGH);
        digitalWrite(6, LOW);
        delay(25);
      }
      break;

      case 0x3434748B:  
        digitalWrite(5, LOW);
        digitalWrite(6, LOW);
      break;
          
      }
    
    irrecv.resume();
}
}

Dziękuję za pomoc i za wyjaśnienie problemu🙂 

Link do komentarza
Share on other sites

Chcąc sprawdzić warunek powinieneś użyć   ==

Za pomocą pojedynczego operatora = możesz przypisać wartość do zmiennej np. int x=2

Z serwisu arduino.cc

Comparison Operators

!= (not equal to)
< (less than)
<= (less than or equal to)
== (equal to) taką konstrukcję stosujesz przy sprawdzaniu warunków
> (greater than)
>= (greater than or equal to)

Edytowano przez Belferek
  • Lubię! 1
  • Pomogłeś! 1
Link do komentarza
Share on other sites

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.