Annons

arduino kretskortFörra gången jag lämnade dig har skapat Komma igång med ditt Arduino-startpaket - Installera drivrutiner och ställa in styrelsen och portenSå du har köpt dig ett Arduino-startpaket och eventuellt andra slumpmässiga coola komponenter - vad nu? Hur kommer du faktiskt igång med att programmera den här Arduino-saken? Hur ställer du in det ... Läs mer din Arduino för att arbeta med Mac eller Windows och ha laddat upp en enkel testapp som blinkade LED-lampan ombord. Idag ska jag förklara koden du laddade upp, strukturen för Arduino-programvaran och lite mer om de elektroniska bitarna på själva brädet.

Den här artikeln är en del av en introduktion till Arduino-serien. De andra artiklarna i serien hittills är:

  • Vad är Arduino och vad kan du göra med det Vad är Arduino och vad kan du göra med det?Arduino är en anmärkningsvärd liten elektronikapparat, men om du aldrig har använt en förut, precis vad är de exakt och vad kan du göra med en? Läs mer ?
  • Vad är ett Arduino-startpaket och vad innehåller det?
    instagram viewer
    Vad ingår i ett Arduino-startpaket? [MakeUseOf Explains]Jag har tidigare introducerat Arduino-open source-hårdvaran här på MakeUseOf, men du kommer att behöva mer än bara själva Arduino för att bygga något ur det och faktiskt komma igång. Arduino "startpaket" är ... Läs mer
  • Fler coola komponenter att köpa med ditt startpaket 8 fler coola komponenter för dina Arduino-projektSå du funderar på att få ett Arduino-startpaket, men undrar om några grundläggande lysdioder och motstånd kommer att räcka för att hålla dig upptagen till helgen? Antagligen inte. Här är ytterligare 8 ... Läs mer
  • Komma igång med ditt Arduino-startpaket - Installera drivrutiner och ställa in styrelsen och porten Komma igång med ditt Arduino-startpaket - Installera drivrutiner och ställa in styrelsen och portenSå du har köpt dig ett Arduino-startpaket och eventuellt andra slumpmässiga coola komponenter - vad nu? Hur kommer du faktiskt igång med att programmera den här Arduino-saken? Hur ställer du in det ... Läs mer

Hårdvaran

Låt oss titta närmare på vad Arduino Uno har när det gäller bitar på kretskortet.

Här är ett förstorat diagram för att hänvisa till:

arduino kretskort
  • Längst upp finns 14 digitala ingångs- / utgångspinnar (numrerade 0-13). Dessa är de mest mångsidiga stiften på din Arduino och kan fungera som antingen input eller output, och kommer att utgöra kärnan i dina projekt. Digital betyder att signalen som dessa stift kan skriva eller läsa kommer att vara på eller av.
  • 6 av de digitala stiften, som är markerade med tilde-skylten ~ kan göra vad det heter Pulsbreddsmodulering. Jag är ingen elektrisk ingenjör så jag generar mig inte genom att förklara vetenskapen bakom detta, men för dig och jag det betyder att vi kan tillhandahålla ett antal utgångsnivåer - till exempel att dimma en lysdiod eller köra en motor på olika sätt hastigheter.
  • Pin 13 är speciellt genom att den har en inbyggd LED. Detta är bara för att underlätta och testa. Du kan använda den inbyggda LED-lampan, som du gjorde i appen Blink-exempel, genom att helt enkelt mata ut till stift 13 - eller så kan den användas som en standard I / O-stift.
  • Längst ner till höger finns 6 analoga ingångsstift. Dessa kommer att läsa värdet på analoga sensorer som en ljusmätare eller variabla motstånd.
  • Längst ner till vänster bredvid de analoga ingångsstiften finns kraftstift. De enda du verkligen behöver oroa dig för är jordstiften (GND), 3,3 V och 5 V kraftledningar.
  • Slutligen är den enda omkopplaren som finns på Arduino en återställningsknapp. Detta kommer att starta om vilket program det har i sitt minne.
  • Arduino har en viss mängd minne, och om ditt program blir för stort kommer kompilatorn att ge dig ett fel.

Strukturen i ett Arduino-program

Varje Arduino-program består av minst två funktioner (om du inte vet vad en funktion är, se till att du läser min grundläggande programmeringshandledning, del 2 - uttalanden om funktion och kontroll De absoluta grunderna i programmering för nybörjare (del 2)I del 2 av vår absoluta nybörjarguide för programmering kommer jag att täcka grunderna i funktioner, returvärden, slingor och balsam. Se till att du har läst del 1 innan du tacklar det här, där jag förklarade ... Läs mer , och del 1 där vi diskuterade variabler Grunderna i datorprogrammering 101 - variabler och datatyperEfter att ha introducerat och pratat lite om objektorienterad programmering innan och var dess namngivare kommer från, jag trodde att det är dags att vi går igenom de absoluta grunderna i programmering på ett icke-språkspecifikt sätt. Detta... Läs mer innan du fortsätter).

Den första är installationsfunktionen. Detta körs initialt - en gång - och används för att berätta för Arduino vad som är anslutet och var, samt initialisera alla variabler du kan behöva i ditt program.

För det andra är slingan. Detta är kärnan i varje Arduino-program. När Arduino körs, efter att installationsfunktionen har slutförts, kommer loopen att gå igenom alla kod, gör sedan hela saken igen - tills antingen antingen strömmen går förlorad eller återställningsomkopplaren är nedtryckt. Hur lång tid det tar att fullfölja en hel slinga beror på koden. Du kanske skriver en kod som säger ”vänta 6 timmar”, i vilket fall slingan inte kommer att upprepa så ofta.

Här är ett snabbt tillståndsdiagram för att illustrera:

arduino kretskort

Undersöka Blink-programmet

Titta tillbaka på Blink-programkoden och identifiera installations- och slingfunktionerna.

Här är installationen:

ogiltig installation () { // initialisera den digitala stiftet som en utgång. // Pin 13 har en LED ansluten på de flesta Arduino-kort: pinMode (13, OUTPUT); }

Raderna som börjar med // är helt enkelt kommentarer för att förklara koden för en mänsklig läsare, och de laddas inte upp till Arduino. Så det finns faktiskt bara en rad med installationskod i den här specifika Arduino-appen. Den raden säger ”Ställ in stift 13 i utgångsläge”. 13, kom ihåg, är den inbyggda LED.

Sedan finns slingan:

void loop () { digitalWrite (13, HÖG); // Sätt på lysdioden. fördröjning (1000); // vänta en sekund. digitalWrite (13, LÅG); // stäng av lysdioden. fördröjning (1000); // vänta en sekund. }

Kommentarerna i slutet av varje kodrad förklarar deras funktion ganska bra. HÖG och LÅG hänvisar till läget ON och OFF för en digital utgång - i vårt fall lysdioden. Du kan faktiskt skriva PÅ eller AV i koden också, båda är synonyma (liksom 0 och 1 också). Fördröjning säger Arduino att vänta lite, i det här fallet 1000 millisekunder (eller 1 sekund).

Slutligen en anteckning om det programmeringsspråk som används här. Lägg märke till att både installations- och loopfunktioner har ordet tomhet före dem. Detta är ett speciellt ord för ingenting, eftersom funktionen returnerar ingenting när det heter - kör det helt enkelt koden i. Låt oss för närvarande lämna det där genom att säga att funktionens kodblock är omslutet av lockiga hängslen {}, och att varje kodrad måste sluta med en; semikolon.

Försök på något sätt ändra det grundläggande programmet genom att ändra de exakta fördröjningsvärdena till något större eller mindre. Se hur litet du kan få ner det innan det blinkande inte längre märks. Räkna ut vilket värde som ska ändras för att få det att hålla på längre eller att stanna av längre. Försök lägga till några fler digitala skriv- och fördröjningssatsningar i loopfunktionen för att skapa ett mer komplext blinkande mönster som morskod för SOS. Om du har en summer kan du försöka ansluta den till stift 13 och GND också (tips: den röda ledningen går till 13, svart till marken).

Det är allt för idag. Nästa gång lägger vi till några fler lysdioder och skriver vår egen applikation från början. Som alltid är kommentarer och aktier mycket uppskattade. Jag kan inte tänka mig att du skulle ha några problem med koden som avses idag, men om du har försökt justera koden något och är stöter på fel eller oväntat beteende, skicka gärna det i kommentarerna så ser vi om vi kan arbeta igenom det tillsammans.

James har en kandidatexamen i artificiell intelligens och är CompTIA A + och Network + certifierad. Han är ledande utvecklare av MakeUseOf och tillbringar sin fritid med att spela VR-paintball och brädspel. Han har byggt datorer sedan han var liten.