Arduino Tutorial Bundle.: Arduino experimenterande Kit:. (ARDX) (9 / 13 steg)
Steg 9:.: knapp att trycka på:. (Tryckknappar) - CIRC07
Vad vi gör:
Fram till denna punkt vi har helt inriktat på utgångar, dags för att få våra Arduino att lyssna, se och känna. Vi börjar med en enkel tryckknapp. Kabeldragning upp tryckknappen är enkel. Det finns en komponent, dra upp motstånd, som kan verka sin plats. Detta ingår eftersom en Arduino inte känner på samma sätt som vi gör (dvs knappen nedtryckt, knappen hovrad). I stället den ser ut på spänningen på PIN-koden och avgör om det är hög eller låg. Knappen är inställd att dra den Arduino pin låg när den trycks, men när den är Kolfiberförstärkt spänningen i PIN-koden kommer att sväva (orsakar tillfällig felen). För att få Arduino tillförlitligt läsa PIN-koden så hög när knappen är Kolfiberförstärkt, lägger vi dra upp motstånd.
(Obs: första exempel används bara en av de två knapparna)
(du kan också hämta bladet bakbord layout från botten av detta steg)
Delarna:
- CIRC-07 bakbord blad
- 2 stift huvud (x4)
- Tryckknapp (x2)
- 10 k ohm Resistor (brun-svart-röd) (x2)
- 560 ohm Resistor (grön-blå-brun) (x2)
- 5mm röd LED (x1)
Kretsen och ansluta allt:
En liten Video av allt att vara inkopplad
Koden: - Fil > Sketchbook > exempel > digitala > knappen
/ * * Knappen * av DojoDave < http://www.0j0.org> ** slår på och av en ljusavgivande diode(LED) ansluten till digital * stift 13, när du trycker på en tryckknapp ansluten till stift 7. ** http://www.arduino.cc/en/Tutorial/Button * / int ledPin = 13. väljer du PIN-koden för LEDint inputPin = 2; Välj den ingångsstift (för en tryckknapp) int val = 0; variabel för att läsa pin statusvoid setup() {pinMode (ledPin, produktionen); / / förklara LED som output pinMode (inputPin, ingång); / / förklara tryckknapp som indata} void loop() {val = digitalRead(inputPin); / / läsa ingående om (val == hög) {/ / kolla om ingången är hög digitalWrite (ledPin, låg); / / stänga LED av} annat {digitalWrite (ledPin, hög); / / slå LED}}
Inte fungerar?
- Ljus inte vrida på - tryckknappen är fyrkantiga och på grund av detta är det lätt att lägga den på fel sätt. Ge det en 90 graders snodd och se om det börjar arbeta.
- Ljus inte blekning - lite av ett dumt misstag som vi gjort hela tiden, när du växlar från enkla på off mot blekning kom ihåg att flytta LED tråd från stift 13 till pin 9
- Underwhelmed? -Inga bekymmer dessa kretsar är alla super bantad göra spelar med komponenter lätt, men när du kastar dem tillsammans himlen är gränsen.
Att göra det bättre:
På knappen off knappen:
Det första exemplet kan vara lite underwhelming (dvs. Jag behöver egentligen en Arduino att göra detta), kan göra det lite mer komplicerat. En knapp tänds lysdioden andra slocknar lampan. Ändra koden till.
int ledPin = 13. väljer du PIN-koden för LEDint inputPin1 = 3; knappen 1int inputPin2 = 2; knappen 2void setup() {pinMode (ledPin, produktionen); / / förklara LED som output pinMode (inputPin1, ingång); / / göra knappen 1 en ingående pinMode (inputPin2, ingång); / / göra knappen 2 indata} void loop() {om (digitalRead(inputPin1) == låg) {digitalWrite (ledPin, låg); / / stänga LED av} annars om (digitalRead(inputPin2) == låg) {digitalWrite (ledPin, hög); / / slå LED}}
Ladda upp programmet till din styrelse och börja växla LED på och av.
Bleknande upp och ner:
Kan använda knapparna för att styra en analog signal. För att göra detta måste du ändra kabeln ansluter lysdioden från stift 13 till pin 9, också ändra detta i koden.
int ledPin = 13. ---> int ledPin = 9;
Nästa ändra koden för loop() att läsa.
int värde = 0; void loop() {om (digitalRead(inputPin1) == låg) {värde--;} else om (digitalRead(inputPin2) == låg) {värde ++;} värde = begränsa (värde, 0, 255); analogWrite (ledPin, värde); delay(10);}
Ändra Fade hastighet:
Om du vill ha LED att blekna snabbare eller långsammare, finns det bara en kodrad som behöver ändras;
Delay(10); ---> dröjsmål (nya #);
För att blekna snabbare göra kräver antalet mindre, långsammare ett större numrerar.