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

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • 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.