- Labornetzteil AliExpress         
Ergebnis 1 bis 10 von 20

Thema: Sketch - fehlermeldung "expected initializer before 'switch'"

Baum-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #5
    Benutzer Stammmitglied
    Registriert seit
    04.05.2015
    Beiträge
    41
    Hallo Valen,

    ich habe den übermittelten Code über den seriellen Monitor ausgegeben. Der ist korrekt. Der Sketch wurde von mir auch jetzt etwas umgebaut:

    Code:
    #include <LiquidCrystal.h>
    #include <IRremote.h>
    int receiverpin = 3;
    IRrecv irrecv(receiverpin);
    decode_results results;
    
    LiquidCrystal lcd(4,5,6,7,8,9);
    float sensor = 0;
    float celsius = 0;
    float voltage = 0;
    int bewegung=13;
    int bewegungsstatus=0;
    int ledg=11;
    int ledr=12;
    
    
    void setup() {
      
      lcd.begin(16,2);
      lcd.clear();
      pinMode(bewegung, INPUT);
      pinMode(ledg, OUTPUT);
      pinMode(ledr, OUTPUT);
      irrecv.enableIRIn();
      Serial.begin(9600);
    
    }
    
    void translateIR()
    {
    switch(results.value)
    
    {
      case 16724175:
      
        
        if(bewegungsstatus==HIGH)
    {
                lcd.setCursor(0,0);
                lcd.print("Eindringling");
                lcd.setCursor(0,1);
                lcd.print("Erkannt");
                digitalWrite(ledr, HIGH);
                digitalWrite(ledg, LOW);
                delay(10000);
                lcd.clear();
                Serial.println("1");
     
    
    }
    else
    
    {
                lcd.setCursor(0,0);
                lcd.print("Temperatur:");
                lcd.setCursor(0,1);
                lcd.print(celsius,0);
                lcd.setCursor(3,1);
                lcd.print("Grad");
                digitalWrite(ledr, LOW);
                digitalWrite(ledg, HIGH);
                Serial.println("2");
     
    }
    
    break;
    
    case 16743045:
    
                    lcd.setCursor(0,0);
                    lcd.print("Temperatur:");
                    lcd.setCursor(0,1);
                    lcd.print(celsius,0);
                    lcd.setCursor(3,1);
                    lcd.print("Grad");
                    digitalWrite(ledr, LOW);
                    digitalWrite(ledg, HIGH);
                    Serial.println("3");
    break;
    }
    }
    void loop()
    {
                bewegungsstatus=digitalRead(bewegung);
                sensor = analogRead(0);
                voltage = (sensor*5000)/1024;
                voltage = voltage - 500;
                celsius = voltage/10;
                
                
      if (irrecv.decode(&results))
      {
      translateIR();
    
      {
      irrecv.resume();
      }
    }
    }
    Wenn ich die "erste taste" drücke, geht Arduino in den ersten case und gibt mir eine "2" aus, drücke ich die andere Taste, gibt er mir eine "3" aus. Somit geht er also in den Switch und auch korrekt.

    ABER, er beachtet nicht meine If-Bedingung im ersten Case. Da soll überprüft werden, ob der Bewegungssensor einen Input an Pin 13 liefert, wenn ja dann Alarm. Wenn kein Input erfolgt, soll er in den Else-Teil des ersten Cases gehen.

    Sprich, zu 2/3 funktioniert der Sketch, aber warum bearbeitet er nicht die Bedingung?
    Geändert von wendtdir (04.08.2015 um 05:31 Uhr)

Ähnliche Themen

  1. Antworten: 13
    Letzter Beitrag: 02.12.2014, 09:13
  2. Error: expected identifier before "." token
    Von Artemis_Simetra im Forum Arduino -Plattform
    Antworten: 13
    Letzter Beitrag: 18.01.2014, 20:15
  3. Antworten: 3
    Letzter Beitrag: 06.01.2012, 15:30
  4. "initializer element is not constant"
    Von Mauro im Forum C - Programmierung (GCC u.a.)
    Antworten: 4
    Letzter Beitrag: 21.05.2010, 20:11
  5. Antworten: 13
    Letzter Beitrag: 27.01.2009, 12:50

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Labornetzteil AliExpress