Stap 9:.: knop te drukken:. (Drukknoppen) - CIRC07
Wat We doen:
Tot op dit punt we hebben zich volledig op de uitgangen, tijd om onze Arduino te luisteren, kijken en voelen. We beginnen met een eenvoudige drukknop. Bedrading van de drukknop is eenvoudig. Er is één onderdeel, de trekkracht van de weerstand, die misplaatst lijkt misschien. Dit is opgenomen, omdat een Arduino niet dezelfde manier wij zin (dwz knop ingedrukt, knop knopstatus). In plaats daarvan het kijkt naar de spanning op de pin en beslist of het hoog of laag. De knop is ingesteld om te trekken van de Arduino pin laag wanneer het wordt gedrukt, echter, wanneer de knop ongeperst is de spanning van de pin wordt een zwevende werkbalk (af en toe fouten veroorzaakt). Als u op de Arduino betrouwbaar lezen de pin zo hoog als de knop ongeperst is, voegen we de aantrekkingskracht van weerstand.
(nota: het eerste voorbeeldprogramma maakt gebruik van slechts één van de twee knoppen)
(u kunt ook de fiche breadboard lay-out van de onderkant van deze stap)
De delen:
- CIRC-07 Breadboard blad
- 2 pin Header (x4)
- Drukknop (x2)
- 10 k ohm weerstand (bruin-zwart-rood) (x2)
- 560 ohm weerstand (groen-blauw-bruin) (x2)
- 5mm Red LED (x1)
Het Circuit en alles inpluggen In:
Een kleine Video van alles wordt aangesloten
De Code: - bestand > Sketchbook > voorbeelden > digitale > knop
/* * 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 }}
Niet werkt?
- Licht niet draaien op - de drukknop vierkant is en hierdoor is het gemakkelijk om te zetten het op de verkeerde manier. Geef het een draai van 90 graden en zien als het begint te werken.
- Licht niet vervagen - een beetje een domme fout die we voortdurend gemaakt, wanneer u van eenvoudig op weg naar fading overschakelt Vergeet niet om de draad van de LED van pin 13 naar pin 9
- Underwhelmed? -Geen zorgen deze schakelingen zijn allemaal super uitgeklede wil spelen met de onderdelen gemakkelijk, maar zodra u gooi ze samen de hemel is de limiet.
Waardoor het beter:
Op knop de knop off:
In het eerste voorbeeld kan worden een beetje underwhelming (ie. Ik niet echt nodig een Arduino om dit te doen), laat het een beetje ingewikkelder maken. Een knop zal de LED oplichten anderzijds de LED zal uitzetten. De code te wijzigen.
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 }}
Het programma uploaden naar je board, en beginnen met het wisselen van de LED in- en uitschakelen.
Fading op en neer:
Laat de knoppen gebruiken voor het besturen van een analoog signaal. Om dit te doen moet u het wijzigen van de draad van de LED van pin 13 verbinden met pin 9, ook dit wijzigen in de code.
int ledPin = 13; ----> int ledPin = 9;
Naast de loop code wijzigen om te lezen.
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);}
Het wijzigen van Fade snelheid:
Wilt u de LED te verdwijnen sneller of langzamer, is er slechts één regel met code waarop wijzigen moet;
delay(10); ----> delay(new #);
Als u wilt vervagen sneller maken vereist de getal kleiner, langzamer een groter getal.