En nybörjares guide till Arduino (5 / 15 steg)
Steg 5: Blink: digitala utgångar
: Första Arduino blinkkod
När du ansluter din Arduino för första gången, visas en grön lampa (med 'på' skriven nästa-är power LED) och en orange ljus som blinkar (med 'L' skrivet bredvid). Detta är standardprogrammet 'Blinka', det vänder den inre LED på en sekund, sedan stänger av en sekund, upprepa för evigt.
Låt oss ta en titt på koden: öppna Arduino IDE och gå till File > exempel > 01. grunderna > blinka.
Det första du kommer att märka, är de första 14 rader som är ljusare än resten. Al text placeras mellan den * / / * tecknar, är en kommentar. Detta är en multi-line kommentaren. På linje 17, finns det några fler kommentarer, de använder den / / operatör, allt på den linjen, som kommer efter den / / är en kommentar. Nästa rad är bara normala koden igen, du behöver inte stänga denna enda kommentar, till skillnad från multi-line kommentaren.
Kommentarer används för att göra koden mer lättläst, så det rekommenderas starkt att du använder dem i dina egna program. Det är inte nödvändigt i ett litet program, som Blink, men när du skriver koden för över tusen linjer, du kommer bli mycket mycket tacksam om du har lagt till några kommentarer, för att hjälpa dig att förstå vad en viss del av koden gör, och hur det fungerar.
Du kan också använda kommentar operatörerna (tillfälligt) inaktivera en bit kod, utan att behöva ta bort det permanent. Detta fungerar, eftersom kommentarer inte få överföra till Arduino. (De ignoreras av kompilatorn, lappa av program som konverterar koden du skriver i Arduino IDE till kommandon som Arduino kan förstå.) Detta innebär också att de inte tar upp någon plats i den Arduino (begränsade) minne, endast på datorns hårddisk.
Den nästa bit kod vi möter är "void setup() {'
Detta är den setup rutinen, det går bara en gång, varje gång Arduino startas. (utan laga kraft är en datatyp, innebär det ingen information som returneras av setup, mer om detta senare. De två parenteserna som används i varje funktion, för att överföra data via; installationen behöver inte alla data, så fästena är tomma. Oroa dig inte om du inte förstår detta ännu, vi ska täcka det i detalj i steg om funktioner.)
Allt mellan två klammerparenteser eller tandställning efter "Ogiltig setup()" är koden som körs under installationen. Se till att du alltid stänga din parentes, annars får du konstigt fel. IDE hjälper dig med detta genom att markera andra fästet, om du väljer ett.
Arduino referens: klammerparenteser
Det första riktiga kommandot är 'pinMode (13, OUTPUT);'. Som du kanske har gissat, detta har att göra med de två stiften på varje Arduino: dessa stift kan användas antingen som indata eller som en utgång. Det första numret är de stift vi vill använda som en utgång, 13 i detta fall, eftersom alla Arduino styrelser har en ombord LED ansluten till stift 13. UTGÅNG, det andra argumentet för funktionen pinMode är en konstant. Detta är ett värde som definieras av själva programvaran, och har givits en lätt namn. Konstanter har en blå färg.
(Värdet av produktionen är 1, vilket är lite bakvända, sedan dess O ser ut som en 0, och jag av INPUT konstant ser ut som en 1. pinMode(13,OUTPUT) exakt samma som pinMode(13,1) )
Som standard den Arduino stift anges som indata, men genom att använda funktionen pinMode, har vi nu satt stift 13 som en utgång. Vi har inte sagt det vad värdet vi vill utgång ännu, så det blir bara 0. Detta innebär att inuti chipet, stift 13 är ansluten till 0v, detta är marken. Om du vill ansluta 5v PIN-koden till stift 13 nu, skulle du skapa en kortslutning! Var försiktig!
Arduino tutorials: Digital Pins
I Arduino IDE, och andra C-liknande programmeringsspråk avslutas varje uttalande med ett semikolon (;), som du kan se i exemplet Blink. När du får kryptiska fel när jag försöker ladda upp, en av de första sakerna att kontrollera är att semikolon. De flesta gånger, får du ett fel som detta: Blink: 16: fel: förväntade ',' eller ';' innan...
16 är inte raden där det saknas semikolon, men raden med nästa kommando/uttalande.
Det nästa struktur är "void loop() {'
Koden mellan krökt parenteser körs efter installationen är klar, och upprepar för alltid (åtminstone tills du startar om Arduino, eller ladda upp en annan program).
Nästa funktion är 'digitalWrite (13, hög)'
Detta 'skriver' stift 13 hög, med andra ord, den ansluter det internt till 5v stift. LED på Arduino är ansluten mellan marken och stift 13, så nu finns 5v andra LED, och det kommer att lysa upp.
Vara noga med att inte att kort stift 13 på marken nu, kommer det att skapa en kortslutning!
Du kan se samma funktion som används med låg konstant också, stift 13 ansluts till marken (inuti chipet). Nu finns det ingen spänningsskillnad över LED, och det kommer att gå ut.
I stället för högt och lågt, kunde du också använda 1 och 0, eller sant och falskt.
Arduino referens: digitalWrite
Den senaste funktionen är ett mycket intuitivt: delay(1000)
Det väntar bara på en viss tid, i millisekunder. I det här fallet kommer det vänta 1000 ms eller 1 sekund, innan nästa kommando.
När vi anländer till linje 29, börja vi om på rad 25, eftersom vi är i en slinga.
Sammanfattning:
- I uppsättning, som bara körs en gång när programmet startas, vi sätta stift 13 som en utgång.
- I slingan, vi gör produktionen av led kicken (5v), vänta 1,000ms, göra det låg (0v) och vänta ytterligare andra. Denna loop kommer att upprepas för alltid (åtminstone tills du startar om Arduino, eller ladda upp en annan program)
- / * Detta är en kommentar * / detta är inte
- Detta är inte en kommentar / / detta är en kommentar
- varje uttalande avslutas med semikolon.
- void setup() {} är den funktion som körs en gång, när Arduino startar
- void loop() {} är den funktion som upprepas för alltid, när installationen har körts
- pinMode(pin,OUTPUT); eller pinMode(pin,1), anger angivna PIN-koden som en utgång
- digitalWrite (pin, stat); ställer en viss pin hög (5v) eller låg (0v). Staten kan vara hög eller låg, 1 eller 0, sant eller falskt.
- Delay(Time); väntar på en viss tid, i millisekunder.