- fchao-Sinus-Wechselrichter AliExpress         
Ergebnis 1 bis 10 von 20

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

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    01.03.2008
    Ort
    Niederlanden
    Beiträge
    1.170
    Zitat Zitat von wendtdir Beitrag anzeigen
    ...
    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?
    Ich nehme an das an deine Arduino pin 13 auch ein LED angeschlossen ist? Eine weitere LEd von dir, oder die bekannte Blink-led? Oder beide vielleicht? Leuchtet sie? Kann den bewegungssensor diese LED zum leuchten bringen? Welcher sensor ist das? Ist es stark genug so einer last zu treiben?

  2. #2
    Benutzer Stammmitglied
    Registriert seit
    04.05.2015
    Beiträge
    41
    Es ist ein Bewegungsmelder HC-SR501. In meinem vorherigen Sketch funktionierte dieser ohne Probleme. Da ich bis jetzt das gebaute nicht auseinandergenommen habe, ist es unwahrscheinlich, dass er nun defekt ist.

    Das vorherige Programm war quasi die Grundfunktion. Lies die Temperatur aus, zeige sie mir auf dem Display an, wenn Bewegung erkannt, melde es mir auf dem Display statt der Temperatur und schalte die LED auf rot. Das alles lief mit einer normalen If ... Else Anweisung.

    Nun wollte ich lediglich den Switch in meinem Sketch einbauen. Da ich um es mal in die Praxis zu bringen, am Tage nur die Temperatur angezeigt haben möchte und Nachts oder wenn ich nicht da bin die Funktion Bewegungssensor einschalten möchte. Es kommt auch noch ein Piezo hinzu, auch dieses hatte ich schon getestet. Von daher ist nur die Frage, was an meinem Sketch ist falsch, dass die If -Anweisung im ersten Case nicht durchlaufen wird, wenn ich den Case aktiviert habe und eine Bewegung vor dem Sensor stattfindet?

    Oder ist mein Sketch so korrekt?

  3. #3
    Benutzer Stammmitglied
    Registriert seit
    04.05.2015
    Beiträge
    41
    Kurzes Update. Ich habe

    Code:
    bewegungsstatus=digitalRead(bewegung);
    nun mal auf =1; gesetzt und den Part digitalRead(Bewegung); aus kommentiert und siehe da, die rote LED begann zu leuchten und auf dem Display stand Eindringling erkannt. Das bedeutet für mich, die IF-Bedingung funktioniert, aber warum liest er die Bewegung nicht ein, wenn ich den Code wie oben geschrieben einbaue?

    Alle Werte werden in void Loop() bearbeitet, nur dieser Wert, wenn eine Bewegung wahrgenommen wird, wird nicht übertragen?

  4. #4
    Erfahrener Benutzer Roboter Genie Avatar von HeXPloreR
    Registriert seit
    08.07.2008
    Ort
    Soltau - Niedersachsen
    Alter
    46
    Beiträge
    1.369
    bau doch mal ein "Serial.println(bewegungssatus);" in den Code von vorher dahinter ein und guck was rauskommt. Setze mal " =0" ein und gucke ob der else Zweig jetzt wieder ausgeführt wird.


  5. #5
    Benutzer Stammmitglied
    Registriert seit
    04.05.2015
    Beiträge
    41
    Ich habe mir den Bewegungsstatus in void Loop() ausgeben lassen, Ergebnis. Die Bewegung wird erkannt, es wird mir eine 1 Ausgegeben. Wenn ich den Bewegungsstatus auf 0 setze, geht er weiterhin in den Else-Zweig. Bedeutet für mich, die Bewegung wird erkannt, aber der Status wird nicht übergeben an die Bedingung in der Funktion. Sie wird quasi "übergangen" und er geht sofort in den Else-Zweig.

    Ich habe den Bewegungssensor mittlerweile auch von Pin 13 entfernt und bei Pin 10 angeschlossen um zu vermeiden, dass es evtl. mit der LED an Pin 13 kollidiert. Übrigens, zufälligerweise habe ich gesehen, dass die LED an Pin 13 auf dem Board aufleuchtet, wenn ich die Hand vor den Sensor halte.

    Warum also wird der Status nicht an die Funktion bzw. die If-Anweisung in der Funktion übergeben?

  6. #6
    Erfahrener Benutzer Roboter Genie Avatar von HeXPloreR
    Registriert seit
    08.07.2008
    Ort
    Soltau - Niedersachsen
    Alter
    46
    Beiträge
    1.369
    Versuhe mal ein Volatile vor "int bewegung = 10" // 13.

  7. #7
    Benutzer Stammmitglied
    Registriert seit
    04.05.2015
    Beiträge
    41
    Nein. Funktioniert auch nicht. Ich habe bei der IF-Anweisung mittlerweile auch mal eine ==1 eingetragen, geht auch nicht. Ich kann es nicht nachvollziehen, alle anderen Daten werden berechnet und ausgegeben. Kann es ein zeitliches Problem sein? Die Verzögerung von 10 Sekunden dürfte nicht stören, denn die betrifft ja nur die Dauer des Blinkens und die Dauer der Anzeige.

    - - - Aktualisiert - - -

    Ich habe den Fehler gefunden, weiß nur nicht wie ich ihn ausbessern kann. Das Problem, ich drücke die erste Taste, in dem Moment wird die Bedingung des Bewegunsstatus überprüft. Sie wird aber nicht ohne Pause überprüft. Sondern immer nur in dem Moment, wo die Taste 1 gedrückt wird.

    Wie kann ich also eine fortlaufende Prüfung einbauen?

Ä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
  •  

LiFePO4 Speicher Test