Annonse
Forrige gang jeg forlot deg har stilt opp Komme i gang med Arduino Starter Kit - Installere drivere og sette opp styret og portenSå, du har kjøpt deg et Arduino-startsett, og muligens noen andre tilfeldige kule komponenter - hva nå? Hvordan kommer du faktisk i gang med å programmere denne Arduino-tingen? Hvordan setter du det opp ... Les mer din Arduino for å jobbe med Mac eller Windows, og etter å ha lastet opp en enkel test-app som blinket LED-lampen ombord. I dag skal jeg forklare koden du lastet opp, strukturen til Arduino-programvaren og litt mer om de elektroniske bitene på selve brettet.
Denne artikkelen er del av en introduksjon til Arduino-serien. De andre artiklene i serien så langt er:
- Hva er Arduino, og hva kan du gjøre med det Hva er Arduino og hva kan du gjøre med det?Arduino er et bemerkelsesverdig lite elektronikkapparat, men hvis du aldri har brukt en før, hva er de egentlig, og hva kan du gjøre med en? Les mer ?
- Hva er et Arduino-startpakke, og hva inneholder det? Hva er inkludert i et Arduino Starter Kit? [MakeUseOf Explains]Jeg har tidligere introdusert Arduino open source-maskinvare her på MakeUseOf, men du trenger mer enn bare den faktiske Arduino for å bygge noe ut av det og faktisk komme i gang. Arduino "startpakker" er ... Les mer
- Flere kule komponenter å kjøpe med startpakken 8 kule komponenter til Arduino-prosjektene dineSå du tenker på å skaffe deg et Arduino-startsett, men lurer på om noen grunnleggende LED-er og motstander vil være nok til å holde deg opptatt til helgen? Sannsynligvis ikke. Her er ytterligere 8 ... Les mer
- Komme i gang med Arduino Starter Kit - Installere drivere og sette opp styret og porten Komme i gang med Arduino Starter Kit - Installere drivere og sette opp styret og portenSå, du har kjøpt deg et Arduino-startsett, og muligens noen andre tilfeldige kule komponenter - hva nå? Hvordan kommer du faktisk i gang med å programmere denne Arduino-tingen? Hvordan setter du det opp ... Les mer
Maskinvaren
La oss se nærmere på hva Arduino Uno har når det gjelder biter på kretskortet.
Her er et forstørret diagram for å referere til:
- Langs toppen er det 14 digitale inngangs- / utgangspinner (nummerert 0-13). Dette er de mest allsidige pinnene på Arduino og kan fungere som enten inngang eller utgang, og vil danne kjernen i prosjektene dine. Digital betyr at signalet disse pinnene kan skrive eller lese vil være på eller av.
- 6 av de digitale pinnene, som er merket med tilde-skiltet ~ er i stand til å gjøre det det heter Modulering av pulsbredde. Jeg er ikke elektroingeniør, så jeg vil ikke flau meg over å forklare vitenskapen bak dette, men for deg og jeg det betyr at vi kan tilby en rekke utgangsnivåer - for eksempel å dimme en LED eller kjøre motoren til å variere hastigheter.
- Pin 13 er spesiell ved at den har en innebygd LED. Dette er bare for praktisk og testende formål. Du kan bruke den innebygde LED-en, som du gjorde i Blink-eksempelappen, ved å sende ut til pinne 13 - eller den kan brukes som en standard I / O-pinne.
- Nederst til høyre er det 6 analoge inngangsstifter. Disse vil lese verdien av analoge sensorer som en lysmåler eller variabel motstand.
- Nederst til venstre ved siden av de analoge inngangsstiftene er strømpinner. De eneste du virkelig trenger å bekymre deg for er jordstiftene (GND), 3.3v og 5v kraftledninger.
- Endelig er den eneste bryteren som finnes på Arduino en tilbakestillingsbryter. Dette vil starte hvilket program den har i minnet.
- Arduino har en bestemt mengde minne, og hvis programmet ditt blir for stort, vil kompilatoren gi deg en feil.
Strukturen til et Arduino-program
Hvert Arduino-program består av minst to funksjoner (hvis du ikke vet hva en funksjon er, husk å lese min grunnleggende programmeringsveiledning, del 2 - uttalelser om funksjon og kontroll De absolutte grunnleggende programmene for nybegynnere (del 2)I del 2 av vår absolutte nybegynnerveiledning for programmering vil jeg dekke det grunnleggende om funksjoner, returverdier, løkker og kondisjoner. Forsikre deg om at du har lest del 1 før du takler dette, der jeg forklarte ... Les mer , og del 1 hvor vi diskuterte variabler Grunnleggende om dataprogrammering 101 - variabler og datatyperEtter å ha introdusert og snakket litt om objektorientert programmering før og hvor dens navnebror kommer fra, jeg trodde det er på tide at vi går gjennom de absolutte grunnleggende programmene i et ikke-språklig vei. Dette... Les mer før du fortsetter).
Den første er installasjonsfunksjonen. Dette kjøres først - bare en gang - og brukes til å fortelle Arduino hva som er koblet til og hvor, samt initialisere eventuelle variabler du måtte trenge i programmet ditt.
For det andre er løkken. Dette er kjernen i hvert Arduino-program. Når Arduino kjører, etter at installasjonsfunksjonen er fullført, vil løkken løpe gjennom alle kode, og gjør deretter det hele igjen - til enten strømmen går tapt eller tilbakestillingsbryteren er trykket. Hvor lang tid det tar å fullføre en hel sløyfe avhenger av koden som er inneholdt. Du kan skrive en kode som sier "vent 6 timer", i så fall sløyfen ikke kommer til å gjenta seg veldig ofte.
Her er et raskt tilstandsdiagram for å illustrere:
Undersøker Blink-programmet
Se tilbake på Blink-programkoden og identifiser oppsett- og loopfunksjonene.
Her er oppsettet:
ugyldig oppsett () { // initialiser den digitale pinnen som en utgang. // Pin 13 har en LED tilkoblet på de fleste Arduino-tavler: pinMode (13, OUTPUT); }
Linjene som begynner med // er ganske enkelt kommentarer for å forklare koden til en menneskelig leser, og de blir ikke lastet opp til Arduino. Så faktisk er det bare en linje med oppsettkode i akkurat denne Arduino-appen. Den linjen sier “Sett pinne 13 til utgangsmodus”. 13, husk, er den innebygde LED-en.
Så er det løkken:
void loop () { digitalWrite (13, HØY); // slå på LED. forsinkelse (1000); // vent et øyeblikk. digitalWrite (13, LAV); // slå av LED. forsinkelse (1000); // vent et øyeblikk. }
Kommentarene på slutten av hver kodelinje forklarer deres funksjon ganske godt. HØY og LAV refererer til PÅ og AV tilstand for en digital utgang - i vårt tilfelle LED. Du kan faktisk skrive ON eller OFF i koden også, begge er synonyme (som 0 og 1 også). Forsinkelse ber Arduino om å vente litt, i dette tilfellet 1000 millisekunder (eller 1 sekund).
Til slutt en merknad om programmeringsspråket som brukes her. Legg merke til at både oppsett- og loopfunksjoner har ordet tomrom før dem. Dette er et spesielt ord for ingenting, fordi funksjonen gir ingenting tilbake når det heter - det kjører ganske enkelt koden som er inne i. La oss for øyeblikket la det være ved å si at funksjonens blokkering av kode er omsluttet av krøllete seler {}, og at hver kodelinje må slutte med en; semikolon.
Prøv å endre det grunnleggende programmet på en eller annen måte ved å endre de nøyaktige forsinkelsesverdiene til noe større eller mindre. Se hvor lite du kan få det til før blinkingen ikke lenger er merkbar. Arbeid med hvilken verdi du vil endre for å få den til å holde på lenger, eller å være av lenger. Prøv å legge til noen flere digitalWrite- og forsinkelsesuttalelser i loopfunksjonen for å lage et mer komplekst blinkende mønster som morskode for SOS. Hvis du har en summer, kan du prøve å koble den til pinner 13 og GND også (hint: den røde ledningen går til 13, svart til bakken).
Det var alt for i dag. Neste gang legger vi til noen flere LED-er og skriver vår egen applikasjon fra bunnen av. Som alltid, kommentarer og deler mye verdsatt. Jeg kan ikke forestille meg at du skulle ha noen problemer med koden du refererer til i dag, men hvis du har prøvd å justere koden litt og får feil eller uventet oppførsel, legg det gjerne inn i kommentarene, og vi får se om vi kan jobbe gjennom det sammen.
James har en BSc i kunstig intelligens, og er CompTIA A + og Network + sertifisert. Han er hovedutvikler av MakeUseOf, og bruker fritiden sin på å spille VR paintball og brettspill. Han har bygd pc-er siden han var liten.