Arduino Tutorial Bundle.: Arduino experimenterande Kit:. (ARDX) (4 / 13 steg)

Steg 4:.: 8 LED kul:. (Flera LED) - CIRC02




Vad vi gör:
Vi har orsakat en LED att blinka, nu är dags för att upp insatserna. Kan ansluta åtta. Vi har även en möjlighet att sträcka Arduino lite genom att skapa olika belysning sekvenser. Denna krets är också en trevlig setup att experimentera med skriva egna program och få en känsla för hur Arduino fungerar.

Tillsammans med kontrollera lysdioderna börja vi undersöka några enkla programmering metoder att hålla dina program små.

for() slingor - används när du vill köra en bit kod flera gånger.
matriser [] - används för att göra hantera variabler lättare (det är en grupp av variabler)

(du kan också hämta bladet bakbord layout från botten av detta steg)

Delarna:

  • CIRC-02 bakbord blad
  • 2 stift huvud (x4)
  • 5mm grön LED (x8)
  • 560 ohm Resistor (grön-blå-brun) (x8)

Kretsen och ansluta allt:
En liten Video av allt att vara inkopplad

Koden:

/* --------------------------------------------------------- * | Arduino experimenterande Kit exempel kod | * | CIRC-02.: 8 LED kul:. (Flera LED) | *---** Några enkla LED animationer ** mer information om denna krets http://tinyurl.com/d2hrud * * ///LED Pin Variablesint ledPins [] = {2,3,4,5,6,7,8,9}. En matris att hålla PIN-koden varje LED är ansluten till / / dvs LED #0 är ansluten till stift 2, LED #1, 3 och så på //to adress använder en array ledPins [0] Detta skulle motsvara 2 //and ledPins [7] skulle motsvara 9 / * * setup() - funktionen körs en gång när du slår din Arduino på * vi tre kontroll stiften till utgångarna * / void setup() {//Set varje pin ansluten till ledde till produktionen läge (dra hög (på) eller låg (av) för (int Jag = 0; Jag < 8. i ++) {//this är en loop och kommer att upprepa åtta gånger pinMode(ledPins[i],OUTPUT); //we används för att ange varje LED stift till utgång} //the kod ersätter understiger / * (kommenterade kod inte körs) * Detta är raderna ersätts av den for-slingan ovan de gör exakt det * samma sak en ovan bara använder mindre skriva pinMode (ledPins [0] OUTPUT); pinMode(ledPins[1],OUTPUT); pinMode(ledPins[2],OUTPUT); pinMode(ledPins[3],OUTPUT); pinMode(ledPins[4],OUTPUT); pinMode(ledPins[5],OUTPUT); pinMode(ledPins[6],OUTPUT); pinMode(ledPins[7],OUTPUT); (End of commented Code) * /} / * * loop() - denna funktion startar när installationen är klar och sedan upprepa * vi anropa en funktion som kallas oneAfterAnother(). Om du vill ha ett annorlunda beteende * avkommentera (ta bort två snedstreck) en av de andra raderna * / void loop() / / kör om och om igen {oneAfterAnotherNoLoop(); //this vilja vända på varje LED en efter en då vända bort / / oneAfterAnotherLoop(); //does samma som oneAfterAnotherNoLoop men med mycket mindre att skriva / / oneOnAtATime(); //this vilja vända en LED på då vända den nästa som på //former du inaktiverar (en LED kommer att se ut som det rulla längs linjen / / inAndOut(); //lights den två medelålders lysdioder då flyttar dem ut sedan tillbaka i igen} / * * oneAfterAnotherNoLoop() - kommer att lysa en LED sedan fördröja för fördröjningstid då ljus * nästa LED tills alla lysdioder är på det kommer sedan stänga av dem en efter en annan ** detta gör det utan att använda en slinga som gör för mycket att skriva. * oneOnAtATimeLoop() gör exakt samma sak med mindre att skriva * / void oneAfterAnotherNoLoop() {int fördröjningstid = 100; //the tid (i millisekunder) ska gå mellan lysdioder //make mindre för snabbare växling och större för långsammare digitalWrite (ledPins [0], hög), //Turns på LED #0 (ansluten till stift 2) delay(delayTime), //waits fördröjningstid millisekunder digitalWrite (ledPins [1], hög), //Turns på LED #1 (ansluten till nåla fast 3) delay(delayTime), //waits fördröjningstid millisekunder digitalWrite (ledPins [2] HÖG); Vänder på LED #2 (ansluten till stift 4) delay(delayTime); Waits fördröjningstid millisekunder digitalWrite (ledPins [3], hög); Tänds lysdiod #3 (ansluten till stift 5) delay(delayTime); Waits fördröjningstid millisekunder digitalWrite (ledPins [4], hög); Vänder på LED #4 (ansluten till stift 6) delay(delayTime); Waits fördröjningstid millisekunder digitalWrite (ledPins [5], hög); Vänder på LED #5 (ansluten till stift 7) delay(delayTime); Waits fördröjningstid millisekunder digitalWrite (ledPins [6], hög); Vänder på LED #6 (ansluten till stift 8) delay(delayTime); Waits fördröjningstid millisekunder digitalWrite (ledPins [7], hög); Vänder på LED #7 (ansluten till pin 9) delay(delayTime); väntar fördröjningstid millisekunder //Turns varje LED av digitalWrite (ledPins [7], låg); Vänder på LED #0 (ansluten till stift 2) delay(delayTime); Waits fördröjningstid millisekunder digitalWrite (ledPins [6], låg); Vänder på LED #1 (ansluten till stift 3) delay(delayTime); Waits fördröjningstid millisekunder digitalWrite (ledPins [5], låg); Vänder på LED #2 (ansluten till stift 4) delay(delayTime); Waits fördröjningstid millisekunder digitalWrite (ledPins [4], låg); Tänds lysdiod #3 (ansluten till stift 5) delay(delayTime); Waits fördröjningstid millisekunder digitalWrite (ledPins [3], låg); Vänder på LED #4 (ansluten till stift 6) delay(delayTime); Waits fördröjningstid millisekunder digitalWrite (ledPins [2], låg); Vänder på LED #5 (ansluten till stift 7) delay(delayTime); Waits fördröjningstid millisekunder digitalWrite (ledPins [1], låg); Vänder på LED #6 (ansluten till stift 8) delay(delayTime); Waits fördröjningstid millisekunder digitalWrite (ledPins [0], låg); Vänder på LED #7 (ansluten till pin 9) delay(delayTime); väntar fördröjningstid millisekunder} / * * oneAfterAnotherLoop() - kommer att lysa en LED sedan fördröja för fördröjningstid då ljus * nästa LED tills alla lysdioder är på det kommer sedan stänga av dem en efter en annan ** detta gör det med hjälp av en slinga som gör för en mycket mindre att skriva. * än oneOnAtATimeNoLoop() gör exakt samma sak med mindre att skriva * / void oneAfterAnotherLoop() {int fördröjningstid = 100; //the tid (i millisekunder) ska gå mellan lysdioder //make mindre för snabbare växling och större för långsammare / / aktivera varje LED efter varandra för (int jag = 0; jag < = 7; i ++) {digitalWrite (ledPins [i], hög), //Turns på LED #i varje gång detta kör jag delay(delayTime), //gets en tillsatt till det så upprepas} //8 gånger första gången jag kommer = 0 den sista //time jag kommer att motsvara 7; //Turn var ledde bort en efter en för (int jag = 7; jag > = 0; i--) {//same som ovan men snarare än början på 0 och räknar upp //we börja vid sju och räkna ner digitalWrite (ledPins [i], låg), //Turns av LED #i varje gång detta kör jag delay(delayTime), //gets en subtraheras från det så upprepas} //8 gånger första gången jag kommer = 7 den sista //time jag kommer att vara lika med 0. } / * * oneOnAtATime() - kommer att lätta ledde sedan nästa stänga av alla andra * / void oneOnAtATime() {int fördröjningstid = 100; //the tid (i millisekunder) ska gå mellan lysdioder //make mindre för snabbare växling och större för långsammare för (int jag = 0; jag < = 7; i ++) {int offLED = i - 1; //Calculate som LED vändes på senaste tiden genom if(i == 0) {//for jag = 1 till 7 detta är jag minus 1 (dvs. om jag = 2 kommer vi att offLED = 7. //turn på LED 2 och av LED 1)} //however om jag = 0 vi inte vill vända på led -1 (inte finns) //instead vi stänga av LED 7, (looping runt) digitalWrite (ledPins [i], hög); slå på LED #i digitalWrite (ledPins [offLED], låg); stänga av lampan vi vände på senaste tid delay(delayTime); }} / * * inAndOut() - Detta kommer att slå på de två mellersta lysdioderna då två ut * att göra en in och ut ser * / void inAndOut() {int fördröjningstid = 100; //the tid (i millisekunder) ska gå mellan lysdioder //make mindre för snabbare växling och större för långsammare //runs LEDs ut från mitten för (int jag = 0; jag < = 3; i ++) {int offLED = i - 1; //Calculate som LED vändes på senaste tiden genom if(i == 0) {//for jag = 1 till 7 är Jag minus 1 (dvs. om jag = 2 kommer vi att offLED = 3; //turn på LED 2 och av LED 1)} //however om jag = 0 vi inte vill vända på led -1 (inte finns) //instead vi stänga av LED 7, (looping runt) int onLED1 = 3 - i. Detta är den första lysdioden gå på dvs. Lysdiod #3 när jag = 0 och LED #0 när jag = 3 int onLED2 = 4 + i. Detta är den första lysdioden gå på dvs. Laddningslysdiod #4 när jag = 0 och LED #7 när jag = 3 int offLED1 = 3 - offLED; släcks LED vi vände på sista tiden int offLED2 = 4 + offLED; släcks LED vi vände på senaste tid digitalWrite (ledPins [onLED1], hög); digitalWrite (ledPins [onLED2], hög); digitalWrite (ledPins [offLED1], låg); digitalWrite (ledPins [offLED2], låg); Delay(delayTime); } //runs lysdioder i mitten för (int jag = 3; jag > = 0; i--) {int offLED = i + 1; //Calculate som LED vändes på senaste tiden genom if(i == 3) {//for jag = 1 till 7 detta är jag minus 1 (dvs. om jag = 2 kommer vi att offLED = 0; //turn på LED 2 och av LED 1)} //however om jag = 0 vi inte vill vända på led -1 (inte finns) //instead vi stänga av LED 7 , (looping runt) int onLED1 = 3 - i. Detta är den första lysdioden gå på dvs. Lysdiod #3 när jag = 0 och LED #0 när jag = 3 int onLED2 = 4 + i. Detta är den första lysdioden gå på dvs. Laddningslysdiod #4 när jag = 0 och LED #7 när jag = 3 int offLED1 = 3 - offLED; släcks LED vi vände på sista tiden int offLED2 = 4 + offLED; släcks LED vi vände på senaste tid digitalWrite (ledPins [onLED1], hög); digitalWrite (ledPins [onLED2], hög); digitalWrite (ledPins [offLED1], låg); digitalWrite (ledPins [offLED2], låg); Delay(delayTime); }}

Inte fungerar?

  • Some lysdioder misslyckas med att ljus - det är lätt att infoga en LED bakåt. Kontrollera lamporna som inte fungerar och se till att de på rätt sätt runt.
  • Fungerande fel ordning - med åtta trådar är det lätt att passera ett par. Dubbelkolla som första LED är ansluten till stift 2 och varje pin det efter.
  • Börjar om från början - det är lätt att oavsiktligt tappar bort en tråd utan att märka. Allt, och den börjar med ett färskt blad är ofta lättare än att försöka spåra upp problemet.

Att göra det bättre:
Byte till loopar:
i funktionen loop() finns 4 rader. Sista tre alla börja med en "/ /" Detta innebär raden behandlas som en kommentar (inte köras). Om du vill växla använda ändra loopar void loop() koden för att:

oneAfterAnotherNoLoop(); oneAfterAnotherLoop(); oneOnAtATime(); inAndOut();

Ladda upp programmet, och märker att ingenting har förändrats. Du kan ta en titt på de två funktionerna, alla gör samma sak, men olika metoder (tips för det andra använder en for-loop)

Extra animeringar:
Trött på denna animering? Försök sedan de andra två animeringsexempel. Avkommentera deras linjer och ladda upp programmet till din styrelse och njuta av de nya ljus animationerna. (ta bort snedstrecken framför rad 3 och 4)

Testa din egen animationer:
Hoppa till den medföljande kod och börja förändra saker. Den viktigaste punkten är att vända en LED på användning digitalWrite (pinNumber, hög); sedan att stänga av användning digitalWrite (pinNumber, låg);. Skriv bort, oavsett vad du ändrar du inte kommer att bryta något.

Se Steg
Relaterade Ämnen

Hur du sätter samman "Sele för Arduino/Seeeduino kit" av utsäde Studio

detta instructables är om hur man montera "Sele för Arduino/Seeeduino kit" av utsäde Studio.Selen är en ram till för att hålla en Arduino och ett 9 V batteri.Vad du behöver:"Utnyttja för Arduino/Seeeduino kit" från www.SeeedStudio.comM...

Tryckknapp blinkande lampa

detta instructable förklarar hur man gör en LED enhetslampa att blinka på och av under tio sekunder genom att trycka på knappen. Ljuset kan också stängas av genom att trycka på en separat knapp från.Detta exempel är liknande till "knapp att trycka på...

Praktiker Guide för Arduino som utförs på OIT

resurserAdafruit ARDX - v1.3 experimenterande Kit för ArduinoPraktiker Guide för Arduino (PDF)Bröd styrelsen layouter (PDF)Arduino Tutorial Bundle (Instructable)Denna Arduino handledning kommer att vara mycket liknar Arduino Tutorial bunt Instructabl...

Arduino Chiptune låten

denna handledning är att lära dig om grundläggande Arduino funktionerna, flyback dioder och transistorer. Detta Instructable bygger bort av en krets från Arduino experimenterande Kit.Detta är en bra handledning för alla som börjar med Arduino. Dessa...

Leprechaun fälla!

Den 17 mars kommer runt en gång om året och fånga en leprechaun är alltid på min familjer att göra-lista. Vi utformar ett projekt som kommer att locka i en lömska lilla gröna guld grävare och fånga dem i deras outsläcklig lust för guld. Vi ser fram e...

Creeper Catcher

Någonsin undrar om någon står utanför ditt hem peering i genom fönstret i dörren? Tja, för min instructable, kommer jag att skapa en Creeper Catcher. Detta instructable kommer att meddela dig när någon står på din främre steget. Ingen mer smygande......

Komma igång för Arduino Kit (nybörjare)

Hej är killar, Arduino startpaket som tillhandahålls av ElecFreaks (fokus på öppen hårdvara 4 år) ett bra material att få användare i lärande steg för steg bekvämt. För detta kit, det finns ingen anledning för lödning, Anslut sedan användning, byggan...

Arduino bot Android fjärrkontroll

Hallå där,I detta instructable jag vill undersöka sambandet mellan Arduino och Android. Båda är öppna, lätt-till-program miljö (Ja, Android inte så lätt, men ganska), och samspelet mellan dem låter intressant mänskliga-till-anordning interaktion.Måle...

Cykel - drivna arduino vattenreningssystem (med UVC ljus)

Detta instructable visar hur att driva en UV-C vattenreningssystem med en cykel och arduino kontroll. En dynamo i den bakre delen av cykeln laddar ett batteri (som vi har från början ut redan för detta projekt) som kör arduino och ljuset.De flesta av...

Belysta penna låda med Arduino

Jag hittade en liten trälåda och tänkt på att göra det en trevlig vila för mina pennor. Jag tror det finns flera - kanske enklare och billigare metoder att ändra denna lilla låda - men jag ville bara använda saker jag redan hade hemma.Videolink• Träl...

Paperduino 2.0 med krets Scribe - papper Arduino

vad händer om att göra en Arduino, eller ledningar upp en Arduino var lika enkelt som att skriva en ut? I denna tutorial ut vi vårt eget Arduino Pro Mini styrelsen med en pennplotter och Electroninks krets Scribe (en rollerball penna med mycket ledan...

En Arduino-powered microplate spektrofotometer

Spektrofotometrar är gemensamma delar av utrustning i en bioscience labb. De utför en enkel funktion - för att mäta hur mycket ljus en vätskan absorberar vid en viss våglängd. Många kemikalier absorberar ljus vid inställda våglängden, och så detta ka...

BlueDuino Android kontrollerade Arduino Robot

Till att börja med detta är min första instructable, och min första tutorial övergripande. Med detta sagt påpeka i kommentarerna vad du inte förstår i detta inlägg.För några veckor sedan fick jag nyfiken på hur Bluetooth styra på arduino fungerar, ef...

Hur set av brödunderläggen Arduino kompatibel.

Det är ingen hemlighet att runt oomlout HQ vi är stora fans av open source Arduino mikro-controller. Färdiga Duemilanove styrelsen är en fantastisk prototyping plattform, men ibland det är kul att göra något själv. Vad som följer är en guide om hur a...

En guide för att styra saker med varierande input (via arduino)

hjärtat i detta projekt är en) koppla upp en sensor till arduino analog ingång och b) programmering med if... else-sats.Detta projekt visar en dator kylsystemet för att behålla viss temperatur inom ett dator torn.Jag använde följande produkter och sj...

Arduino Flash Controller för fotografering

är en pank amatörfotograf är inte lätt.Film, kemikalier och papper är inte billigt och en budget för vissa studioljus är obefintlig.Så, jag bestämde mig för att, med hjälp av min trogna arduino, skapa min egen sync controller att använda med engångsk...

USB-brons sätta en klocka på slående klocka (med Arduino)

irritera dina medarbetare: leda dem in i ber dig att stänga av din speciella PC-klocka!Denna lilla riggen infact gränssnitt via USB till din PC-klocka och genererar halv timmar dings på en riktig brons sätta en klocka på. Bra grejer i din office och...

Arduino projekt: Testa spänner LoRa modul RF1276 för GPS-spårning lösning

Anslutning: USB - seriellBehov: Chrome webbläsareBehov: 1 X Arduino MegaBehov: 1 X GPSBehov: 1 X SD-kortBehov: 2 X LoRa Modem RF1276Funktion: Arduino skicka GPS värde till huvudsakliga bas - Main bas lagra data i Dataino Server Lora Module: Ultra lån...

Spela Tetris-spel med Arduino

Utveckla Tetris spelet via Arduino och lär dig att utveckla ett simulerade spel snabbt för att återskapa klassiskt. Tetris spel hjälpa maker att studera användningen av LCD-skärmen och Arduino program.Demo från:Arduino avancerade kit som tillhandahål...