Nybörjare Arduino (5 / 15 steg)
Steg 5: Arduino LED blinkar
I detta exempel vi tråd upp våra LED krets till ett av Arduino's digital stift och vända lampan på och av med kod. Detta exempel introducerar några användbara funktioner inbyggda i Arduino språket, de är:pinMode (pinNumber, läge) - pinMode används under den setup() delen av skissen för att initiera varje stift som vi använder som indata eller en utgång. Vi kan inte läsa eller skriva till en PIN-kod innan pinMode har ställts in. pinMode() tar två argument - en pin-kod (var och en av Arduino stiften är märkt med ett nummer) och det läget att vi vill ha den PIN-kod ("INPUT" eller "Produktion"). När det gäller blinkar en LED, skickar vi information från Arduino att styra staten LED, så vi använder "OUTPUT" som det andra argumentet.
digitalWrite (pinNumber, stat) - digitalWrite är ett kommando som låter oss anger spänningen av en PIN-kod till 5V eller marken (kom ihåg "marken" är synonymt med 0 volt). I det sista exemplet vi hakas upp en LED till en 5V leverans och såg det slå på, om vi koppla upp LED till en av Arduino's digital stift istället, vi kan aktivera LED genom att ange PIN-koden till 5V och av genom att ange PIN-koden till marken. digitalWrite() tar även två argument - en pin-kod och om PIN-koden ("hög" för 5V och "Låg" för marken).
delay(timeInMs) - dröjsmål pausar programmet för en viss tid. Till exempel delay(2000) pausar programmet för 2000 millisekunder (2000 millisekunder = 2 sekunder), delay(100) kommer att pausa programmet för 100 millisekunder (1/10 sekund), och så vidare...
Nedan är den LED blinkkod, kör den här koden på din Arduino.
LED blinkar
int ledPin = 7; //the Arduino stift som är ansluten till LED
void setup() {
pinMode (ledPin, produktionen); / / initiera PIN-koden som en utgång
}
void loop() {
digitalWrite (ledPin, hög), //turn LED på
Delay(1000); / / vänta på 1000 millisekunder (en sekund)
digitalWrite (ledPin, låg); //turn LED av
fördröjning (1000); //wait en sekund
}
Några anteckningar om koden:
Rader som börjar med "/ /" är kommentarer - Arduino ignorerar dessa.
Du kanske har märkt alla semikolon, semikolon används i slutet av varje kommando Arduino språk. Om du glömmer ett semikolon, får du ett felmeddelande. Du kommer att finna att många andra programspråk använder semikolon i slutet av varje rad.
I den här koden är "ledPin" en variabel. Variabler som används för att lagra information i program, i denna skiss, jag använder variabeln "ledPin" för att lagra nummer 7. Senare i programmet när Arduino träffar en linje med variabeln "ledPin", utvärderar det variabeln enligt dess nuvarande lagrat värde. Så linjen:
pinMode (ledPin, produktionen);utvärderas av Arduino som:
pinMode (7, OUTPUT);
I själva verket vi kan ersätta all användning av pinMode med nummer 7 och programmet skulle fungera exakt samma, men med hjälp av variabeln hjälper oss att lättare läsa och förstå koden.
"int" från den första raden är en datatyp - Arduino språk, du måste alltid initiera variabler genom att förklara deras typ. Det finns många olika typer (du kan läsa om dem alla här), för nu är allt du behöver veta att int variabler är positivt eller negativt heltal - du kommer att använda dem ofta.
Nedan är en simulering av skiss, prova att trycka på play knappen för att se hur det fungerar (fungerar bäst i Chrome)
Som väntat, LED tänds i en sekund, sedan stängs av för en sekund. Försök ändra längden på delay() att se hur det påverkar LED blinkar tid.
En annan sak att se upp för - ett misstag som folk ofta gör är att utelämna den sista delay() i loop(). Prova det - du kommer att finna att lampan är tänd utan att blinka. Detta kan vara förvirrande, eftersom vi fortfarande har en digitalWrite (ledPin, låg) kommandot i programmet. Vad som händer här är led är avstängd, men Arduino omedelbart träffar i slutet av loop() och börjar köra den första raden i loop() igen (tända lampan). Detta händer så snabbt att det mänskliga ögat inte kan se LED turn off för att kort ögonblick medan loopen startar om.