Reklame

arduino kredsløbskortSidste gang jeg forlod dig efter at have sat op Kom godt i gang med dit Arduino Starter Kit - Installation af drivere og opsætning af tavlen og havnenSå du har købt dig et Arduino-startpakke og muligvis nogle andre tilfældige, coole komponenter - hvad nu? Hvordan kommer du faktisk i gang med programmeringen af ​​denne Arduino-ting? Hvordan konfigurerer du det ... Læs mere din Arduino til at arbejde med Mac eller Windows, og efter at have uploadet en simpel test-app, der blinkede indbyggede LED. I dag vil 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 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? Læs mere ?
  • Hvad er et Arduino-startkit, og hvad indeholder det?
    instagram viewer
    Hvad er inkluderet i et Arduino Starter Kit? [MakeUseOf Explains]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 ... Læs mere
  • Flere seje komponenter du kan købe med dit startsæt 8 flere seje komponenter til dine Arduino-projekterSå overvejer du at få et Arduino-startkit, men spekulerer på, om nogle grundlæggende LED'er og modstande vil være nok til at holde dig travlt i weekenden? Sikkert ikke. Her er endnu 8 ... Læs mere
  • Kom godt i gang med dit Arduino Starter Kit - Installation af drivere og opsætning af tavlen og havnen Kom godt i gang med dit Arduino Starter Kit - Installation af drivere og opsætning af tavlen og havnenSå du har købt dig et Arduino-startpakke og muligvis nogle andre tilfældige, coole komponenter - hvad nu? Hvordan kommer du faktisk i gang med programmeringen af ​​denne Arduino-ting? Hvordan konfigurerer du det ... Læs mere

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:

arduino kredsløbskort
  • 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 Modulering af pulsbredde. Jeg er ikke elektroingeniør, så jeg generer mig ikke ved at forklare videnskaben bag dette, men for dig og jeg det betyder, at vi kan tilbyde en række udgangsniveauer - for eksempel dæmpning af en LED eller kørsel af en motor til 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 hukommelsesmængde, 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 - udsagn om funktion og kontrol Det absolutte grundlæggende ved programmering for begyndere (del 2)I del 2 af 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 takler dette, hvor jeg forklarede ... Læs mere , og del 1, hvor vi diskuterede variabler Grundlæggende om computerprogrammering 101 - variabler og datatyperEfter at have introduceret og talt 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 i et ikke-sprogspecifikt vej. Det her... Læs mere før du fortsætter).

Den første er opsætningsfunktionen. Dette køres indledningsvis - kun én gang - og bruges til at fortælle Arduino, hvad der er tilsluttet og hvor, samt initialisere de 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 gennem alle kode, og gør derefter det hele igen - indtil enten enten strømmen går tabt eller resetkontakten er trykket. Hvor lang tid det tager at fuldfø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 vil gentage sig meget ofte.

Her er et hurtigt tilstandsdiagram, der illustrerer:

arduino kredsløbskort

Undersøgelse af Blink-programmet

Se tilbage på Blink-programkoden, og identificer opsætnings- og loopfunktionerne.

Her er opsætningen:

ugyldig opsætning () { // initialiser den digitale pin som en output. // Pin 13 har en LED tilsluttet på de fleste Arduino-tavler: pinMode (13, OUTPUT); }

Linjerne, der begynder med // er simpelthen 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. Denne linje siger “Indstil stiften 13 til outputtilstand”. 13, husk, er den indbyggede LED.

Så er der løkken:

void loop () { digitalWrite (13, HØJ); // tænd LED'en. forsinkelse (1000); // vent et øjeblik. digitalWrite (13, LAV); // sluk LED'en. 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 returnerer intet når det kaldes - kører det simpelthen koden indeholdt i. Lad os nu lade det være ved at sige, at funktionens blok af kode er lukket af krøllede seler {}, og at hver kodelinje skal slutte med en; 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 være i længere tid. Prøv at tilføje nogle flere digitalWrite- og forsinkelsesangivelser til loopfunktionen for at skabe et mere komplekst blinkende mønster som morskode til SOS. Hvis du har en summer, kan du prøve at forbinde den til stifter 13 og GND (tip: den røde ledning går til 13, sort til jorden).

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 nogen problemer med den kode, der henvises til i dag, men hvis du har prøvet at justere koden lidt og er løber ind i fejl eller uventet opførsel, er du velkommen til at lægge den i kommentarerne, og vi ser om vi kan arbejde igennem det sammen.

James har en BSc i kunstig intelligens og er CompTIA A + og Network + certificeret. Han er hovedudvikler af MakeUseOf og bruger sin fritid på at spille VR paintball og brætspil. Han har bygget pc'er siden han var barn.