Et Arduino-projekt Hvordan man fremstiller prangende julelyspynt

  • Edmund Richardson
  • 0
  • 1692
  • 28
Reklame

Dette er den næste del i vores Arduino-serie, og denne gang lærer vi og bruger Arrays at lave et lille juletræornament med forskellige blinkende sekvenser. Dette ville være et ideelt projekt til at holde børnene optaget, hvis du gerne vil undervise dem i grundlæggende lodning - bare monter LED'erne på et kort, og du kan få strøm fra et standard 9v batteri.

Det er også en nøgle lektion i Arduino-begynderprogrammering, selvom hvis du ikke planlægger at bruge dette som ornament, vil jeg kraftigt foreslå, at du alligevel udbreder det.

Bemærk: Dette er en meget nybegyndervejledning, og vi vil bestemt ikke bryde noget nyt - det er? bare en enhed til at lære koncepterne om at bruge Arrays og For løkker at håndtere en stort antal lysdioder (eller andre outputenheder).

Hvis du ikke allerede har det, ville det nu være et godt tidspunkt at følge med på de andre artikler i serien:

  • Hvad er Arduino & 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, der kan købes 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 havnen 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 opsætning af Board & Port Så du har købt dig selv 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 ...
  • Fritzing, et gratis værktøj til at tegne kredsløbsdiagrammer Fritzing - Det ultimative værktøj til at skitsere elektronikprojekter [Cross Platform] Fritzing - Det ultimative værktøj til at skitsere elektronikprojekter [Cross Platform] Selvom det lyder som en alcopop, er Fritzing faktisk en utrolig smule gratis software, du kan bruge til at oprette kredsløb og komponentdiagrammer til brug med hurtige prototyper elektroniktavler såsom den fantastiske open-source Arduino ...
  • Et nærmere kig på strukturen i en Arduino-app & eksemplet Blink-program Første trin med Arduino: Et nærmere kig på kredsløbspladsen og strukturen i et program Første trin med Arduino: Et nærmere kig på kredsløbspladsen og strukturen Af et program Sidste gang forlod jeg dig med at konfigurere din Arduino til at arbejde med Mac eller Windows og have uploadet en simpel testapp, der blinkede LED-indbygget. I dag skal jeg forklare koden ...

Til dette projekt har du mindst brug for 8 eller 9 lysdioder i enten rød eller grøn, a modstand for hver af dem, a breadboard og nogle tilslutningsledninger. Startsættet fra Ooomlout, som jeg for nylig har købt selv og er afbildet i denne tutorial, giver stor værdi for pengene og har flere lysdioder og modstande end du nogensinde har brug for, såvel som kommer med en pæn brødbræt og Arduino etui til at holde tingene ryddelig.

Her er den sidste ting:

Og en video af det i aktion.

Her er et overblik over ledninger fra Fritzing. Det er meget grundlæggende - forbinde bare den positive ledning af LED'erne til benene 2-> hvad (op til stift 13), og forbind de negative ben til jorden inline med en modstand. Den værdi, jeg har brugt her, er 560 ohm. Det er det til ledningsføring.

Tænk på softwaresiden, hvordan du skriver til alle disse LED'er i koden. Du kan gøre det sådan:

int led1 = 2; // første LED på pin 2 int led2 = 3; // sekund på pin 3 // osv osv. void loop () digitalWrite (led1, HIGH); forsinkelse (100); digitalWrite (LED1, LOW); forsinkelse (100); digitalWrite (LED2, HIGH); // etc 

Du skulle være i stand til at se, at med 9 lysdioder, vil dette hurtigt blive trættende. Svaret ligger hos Arrays, som hvis du ikke kan huske vores programmering 101 om grundlæggende datatyper Grundlæggende om computerprogrammering 101 - variabler og datatyper Grundlæggende om computerprogrammering 101 - variabler og datatyper Efter 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 på en ikke-sprogspecifik måde. Dette… - er dybest set bare lister.

Syntaks ser sådan ud (placer dette som den første linje i din kode):

int leds [] = 2,3,4,5,6,7,8,9,10;

De firkantede parenteser angiver, at ”lysene”? variabel bliver en Array. De krøllede seler omslutter listen over pin-numre, som vores matrix har.

For at bruge en matrix skal vi adressere det ved indeksnummeret. Det indeks starter ved 0, og vil derfor altid gå op til 1 mindre end det samlede antal ting deri (så med 9 varer ville den sidste have et indeks på 8).

Du skriver det sådan:

leds [0]

Hvilket i vores tilfælde ville hente nummeret 2, fordi det er det, der er ved indeks 0 i vores array.

Følger indtil videre? Store. Det alene er dog ikke nok for os - vi har også brug for en eller anden måde at itereere over hvert element i vores LED-array. Til det vil vi bruge en til løkke. Syntaks for at gøre det er sådan:

for (startvariabel; betingelse, under hvilken vi gentager igen; skift til variabel hver iteration)

For eksempel:

for (int i = 0; i<9; i++)

Som siger

  • start denne loop med en variabel, jeg, som har en værdi af nul
  • fortsæt kun med looping, mens jeg er mindre end 9?(således: 0,1,2,3,4,5,6,7,8)
  • hver gang, tilføj 1 til i (i ++ er en kort måde at sige i = i + 1)

Så dybest set, løkken vil blive gentaget så mange gange, som vi har lysdioder, og hver gang den gentages, vil vi have en variabel, jeg, som vi kan bruge, uanset hvor vi kan lide.

Vi bruger denne struktur to gange til at begynde med. Når du først er inde i installationsfunktionen for at få alle vores stifter til at gå til outputtilstand, som denne:

tom opsætning () for (int i = 0; i< 9;i++) pinMode(leds[i],OUTPUT);  

Kan du se, hvad vi gjorde der? I stedet for at skrive 9 linjer med kode for at erklære hver enkelt pin som output, opretter vi en 'for' loop til at gentage sig selv 9 gange, hver gang vi indstiller en anden pin.

Nu skulle du være i stand til at se, hvordan vi kunne gøre nøjagtigt det samme i hovedprogramsløjfen for at tænde hver LED i rækkefølge:

void loop () for (int i = 0; i< 9;i++) digitalWrite(leds[i],HIGH); delay(100); digitalWrite(leds[i],LOW);  

Prøv det. Du kan downloade den fulde kode til dagens projekt herfra, hvis du hellere ikke vil udskrive det igen (selvom jeg opfordrer dig til det, da det hjælper læringsprocessen).

Okay, så nu har vi en ret kedelig lyssekvens. Lad os programmere et andet. Bare for sjov, lad os gøre det helt tilfældigt. Udskift hovedsløjfekoden med denne:

void loop () int randomLed = random (0,8); digitalWrite (leds [randomLed], HIGH); forsinkelse (50); randomLed = tilfældig (0,8); digitalWrite (leds [randomLed], LOW); 

I stedet for at bruge en 'for' -sløjfe til at itereere over hver LED, vælger vi et tilfældigt tal fra 0-9 i stedet og blinker det på.

Jeg vil lade det være der i dag, da du nu skal være bevæbnet med tilstrækkelig viden til at programmere alle nye sekvenser og eksperimentere med sløjfer. For at bevise, hvor let det hele er, udfordrede jeg min kone til at tænke på en rækkefølge, hun gerne ville se, og så fik?hende til at programmere det selv, kun givet den kode og lektioner, du har haft indtil videre. Hun kom med dette, så se om du kan matche det til hjemmearbejde!

Spørgsmål, forslag, problemer - kontakt venligst kommentarerne.




Endnu ingen kommentarer

Om moderne teknologi, enkel og overkommelig.
Din guide i en verden af moderne teknologi. Lær hvordan du bruger de teknologier og gadgets, der omgiver os hver dag, og lær, hvordan du finder interessante ting på Internettet.