Schritt 9:.: Taste Pressen:. (Drucktasten) - CIRC07
Was wir machen:
Bis zu diesem Zeitpunkt Wir konzentrierten sich ganz auf Ausgänge, Zeit, um unsere Arduino zu hören, sehen und fühlen. Wir beginnen mit einem einfachen Taster. Kabel, die Drucktaste ist einfach. Es ist eine Komponente, die Pull-up-Widerstand, die fehl am Platz erscheinen mag. Dies ist im Preis inbegriffen, weil ein Arduino genauso spüren nicht, wir tun (dh gedrückt, Schaltfläche unpressed). Stattdessen sieht die Spannung auf den Pin und entscheidet darüber, ob es HIGH oder LOW. Die Schaltfläche soll dem Arduino Pin LOW zu ziehen, wenn er gedrückt wird, jedoch wenn die Taste nicht gedrückt ist die Spannung des Stiftes wird schwimmen (gelegentliche Fehler verursacht). Um zu erhalten die Arduino zuverlässig lesen die Pin so hoch, wenn die Taste nicht gedrückt ist, fügen wir die Pull-up Widerstand.
(Hinweis: das erste Beispielprogramm verwendet nur eine der beiden Tasten)
(Sie können auch das Steckbrett-Layout-Blatt von der Unterseite von diesem Schritt)
Die Teile:
- CIRC-07 Steckbrett Blatt
- 2-Pin Header (x4)
- Taster (x2)
- 10 k Ohm Widerstand (braun-schwarz-rot) (x2)
- 560 Ohm Widerstand (grün-blau-braun) (x2)
- 5mm rot LED (x1)
Die Schaltung und alles einstecken:
Ein kleines Video von alles eingesteckt wird
Code: - Datei > Skizzenbuch > Beispiele > Digital > Button
/* * Button * by DojoDave <http://www.0j0.org> * * Turns on and off a light emitting diode(LED) connected to digital * pin 13, when pressing a pushbutton attached to pin 7. * * http://www.arduino.cc/en/Tutorial/Button */ int ledPin = 13; // choose the pin for the LEDint inputPin = 2; // choose the input pin (for a pushbutton)int val = 0; // variable for reading the pin statusvoid setup() { pinMode(ledPin, OUTPUT); // declare LED as output pinMode(inputPin, INPUT); // declare pushbutton as input}void loop(){ val = digitalRead(inputPin); // read input value if (val == HIGH) { // check if the input is HIGH digitalWrite(ledPin, LOW); // turn LED OFF } else { digitalWrite(ledPin, HIGH); // turn LED ON }}
Es funktioniert nicht?
- Licht nicht drehen auf - die Drucktaste ist quadratisch und aus diesem Grund ist es einfach, steckte es in die falsche Richtung. Geben Sie eine 90-Grad-Wendung zu und sehen Sie, ob es zu arbeiten beginnt.
- Licht nicht verblassen - ein bisschen einen dummen Fehler, die wir ständig gemacht, beim Wechsel von einfach auf off zu verblassen, denken Sie daran, das LED-Kabel von Pin 13 mit Pin 9 bewegen
- Underwhelmed? -Keine Sorge diese Schaltungen sind alle super abgespeckte, um spielen mit den Komponenten leicht zu machen, aber sobald Sie sie zusammen am Himmel werfen ist die Grenze.
Besser machen:
Off-Taste anklicken:
Das erste Beispiel ist möglicherweise ein wenig underwhelming (ie. Ich nicht wirklich brauchen einen Arduino, dies zu tun), lässt es ein wenig komplizierter zu machen. Eine Taste leuchtet die LED auf der anderen wird die LED ausgeschaltet. Ändern Sie den Code.
int ledPin = 13; // choose the pin for the LEDint inputPin1 = 3; // button 1int inputPin2 = 2; // button 2void setup() { pinMode(ledPin, OUTPUT); // declare LED as output pinMode(inputPin1, INPUT); // make button 1 an input pinMode(inputPin2, INPUT); // make button 2 an input}void loop(){ if (digitalRead(inputPin1) == LOW) { digitalWrite(ledPin, LOW); // turn LED OFF } else if (digitalRead(inputPin2) == LOW) { digitalWrite(ledPin, HIGH); // turn LED ON }}
Laden Sie das Programm auf dein Board, und starten Sie Umschalten der LED ein- und ausschalten.
Verblassen rauf und runter:
Können die Tasten verwenden, um ein analoges Signal steuern. Dazu Sie die Kabelverbindung zwischen der LED von Pin 13 mit Pin 9 ändern müssen, ändern Sie dies auch im Code.
int ledPin = 13; ----> int ledPin = 9;
Als nächstes ändern Sie den loop() Code zu lesen.
int value = 0;void loop(){ if (digitalRead(inputPin1) == LOW) { value--; } else if (digitalRead(inputPin2) == LOW) { value++; } value = constrain(value, 0, 255); analogWrite(ledPin, value); delay(10);}
Fade Geschwindigkeit ändern:
Wenn Sie, dass die LED zu verblassen schneller oder langsamer möchten, gibt es nur eine Zeile Code, die geändert werden;
delay(10); ----> delay(new #);
Um schneller stellen zu verblassen erfordert die Anzahl kleiner, langsamer eine größere Anzahl.