Mainos

arduino jouluvalotTämä on seuraava osa oppimisen Arduino -sarjassa, ja tällä kertaa me? Opitaan ja käytetään taulukot tehdä pieni joulukuusi koristeena erilaisilla vilkkuvilla sekvensseillä. Tämä olisi ihanteellinen projekti pitää lapset miehitetyllä tavalla, jos haluat opettaa heille juottamisen peruskysymyksiä - asenna vain LEDit korttipalaan ja saat virtaa tavallisesta 9v-akusta.

Se on myös avainoppi Arduino-aloittelijoiden ohjelmoinnissa, vaikka et aio käyttää sitä koristeena, suosittelen silti sen leviämistä.

Huomaa: Tämä on hyvin aloittelijan opetusohjelma ja voimme varmasti? t rikkoa mitään uutta pohjaa - se? s? vain laite opettamaan käytön käsitteet taulukot ja Silmukoille käsitellä a suuri määrä LED-valoja (tai muut lähtölaitteet).

Jos sinulla on turvapaikka? t, jo nyt olisi hyvä aika seurata sarjan muita artikkeleita:

  • Mikä on Arduino ja mitä voit tehdä sen kanssa Mikä on Arduino ja mitä voit tehdä sen kanssa?Arduino on huomattava pieni elektroniikkalaite, mutta jos et ole koskaan käyttänyt sitä aikaisemmin, niin mitä ne ovat ja mitä voit tehdä yhdellä? Lue lisää ?
  • Mikä on Arduino-aloituspakkaus ja mitä se sisältää? Mitä sisältyy Arduino-aloituspakettiin? [MakeUseOf selittää]Olen aiemmin esitellyt Arduinon avoimen lähdekoodin laitteiston täällä MakeUseOfilla, mutta tarvitset muutakin kuin pelkkää Arduinoa rakentaaksesi siitä jotain ja aloittaaksesi käytännössä. Arduinon "aloitussarjat" ovat ... Lue lisää
  • Lisää hienoja komponentteja, joita voit ostaa aloituspakkauksesi mukana 8 lisää hienoja komponentteja Arduino-projekteihisiJoten mietitkö Arduino-aloituspakkauksen hankkimista, mutta ihmettelet, riittävätkö jotkut perusmerkkivalot ja vastukset pitämään sinut kiireisenä viikonloppuna? Luultavasti ei. Tässä on vielä 8 ... Lue lisää
  • Aloittaminen Arduino-aloituspakkauksellasi? Ajurien asentaminen ja paneelin ja portin asentaminen Arduino Starter Kit -sovelluksen käytön aloittaminen - Ajurien asentaminen ja hallituksen ja portin asentaminenJoten olet ostanut itsellesi Arduino-aloituspakkauksen ja mahdollisesti muita satunnaisia ​​hienoja komponentteja - mitä nyt? Kuinka itse aloitat tämän Arduino-asian ohjelmoinnin? Kuinka asennat sen ... Lue lisää
  • Fritzing, ilmainen työkalu piirikaavioiden piirtämiseen Fritzing - loistava työkalu elektroniikkaprojektien luonnostamiseen [Cross Platform]Huolimatta siitä, että kuulosti alkopopilla, Fritzing on todella uskomaton pieni osa ilmaisia ​​ohjelmistoja, joiden avulla voit luoda piiri- ja komponenttikaaviot käytettäväksi pikaprototyyppisten elektroniikkalevyjen, kuten fantastisen avoimen lähdekoodin, kanssa Työläs ... Lue lisää
  • Tarkempi kuvaus Arduino-sovelluksen rakenteesta ja esimerkki Blink-ohjelmasta Ensimmäiset vaiheet Arduinon kanssa: Piirilevyn ja ohjelman rakenteen tarkempi tarkasteluViime kerralla jätin sinun määrittäessäsi Arduinon toimimaan Macin tai Windowsin kanssa ja lataamalla yksinkertaisen testisovelluksen, joka vilkkoi ledin merkkivaloa. Tänään aion selittää koodin ... Lue lisää

Tässä projektissa sinä? Tarvitsen ainakin 8 tai 9 LEDiä joko punaisena tai vihreänä, a vastus jokaiselle heistä, a leipälauta ja joitain kytkentäjohtoja. Ooomloutin aloituspakkaus, jonka olen hiljattain ostanut itselleni ja joka on kuvattu tässä opetusohjelmassa, tarjoaa hyvää vastinetta rahalle ja siinä on enemmän LEDiä ja vastuksia kuin sinä? Tarvitsen koskaan, samoin kuin mukana tulevan siisti leipälauta ja Arduino-kotelon pitääksesi asiat siistinä.

Tässä? s viimeinen asia:

arduino jouluvalot

Ja video siitä toiminnassa.

Tässä? s näkymä Fritzingin johdotuksista. Se? s erittäin yksinkertainen - kytke vain ledien positiivinen johto nastaihin 2-> riippumatta (nastaan ​​13 asti) ja kytke negatiiviset jalat maahan suorassa vastuksella. Arvo minä? Tässä käytetty 560 ohmia. Että? s se johdotusta varten.

arduino jouluvalot

Mieti ohjelmistopuolella, kuinka voit kirjoittaa kaikille näille merkeille koodissa. Voisit jatkaa näin:

int led1 = 2; // ensimmäinen LED nasta 2. int led2 = 3; // toinen nasta 3. // etc etc void loop () {digitalWrite (led1, HIGH); viive (100); digitalWrite (led1, LOW); viive (100); digitalWrite (led2, HIGH); // jne. }

Sinun pitäisi pystyä näkemään, että 9 LED: llä tämä on nopeasti väsyttävää. Vastaus on taulukot, mitä jos voit? t muista meidän Ohjelmointi 101 perustietotyypeistä Tietokoneohjelmoinnin perusteet 101 - muuttujat ja tietotyypitEsitellyt ja puhuneet vähän objektiohjatusta ohjelmoinnista aiemmin ja missä sen nimi oli tulee, luulin, että on aika käydä läpi ohjelmoinnin ehdoton perusteet muulla kuin kielellä tapa. Tämä... Lue lisää - ovat periaatteessa vain luetteloita.

Syntaksi näyttää tältä (aseta tämä koodin ensimmäisenä rivinä):

int ledit [] = {2,3,4,5,6,7,8,9,10};

Hakasulkeet osoittavat, että? muuttuja tulee olemaan ryhmä. Kiharaketjut sisältävät luettelon pin-numeroista, joita ryhmämme pitää.

Nyt, jotta voidaan käyttää taulukkoa, meidän on osoitettava siihen indeksinumerolla. indeksi alkaa nollasta, ja on siis aina yhden vähemmän kuin sen sisällä olevien esineiden kokonaismäärä (joten 9 kappaleella viimeisen indeksi olisi 8).

Kirjoitat sen näin:

leds [0]

Mikä meidän tapauksessamme noutaisi numeron 2, koska se? mitä mitä? s hakemistossa indeksillä 0.

Seuraatko toistaiseksi? Loistava. Eikä se yksin ole? t kuitenkin meille tarpeeksi - tarvitsemme myös jonkin verran tapaa iteroida jokaisen LED-ryhmämme elementin yli. Siksi käytämme silmukalle. Tehty syntaksi on seuraava:

for (alkuperäinen muuttuja; tila, jossa toistamme uudelleen; muuttu muuttuvaksi jokaisessa iteraatiossa)

Esimerkiksi:

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

Mikä sanoo

  • aloita tämä silmukka muuttujalla, minä, jonka arvo on nolla
  • jatka silmukointia vain kun olen alle 9? (niin: 0,1,2,3,4,5,6,7,8)
  • joka kerta, lisää 1 kohtaan i (i ++ on lyhyt tapa sanoa i = i + 1)

Joten pohjimmiltaan silmukka toistetaan niin monta kertaa kuin meillä on LEDiä, ja joka kerta? toistuvasti meillä on muuttuja, minä, jota voimme käyttää, vaikka haluamme.

Me? Käytän tätä rakennetta kahdesti aluksi. Kun olet asettunut asetustoimintoon, saadaksesi kaikki nastamme kääntymään lähtötilaan, kuten tämä:

tyhjä asetus () {varten (int i = 0; i <9; i ++) {pinMode (ledit [i], OUTPUT); } }

Näetkö mitä teimme siellä? Sen sijaan, että kirjoittaisimme 9 koodiriviä ilmoittaaksesi jokaisen nastaan ​​tulosteen, luomme 'for' -silmukan, joka toistaa itsensä 9 kertaa, joka kerta asettamalla toisen nastan.

Nyt sinun pitäisi pystyä näkemään, kuinka voimme tehdä täsmälleen saman asian pääohjelmasilmukassa kääntääksesi jokaisen LEDin peräkkäin:

tyhjä silmukka () {varten (int i = 0; i <9; i ++) {digitalWrite (ledit [i], HIGH); viive (100); digitalWrite (ledit [i], LOW); } }

Kokeile sitä. Sinä pystyt lataa tämän päivän projektin täydellinen koodi täältä jos sinä? d Älä kirjoita sitä uudestaan ​​(tosin rohkenen sinua, koska se auttaa oppimisprosessia).

Okei, joten nyt meillä on melko tylsä ​​valaistusjärjestys. Päästää? s toinen ohjelma. Annetaanko vain hauskaa? s tekevät siitä täysin satunnaisen. Korvaa pääsilmukoodi tällä:

tyhjä silmukka () { int randomLed = satunnainen (0,8); digitalWrite (ledit [randomLed], HIGH); viive (50); randomLed = satunnainen (0,8); digitalWrite (ledit [randomLed], LOW); }

Sen sijaan, että käyttäisimme "for" -silmukkaa iteroidaksesi jokaisen LEDin yli, valitsemme sen sijaan satunnaisluku välillä 0–9 ja vilkutamme sitä.

Jätän sen tähän päivään, koska sinulla pitäisi olla nyt riittävästi tietoa kaikkien uusien sekvenssien ohjelmoimiseksi ja silmukoiden kokeiluun. Todistaakseni, kuinka helppoa tämä kaikki on, haastin vaimoni ajattelemaan järjestystä, jonka hän on? haluaisin nähdä, ja sitten sain?hänen ohjelmoida se itse, annetaanko vain koodi ja oppitunnit sinulle? ve on ollut toistaiseksi. Hän keksi tämän, joten katso jos pystyt sovittamaan sen kotitehtäviin!

Kysymyksiä, ehdotuksia, ongelmia - ota yhteyttä kommentteihin.

Jamesilla on teknisen älykunnan kandidaatin tutkinto ja hän on CompTIA A + ja Network + -sertifioitu. Hän on MakeUseOfin johtava kehittäjä ja viettää vapaa-aikansa pelaamalla VR-paintballia ja lautapelejä. Hän on rakennettu tietokoneita lapsuudestaan ​​asti.