Første trinn med Arduino En nærmere titt på kretskortet og strukturen i et program

Første trinn med Arduino En nærmere titt på kretskortet og strukturen i et program / DIY

Siste gang jeg forlot at du hadde satt opp Komme i gang med ditt 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 porten Så du har kjøpt deg en Arduino starterpakke, og muligens noen andre tilfeldige, kule komponenter - nå hva? Hvordan kommer du faktisk i gang med programmering av denne Arduino-tingen? Hvordan setter du det opp ... Les mer din Arduino å jobbe med Mac eller Windows, og har lastet opp en enkel testapplikasjon som blinket innebygd LED. I dag skal jeg forklare koden du lastet opp, strukturen til Arduino-programvaren, og litt mer om de elektroniske bitene på brettet selv.

Denne artikkelen er en 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? Hva er Arduino og hva kan du gjøre med det? Arduino er en bemerkelsesverdig liten elektronikk enhet, men hvis du aldri har brukt en før, akkurat hva er de, og hva kan du gjøre med en? Les mer ?
  • Hva er et Arduino startpakke og hva inneholder det? Hva er inkludert i en Arduino Starter Kit? [MakeUseOf Forklarer] Hva er inkludert i et Arduino Starter Kit? [MakeUseOf Forklarer] Jeg har tidligere introdusert Arduino open-source hardware her på MakeUseOf, men du trenger mer enn bare den faktiske Arduino å bygge noe ut av det og faktisk komme i gang. Arduino "startpakker" er ... Les mer
  • Flere kule komponenter for å kjøpe med startpakken 8 Flere kule komponenter for dine Arduino-prosjekter 8 Flere kule komponenter for dine Arduino-prosjekter Så du tenker på å få et Arduino-startpakke, men lurer på om noen grunnleggende lysdioder og motstander kommer til å bli nok til å holde deg opptatt i helgen? Sannsynligvis ikke. Her er en annen 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 porten Komme i gang med Arduino Starter Kit - Installere drivere og sette opp styret & Port Så, du har kjøpt deg en Arduino startpakke, og muligens noen andre tilfeldige, kule komponenter - nå hva? Hvordan kommer du faktisk i gang med programmering av denne Arduino-tingen? Hvordan setter du 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). Disse 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-tegnet ~ er i stand til å gjøre det det kalles Pulse Width Modulation. Jeg er ikke en elektroingeniør, så jeg vil ikke skremme meg selv ved å forklare vitenskapen bak dette, men for deg og jeg betyr det at vi kan tilby en rekke utgangsnivåer - for eksempel dimming en LED eller kjøring av en motor med varierende hastigheter.
  • Pin 13 er spesielt ved at den har en innebygd LED. Dette er bare for enkelhets skyld og prøvingsformål. Du kan bruke den innebygde LED-lampen, som du gjorde i Blink eksempel-appen, ved å bare sende ut til pin 13 - eller den kan brukes som standard I / O-pin.
  • Nederst til høyre er det 6 analoge inngangspinner. Disse vil lese verdien av analoge sensorer, slik en lysmåler eller variabel motstand.
  • På bunnen til venstre ved siden av den analoge inngangen, er pinnene stikkontakter. De eneste du virkelig trenger å bekymre deg for er jordstifter (GND), 3.3v og 5v kraftledninger.
  • Endelig er den eneste bryteren som finnes på Arduino, en tilbakestillingsbryter. Dette vil starte på nytt hvilket program det har i minnet.
  • Arduino har en viss mengde minne, og hvis programmet går for stort, vil kompilatoren gi deg en feil.

Strukturen av et Arduino-program

Hvert Arduino-program består av minst to funksjoner (hvis du ikke vet hva en funksjon er, må du lese min grunnleggende programmeringsoppgave, del 2 - funksjon og kontrolloppstillinger. Absolutt grunnleggende programmering for nybegynnere (del 2) Absolutt grunnleggende programmering for nybegynnere (del 2) I del 2 av vår absolutt nybegynnere guide til programmering, vil jeg dekke grunnleggende om funksjoner, returverdier, looper og conditionals. Pass på at du har lest del 1 før du takler dette , hvor jeg forklarte ... Les mer, og del 1 der vi diskuterte variabler Grunnleggende om dataprogrammering 101 - Variabler og datatyper Grunnleggende om dataprogrammering 101 - Variabler og datatyper Etter å ha introdusert og snakket litt om Objektorientert programmering før og hvor navnebror kommer fra, jeg trodde det er på tide vi går gjennom de absolutte grunnleggende programmering på en ikke-språkspesifikk måte. Dette ... Les mer før du fortsetter).

Den første er oppsettfunksjonen. Dette kjøres først - en gang bare - og brukes til å fortelle Arduino hva som er tilkoblet, og hvor, samt initialisering av 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 oppsettfunksjonen er fullført, løper løkken gjennom hele koden, så gjør du det hele igjen - til enten strømmen går tapt eller tilbakestillingsbryteren trykkes. Hvor lang tid det tar å fullføre en full sløyfe, avhenger av koden som er inneholdt. Du kan skrive noen kode som sier “vent 6 timer”, i så fall sløyfen kommer ikke til å gjenta veldig ofte.

Her er et raskt tilstandsdiagram som illustrerer:

Undersøk Blink Programmet

Ta en titt tilbake på Blink-programkoden og identifiser oppsett og loop-funksjonene.

Her er oppsettet:

ugyldig oppsett () // initialiser digitalpinnen som en utgang. // Pin 13 har en LED koblet på de fleste Arduino boards: pinMode (13, OUTPUT); 

Linjene som begynner med // er bare kommentarer for å forklare koden til en menneskelig leser, og de blir ikke lastet opp til Arduino. Så faktisk er det bare en linje med oppsettkoden i denne Arduino-appen. Den linjen sier “Sett pin 13 til utgangsmodus”. 13, husk, er den innebygde LED.

Så er det løkken:

tomromsløyfe () digitalWrite (13, HIGH); // sett lysdioden på forsinkelse (1000); // vent på en annen digitalWrite (13, LOW); // angi LED-forsinkelsen (1000); // vent et sekund

Kommentarene på slutten av hver linje av kode forklarer deres funksjon ganske bra. HIGH og LOW referer til ON og OFF-tilstanden til en digital utgang - i vårt tilfelle lysdioden. Du kan faktisk skrive på eller av i koden også, begge er synonyme (som er 0 og 1 også). Utsette forteller Arduino å vente litt, i dette tilfellet 1000 millisekunder (eller 1 sekund).

Endelig et notat om programmeringsspråket som brukes her. Legg merke til at både oppsett og sløyfe funksjoner har ordet tomrom før dem. Dette er et spesielt ord for ingenting, fordi funksjonen returnerer ingenting når det kalles - det kjører bare koden i. For nå, la oss forlate det ved å si at funksjonens kodeblokk er vedlagt av krøllete braces , og at hver linje av kode må slutte med a; semikolon.

Prøv å endre det grunnleggende programmet på en eller annen måte ved å endre de presise forsinkelsesverdiene til noe større eller mindre. Se hvor liten du kan få det ned til før blinkingen ikke lenger er merkbar. Trene ut hvilke verdier som skal byttes for å få det til å holde seg lenger, eller for å holde seg lenger. Prøv å legge til noen flere digitalWrite og utsette setninger i loop-funksjonen for å lage et mer komplekst blinkende mønster som morse-koden for SOS. Hvis du har en summer, prøv å koble den til pinner 13 og GND også (hint: den røde ledningen går til 13, svart til jord).

Det var alt for i dag. Neste gang legger vi til noen flere lysdioder og skriver vår egen applikasjon fra bunnen av. Som alltid, kommentarer og aksjer mye verdsatt. Jeg kan ikke forestille meg at du vil ha noen problemer med koden som refereres til i dag, men hvis du har forsøkt å justere koden litt og kjører inn i feil eller uventet oppførsel, kan du ikke legge den inn i kommentarene og vi får se hvis vi kan jobbe gjennom det sammen.

Utforsk mer om: Arduino.