Abfragen

Eine Abfrage prüft, ob z.B. eine Variable einen bestimmten Wert hat. Abfragen können also den Programmablauf steuern.

if-Abfrage
Die if-Abfrage prüft, ob die Übergebene Bedingung wahr ist. Wenn sie wahr ist, wird der Anweisungsblock durchlaufen, ist sie falsch, kann man einen alternativen Anweisungsblock (else) ausführen lassen.

Wenn der Button am btnPin gleich HIGH ist, wird die LED am ledPin eingeschaltet (HIGH), sonst wird sie abgeschaltet (LOW).

switch-case-Abfrage
Will man einen Wert auf verschiedene Zustände prüfen, bietet sich die switch-case-Abfrage an. Die Struktur sieht so aus:

Hierbei wird der Block case 1 ausgeführt, wenn meineVariable == 1 ist. Ist sie 2, wird der Block case 2 ausgeführt. Ist sie weder 1 noch 2, wird der Block default ausgeführt. Wichtig sind die break-Befehle. Sie veranlassen das Programm, aus der Abfrage zu springen.

13 Comments

  1. With the latest study from PEW Research stating that 95% of teens have access to the Internet, 80% of kids have cell phones and 48% have data plans, providing
    a safe cyber-space should be a priority
    for all parents. As the culture of internet slang grew, it took on new origins from pop culture or video games and television. To report stolen email addresses at Yahoo, click Yahoo.

  2. Claus Kappe

    Hallo,
    ich benötige ein Programm für einen Arduino Nano.
    Dabei möchte ich einen Filmprojektor steuern.
    Über eine seperate Elektronik erhalte ich von einem Videosignal ein Rechtecksignal von 25 Hz, gleichfalls erhalte ich pro Filmbild ein Lichtschrankensignal. Beide Signale müssen synchronisiert weden, damit auch die Lichtschranke mit 25 Hz getaktet wird. Die Ansteuerung des Motors erfolgt über ein PWM Signal des Nano, der wiederum eine Pololu Steuerungseinheit ansteuert. (36/9)
    Das Lichtschrankensignal liegt an Pin 2
    Das Videosignal von 25 Hz an Pin 3
    Als Ausgang zum Pololu liegt an Pin 5.
    Ziel des Programmes ist 8mm Schmalfilm auf Video zu überspielen, dabei muss eine genaue Frequenz von 25 Bildern pro Sekunde sein um ein Flakkern der Filmbilder auszuschließen.
    Für eine Hilfe wäre ich dankbar.

  3. Claus Kappe

    Hallo,
    ich benötige ein Programm für einen Arduino Nano.
    Dabei möchte ich einen Filmprojektor steuern.
    Über eine seperate Elektronik erhalte ich von einem Videosignal ein Rechtecksignal von 25 Hz, gleichfalls erhalte ich pro Filmbild ein Lichtschrankensignal. Beide Signale müssen synchronisiert werden, damit auch die Lichtschranke mit 25 Hz getaktet wird. Die Ansteuerung des Motors erfolgt über ein PWM Signal des Nano, der wiederum eine Pololu Steuerungseinheit ansteuert. (36/9)
    Das Lichtschrankensignal liegt an Pin 2
    Das Videosignal von 25 Hz an Pin 3
    Als Ausgang zum Pololu liegt an Pin 5.
    Ziel des Programmes ist 8mm Schmalfilm auf Video zu überspielen, dabei muss eine genaue Frequenz von 25 Bildern pro Sekunde sein um ein Flakkern der Filmbilder auszuschließen.
    Für eine Hilfe wäre ich dankbar.

  4. Hallo,
    ich möchte eine Modelleisenbahn mit einem Arduino steuern. Wie programmiere ich eine Abfrage zwischen zwei Fahrbefehle?
    Programmablaufplan:
    Pin 1 High
    3sec, warten
    Pin 1 Low
    Pin 2 Abfrage
    wenn Pin 2 High, dann weiter im Programm
    zu Pin 3, sonst erneut Abfrage von Pin 2
    Pin 3 High
    3 sec. warten
    Pin 3 Low
    zurück zum Anfang.
    Wer kann mir helfen?
    Gruß Uli.

  5. Nico

    @Ulrich Theile:

    Na das ist eigentlich nicht so schwer, wenn man schon den Programmablaufplan hat.

    In der Setup-Methode müssen die Pins gesetzt werden:

    void setup()
    {
    pinMode(1,OUTPUT);
    pinMode(2,INPUT);
    pinMode(3,OUTPUT);
    }

    In der Loop-Methode wird dann der Programmablauf durchgeführt:

    void loop()
    {
    digitalWrite(1, HIGH);
    delay(3000);
    digitalWrite(1, LOW);

    do
    {
    delay(100);
    } while (digitalRead(2) == LOW);

    digitalWrite(3, HIGH);
    delay(3000);
    digitalWrite(3, LOW);
    }

    Ich hab hier in der Warteschleife für Pin2=HIGH noch ein kleines delay eingebaut, es sollte ausreichen, wenn alle 100 Millisekunden überprüft wird, ob sich der Status geändert hat.

    Viele Grüße

    Nico

  6. Herbert Lagger

    Hallo !

    Ich habe gerade erst mit dem Arduino UNO angefangen. Ich brauche ein kleines Programm zum Türöffner Steuern.
    Wenn ich die Türklingen 5 sec.gedrückt halte ,soll sich ein Digitaler Ausgang auf High schalten,wenn nicht soll er low bleiben.Ich habe glaube ich einen Knoten im Kopf. Wenn mir jemand helfen könnte währe ich sehr dankbar .

  7. Ulrich Theile

    Hallo Nico,
    vielen Dank für Deine Antwort auf meine Anfrage zur Modellbahnsteuerung. Nun funktioniert die Abfrage der Gleisbesetztmeldungen. Alleine hätte ich das nicht geschafft! Danke.
    Uli.

  8. Sam

    Hallo,
    Als Hobby mache ich öffters Programme auf dem Arduino-Programm, diese liefen bei mir allerdings im einfachsten Bereich ab.
    Letztens hab ich mich dafür entschieden in ein kleines Modellfusballtor Taster rein zu machen und immer wenn ein Ball dagegen kommt eine LED nach der nächstens an zu machen,doch irgendwie mach ich da immer was falsch?!
    Könnte mir vielleicht jemand ein Programm dazu schicken ?
    Denn ich bin mit meinen Nerven schon echt am Ende
    Danke im Vorraus

  9. Pierre

    ich möchte eine Direct Drive led Matrix an meinen aduino anschließen aber ich finde nichts im internet ein bild oder eine erklärung wäre hilfreich

  10. Ulrich Theile

    Hallo,
    im letzten Jahr habt Ihr mir sehr geholfen mit der do while Abfrage. Nun möchte ich eine Geschwindigkeitsmessung programmieren; wie kann ich einen Timer starten, stoppen und das Ergebnis auf dem Display ausgeben? Programmablaufplan in Basic:
    – Abfrage der Lichtschranke; A=Timer
    – 5 sec. warten
    – Abfrage der Lichtschranke; B=Timer
    – C=B-A
    -print C
    wie macht man das mit dem Arduino Mega?
    Wer kann mir helfen?
    Gruß Uli.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.