
Michael Fisher
0
2671
538
Sidste gang jeg forlod dig, havde du konfigureret Kom godt i gang med dit Arduino Starter Kit - Installation af drivere & Opsætning af Board & Port Kom godt i gang med dit Arduino Starter Kit - Installation af Drivere og Opsætning af Board & Port Så du har købt dig en Arduino starter kit, og muligvis nogle andre tilfældige cool komponenter - hvad nu? Hvordan kommer du faktisk i gang med programmeringen af denne Arduino-ting? Hvordan konfigurerer du det ... din Arduino til at arbejde med Mac eller Windows og har uploadet en simpel testapp, der blinkede LED-indbygget. I dag skal jeg forklare koden, du uploadede, strukturen af Arduino-software og lidt mere om de elektroniske bits på selve tavlen.
Denne artikel er del af en introduktion til Arduino-serien. De andre artikler i serien indtil videre er:
- Hvad er Arduino, og hvad kan du gøre med det Hvad er Arduino & hvad kan du gøre med det? Hvad er Arduino og hvad kan du gøre med det? Arduino er en bemærkelsesværdig lille elektronik, men hvis du aldrig har brugt en før, hvad er de nøjagtigt, og hvad kan du gøre med en? ?
- Hvad er et Arduino-startkit, og hvad indeholder det? Hvad er der inkluderet i et Arduino Starter Kit? [MakeUseOf Explains] Hvad er der inkluderet i et Arduino Starter Kit? [MakeUseOf forklarer] Jeg har tidligere introduceret Arduino open source-hardware her på MakeUseOf, men du har brug for mere end bare den faktiske Arduino for at bygge noget ud af det og faktisk komme i gang. Arduino "starter sæt" er ...
- Flere seje komponenter du kan købe med dit startsæt 8 Flere seje komponenter til dine Arduino-projekter 8 Flere seje komponenter til dine Arduino-projekter Så overvejer du at få et Arduino-startkit, men spekulerer på, om nogle basale LED'er og modstande vil blive nok til at holde dig travlt i weekenden? Sikkert ikke. Her er endnu 8 ...
- Kom godt i gang med dit Arduino Starter Kit - Installation af drivere og opsætning af tavlen og porten Kom godt i gang med dit Arduino Starter Kit - Installation af drivere og opsætning af Board & Port Kom godt i gang med dit Arduino Starter Kit - Installation af drivere og installation af tavlen & Port Så, du har købt dig et Arduino-startkit, og muligvis nogle andre tilfældige seje komponenter - hvad nu? Hvordan kommer du faktisk i gang med programmeringen af denne Arduino-ting? Hvordan konfigurerer du det ...
Hardwaren
Lad os se nærmere på hvad Arduino Uno har med hensyn til bits på printkortet.
Her er et forstørret diagram til at henvise til:
- Langs toppen er der 14 digitale indgangs- / udgangsstifter (nummereret 0-13). Dette er de mest alsidige ben på din Arduino og kan fungere som enten input eller output, og vil danne kernen i dine projekter. Digital betyder, at signalet, som disse stifter kan skrive eller læse, vil være tændt eller slukket.
- 6 af disse digitale stifter, der er markeret med tilde-tegnet ~ er i stand til at gøre, hvad det kaldes Pulse Width Modulation. Jeg er ikke elektroingeniør, så jeg vil ikke forkæle mig ved at forklare videnskaben bag dette, men for dig og jeg betyder det, at vi kan levere en række udgangsniveauer - for eksempel at dæmpe en LED eller køre en motor i forskellige hastigheder.
- Pin 13 er speciel, idet den har en indbygget LED. Dette er kun for nemheds skyld og testformål. Du kan bruge den indbyggede LED, som du gjorde i appen Blink eksempel, ved blot at sende til pin 13 - eller den kan bruges som en standard I / O-pin.
- Nederst til højre er 6 analoge indgangsstifter. Disse vil læse værdien af analoge sensorer, såsom en lysmåler eller variabel modstand.
- Nederst til venstre ved siden af de analoge indgangsstifter er strømstifter. De eneste, du virkelig skal bekymre dig om, er jordstifterne (GND), 3,3V og 5V strømledninger.
- Endelig er den eneste switch, der findes på Arduino, en nulstillingskontakt. Dette genstarter uanset hvilket program det har i sin hukommelse.
- Arduino har en bestemt mængde hukommelse, og hvis dit program bliver for stort, giver compileren dig en fejl.
Strukturen i et Arduino-program
Hvert Arduino-program består af mindst to funktioner (hvis du ikke ved, hvad en funktion er, skal du læse min grundlæggende programmeringsvejledning, del 2 - erklæringer om funktion og kontrol De absolutte basics for programmering for begyndere (del 2) De absolutte grundlæggende programmering for begyndere (del 2) I del 2 i vores absolutte begynderguide til programmering vil jeg dække det grundlæggende om funktioner, returneringsværdier, loops og conditionals. Sørg for, at du har læst del 1, før du tackle dette , hvor jeg forklarede…, og del 1, hvor vi drøftede variabler Grundlæggende om computerprogrammering 101 - variabler og datatyper Grundlæggende om computerprogrammering 101 - variabler og datatyper Efter at have introduceret og snakket lidt om objektorienteret programmering før, og hvor dens navnebror kommer fra, jeg troede, det er på tide, at vi gennemgår de absolutte grundlæggende programmering på en ikke-sprogspecifik måde. Dette ... inden vi fortsætter).
Den første er opsætningsfunktionen. Dette køres oprindeligt - kun én gang - og bruges til at fortælle Arduino, hvad der er tilsluttet og hvor, samt initialisere alle variabler, du måtte have brug for i dit program.
For det andet er løkken. Dette er kernen i ethvert Arduino-program. Når Arduino kører, efter at opsætningsfunktionen er afsluttet, løber løkken igennem hele koden, og gør derefter det hele igen - indtil enten enten strømmen går tabt eller resetkontakten trykkes ned. Hvor lang tid det tager at gennemføre en fuld løkke afhænger af den indeholdte kode. Du skriver muligvis en kode, der siger “vent 6 timer”, i hvilket tilfælde loopen ikke gentager sig meget ofte.
Her er et hurtigt tilstandsdiagram for at illustrere:
Undersøgelse af Blink-programmet
Se tilbage på Blink-programkoden, og identificer opsætnings- og loopfunktionerne.
Her er opsætningen:
void setup () // initialiser den digitale pin som en output. // Pin 13 har en LED tilsluttet på de fleste Arduino-plader: pinMode (13, OUTPUT);
Linjerne, der begynder med // er blot kommentarer til at forklare koden til en menneskelig læser, og de bliver ikke uploadet til Arduino. Så der er faktisk kun en linje med opsætningskode i denne særlige Arduino-app. Den linje siger “Indstil stiften 13 til outputtilstand”. 13, husk, er den indbyggede LED.
Så er der løkken:
void loop () digitalWrite (13, HØJ); // sæt LED på forsinkelse (1000); // vent på en anden digitalWrite (13, LAV); // Sæt LED-forsinkelse (1000); // vent et øjeblik
Kommentarerne i slutningen af hver kodelinie forklarer deres funktion ganske godt. HØJ og lav refererer til ON og OFF tilstand for en digital udgang - i vores tilfælde LED. Du kan faktisk også skrive ON eller OFF i koden, begge er synonyme (som 0 og 1 også). Forsinke siger Arduino at vente lidt i dette tilfælde 1000 millisekunder (eller 1 sekund).
Endelig en note om det programmeringssprog, der bruges her. Bemærk, at både opsætnings- og loopfunktioner har ordet ugyldig foran dem. Dette er et specielt ord til ikke noget, fordi funktionen giver intet tilbage når det kaldes - kører det simpelthen koden indeholdt i. Lad os nu lade det være ved at sige, at funktionens kodeblok er lukket af krøllede seler , og at hver kodelinje skal slutte med a; semikolon.
Prøv at ændre det grundlæggende program på en eller anden måde ved at ændre de nøjagtige forsinkelsesværdier til noget større eller mindre. Se, hvor lille du kan få den ned til, før blinkingen ikke længere er mærkbar. Find ud af, hvilken værdi der skal ændres for at få den til at forblive i længere tid, eller til at holde sig i længere tid. Prøv at tilføje nogle flere digitalWrite- og forsinkelsesangivelser i loopfunktionen for at skabe et mere komplekst blinkende mønster som morskoden for SOS. Hvis du har en summer, kan du prøve at forbinde den til stifter 13 og GND også (tip: den røde ledning går til 13, sort til jord).
Det er alt for i dag. Næste gang tilføjer vi nogle flere LED'er og skriver vores egen applikation fra bunden. Som altid er kommentarer og dele meget værdsat. Jeg kan ikke forestille mig, at du ville have problemer med den kode, der er omtalt i dag, men hvis du har forsøgt at justere koden lidt og løber ind i fejl eller uventet opførsel, er du velkommen til at lægge den i kommentarerne, og vi vil se hvis vi kan arbejde igennem det sammen.