Zum Inhalt springen

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.

    if (digitalRead(btnPin)==HIGH) {
      // Anweisungsblock für wahr
      digitalWrite(ledPin,HIGH);
      } else {
      // Anweisungsblock für falsch
      digitalWrite(ledPin,LOW);
    }

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


    Sieh dir jetzt meinen neuen Arduino-Videokurs an: Jetzt ansehen!


    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:

    switch (meineVariable) {
      case 1:
        befehl1;
        break;
      case 2:
        befehl2;
        break;
      default:
        befehl3;
        break;
    }

    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 Gedanken zu „Abfragen“

    1. Pingback: Arduino Valentinstag: Romantisches Wandlicht – mit LED-Stripe

    2. 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.

    3. 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

    4. 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

    5. 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.

    6. 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:

      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

    8. 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.

    9. 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.

    10. 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.

    11. 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.

    Die Kommentarfunktion ist deaktiviert.