Zum Inhalt springen
Arduino Digital In Taster

Digital In

    Um ein digitales Signal zu erfassen (Schalter, Taster, usw.), erweitert man die Schaltung um einen Taster. Die eine Seite des Tasters wird mit dem GND des Arduino-Board verbunden, die andere Seite mit dem digitalen Pin 2.

    Im Code schalten wir am Pin 2 den so genannten Pull-Up Widerstand hinzu. Er wird benötigt, um Spannungsschwankungen und Störsignale herauszufiltern. Alle störenden Ströme werden somit über diesen internen Widerstand in den 5V+ geführt. Ist der Taster nicht gedrückt, liegt am Pin 2 jetzt ein 5V+-Signal an (HIGH), drückt man den Taster, so liegt ein GND Signal an (LOW).

    Code für den Digital In vom Arduino

    const int buttonPin = 2;
    const int ledPin =  13;
    int buttonState = 0;
    
    void setup() {
      pinMode(ledPin, OUTPUT);
      pinMode(buttonPin, INPUT_PULLUP);
    }
    
    void loop(){
      buttonState = digitalRead(buttonPin);
      if (buttonState == LOW) {
        digitalWrite(ledPin, HIGH);
      } else {
        digitalWrite(ledPin, LOW);
      }
    }

    Am Anfang werden drei ganzzahlige Variablen buttonPin, ledPin und buttonState erzeugt. Dabei sind die ersten beiden unveränderlich (Schlüsselwort const für Konstante). Die Variable buttonState wird verwendet, um den aktuellen Zustand des Tasters zu speichern.


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


    const int buttonPin = 2;
    const int ledPin =  13;
    int buttonState = 0;

    Im Setup bekommt der ledPin die Funktion eines Outputs, der buttonPin die eines Inputs mit zugeschaltetem Pull-Up-Widerstand.

    pinMode(ledPin, OUTPUT);
    pinMode(buttonPin, INPUT_PULLUP);

    Im Loop wird der Variable buttonState mit dem Befehl = digitalRead(buttonPin) der aktuelle Zustand des Buttons übergeben (entweder HIGH oder LOW).

    buttonState = digitalRead(buttonPin);

    Durch eine if-Abfrage (Alle Anweisungen innerhalb der if-Abfrage werden nur ausgeführt, wenn die in Klammern angegebene Bedingung zutrifft.) wird die LED am ledPin eingeschaltet, also wenn buttonState LOW ist, sonst (else) wird sie abgeschaltet.

    if (buttonState == LOW) {
        digitalWrite(ledPin, HIGH);
      } else {
        digitalWrite(ledPin, LOW);
      }
    }

    35 Gedanken zu „Digital In“

    1. Hallo, hat jemand schon ein Programm geschrieben welches innerhalb einer gewissen Zeit einen doppelklick eines Tasters erkennt?

    2. bei mir klappt es auch, wenn ich den Schalter nur an den pin sanschließe, also ich muss gar keine stromzufur bringen

    3. es geht darum das alle meine signale mit 24V anokemmn ich diese aber ja auf 5V runterkriegen muss. audferdem ist an diesem signal paralel auch noch ne led eingebaut 4,5V und 20mA. und du sagst ja das ich denn einfach vor der led nen optokoppler einffcge um denn damit von 24V auf 5V runterkomme oder? was mache ich denn da mit denn ganzen optokoppler bzw mit denn gnd?

    Die Kommentarfunktion ist deaktiviert.