Arduino tutorial Arduino Tutorial bundel.: Arduino experimenten Kit:. (ARDX) (4 / 13 stap)

Stap 4:.: 8 LED Fun:. (Meerdere LEDs) - CIRC02



Wat We doen:
We hebben een LED knipperen, nu is het tijd om het spel veroorzaakt. Laat verbinden acht. We hebben ook een gelegenheid om de Arduino een beetje rekken door het creëren van verschillende reeksen van de verlichting. Dit circuit is ook een aardige opstelling te experimenteren met uw eigen programma's schrijven en krijgen een gevoel voor de werking van de Arduino.

Samen met de LEDs regelen beginnen we op zoek naar een paar eenvoudige programmering methoden klein te houden uw programma's.

for() loops - gebruikt als u wilt een stukje code meerdere keren uitvoert.
matrices [] - gebruikt om beheren variabelen gemakkelijker (het is een groep van variabelen)

(u kunt ook de fiche breadboard lay-out van de onderkant van deze stap)

De delen:

  • CIRC-02 Breadboard blad
  • 2 pin Header (x4)
  • 5mm groene LED (x8)
  • 560 ohm weerstand (groen-blauw-bruin) (x8)

Het Circuit en alles inpluggen In:
Een kleine Video van alles wordt aangesloten

De Code:

 /* --------------------------------------------------------- * | Arduino Experimentation Kit Example Code | * | CIRC-02 .: 8 LED Fun :. (Multiple LEDs) | * --------------------------------------------------------- * * A few Simple LED animations * * For more information on this circuit http://tinyurl.com/d2hrud * *///LED Pin Variablesint ledPins[] = {2,3,4,5,6,7,8,9}; //An array to hold the pin each LED is connected to //i.e. LED #0 is connected to pin 2, LED #1, 3 and so on //to address an array use ledPins[0] this would equal 2 //and ledPins[7] would equal 9/* * setup() - this function runs once when you turn your Arduino on * We the three control pins to outputs */void setup(){ //Set each pin connected to an LED to output mode (pulling high (on) or low (off) for(int i = 0; i < 8; i++){ //this is a loop and will repeat eight times pinMode(ledPins[i],OUTPUT); //we use this to set each LED pin to output } //the code this replaces is below /* (commented code will not run) * these are the lines replaced by the for loop above they do exactly the * same thing the one above just uses less typing 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() - this function will start after setup finishes and then repeat * we call a function called oneAfterAnother(). if you would like a different behaviour * uncomment (delete the two slashes) one of the other lines */void loop() // run over and over again{ oneAfterAnotherNoLoop(); //this will turn on each LED one by one then turn each off //oneAfterAnotherLoop(); //does the same as oneAfterAnotherNoLoop but with much less typing //oneOnAtATime(); //this will turn one LED on then turn the next one on turning the //former off (one LED will look like it is scrolling along the line //inAndOut(); //lights the two middle LEDs then moves them out then back in again}/* * oneAfterAnotherNoLoop() - Will light one LED then delay for delayTime then light * the next LED until all LEDs are on it will then turn them off one after another * * this does it without using a loop which makes for a lot of typing. * oneOnAtATimeLoop() does exactly the same thing with less typing */void oneAfterAnotherNoLoop(){ int delayTime = 100; //the time (in milliseconds) to pause between LEDs //make smaller for quicker switching and larger for slower digitalWrite(ledPins[0], HIGH); //Turns on LED #0 (connected to pin 2) delay(delayTime); //waits delayTime milliseconds digitalWrite(ledPins[1], HIGH); //Turns on LED #1 (connected to pin 3) delay(delayTime); //waits delayTime milliseconds digitalWrite(ledPins[2], HIGH); //Turns on LED #2 (connected to pin 4) delay(delayTime); //waits delayTime milliseconds digitalWrite(ledPins[3], HIGH); //Turns on LED #3 (connected to pin 5) delay(delayTime); //waits delayTime milliseconds digitalWrite(ledPins[4], HIGH); //Turns on LED #4 (connected to pin 6) delay(delayTime); //waits delayTime milliseconds digitalWrite(ledPins[5], HIGH); //Turns on LED #5 (connected to pin 7) delay(delayTime); //waits delayTime milliseconds digitalWrite(ledPins[6], HIGH); //Turns on LED #6 (connected to pin 8) delay(delayTime); //waits delayTime milliseconds digitalWrite(ledPins[7], HIGH); //Turns on LED #7 (connected to pin 9) delay(delayTime); //waits delayTime milliseconds //Turns Each LED Off digitalWrite(ledPins[7], LOW); //Turns on LED #0 (connected to pin 2) delay(delayTime); //waits delayTime milliseconds digitalWrite(ledPins[6], LOW); //Turns on LED #1 (connected to pin 3) delay(delayTime); //waits delayTime milliseconds digitalWrite(ledPins[5], LOW); //Turns on LED #2 (connected to pin 4) delay(delayTime); //waits delayTime milliseconds digitalWrite(ledPins[4], LOW); //Turns on LED #3 (connected to pin 5) delay(delayTime); //waits delayTime milliseconds digitalWrite(ledPins[3], LOW); //Turns on LED #4 (connected to pin 6) delay(delayTime); //waits delayTime milliseconds digitalWrite(ledPins[2], LOW); //Turns on LED #5 (connected to pin 7) delay(delayTime); //waits delayTime milliseconds digitalWrite(ledPins[1], LOW); //Turns on LED #6 (connected to pin 8) delay(delayTime); //waits delayTime milliseconds digitalWrite(ledPins[0], LOW); //Turns on LED #7 (connected to pin 9) delay(delayTime); //waits delayTime milliseconds }/* * oneAfterAnotherLoop() - Will light one LED then delay for delayTime then light * the next LED until all LEDs are on it will then turn them off one after another * * this does it using a loop which makes for a lot less typing. * than oneOnAtATimeNoLoop() does exactly the same thing with less typing */void oneAfterAnotherLoop(){ int delayTime = 100; //the time (in milliseconds) to pause between LEDs //make smaller for quicker switching and larger for slower//Turn Each LED on one after another for(int i = 0; i <= 7; i++){ digitalWrite(ledPins[i], HIGH); //Turns on LED #i each time this runs i delay(delayTime); //gets one added to it so this will repeat } //8 times the first time i will = 0 the final //time i will equal 7;//Turn Each LED off one after another for(int i = 7; i >= 0; i--){ //same as above but rather than starting at 0 and counting up //we start at seven and count down digitalWrite(ledPins[i], LOW); //Turns off LED #i each time this runs i delay(delayTime); //gets one subtracted from it so this will repeat } //8 times the first time i will = 7 the final //time i will equal 0; }/* * oneOnAtATime() - Will light one LED then the next turning off all the others */void oneOnAtATime(){ int delayTime = 100; //the time (in milliseconds) to pause between LEDs //make smaller for quicker switching and larger for slower for(int i = 0; i <= 7; i++){ int offLED = i - 1; //Calculate which LED was turned on last time through if(i == 0) { //for i = 1 to 7 this is i minus 1 (i.e. if i = 2 we will offLED = 7; //turn on LED 2 and off LED 1) } //however if i = 0 we don't want to turn of led -1 (doesn't exist) //instead we turn off LED 7, (looping around) digitalWrite(ledPins[i], HIGH); //turn on LED #i digitalWrite(ledPins[offLED], LOW); //turn off the LED we turned on last time delay(delayTime); }}/* * inAndOut() - This will turn on the two middle LEDs then the next two out * making an in and out look */void inAndOut(){ int delayTime = 100; //the time (in milliseconds) to pause between LEDs //make smaller for quicker switching and larger for slower //runs the LEDs out from the middle for(int i = 0; i <= 3; i++){ int offLED = i - 1; //Calculate which LED was turned on last time through if(i == 0) { //for i = 1 to 7 this is i minus 1 (i.e. if i = 2 we will offLED = 3; //turn on LED 2 and off LED 1) } //however if i = 0 we don't want to turn of led -1 (doesn't exist) //instead we turn off LED 7, (looping around) int onLED1 = 3 - i; //this is the first LED to go on ie. LED #3 when i = 0 and LED #0 when i = 3 int onLED2 = 4 + i; //this is the first LED to go on ie. LED #4 when i = 0 and LED #7 when i = 3 int offLED1 = 3 - offLED; //turns off the LED we turned on last time int offLED2 = 4 + offLED; //turns off the LED we turned on last time digitalWrite(ledPins[onLED1], HIGH); digitalWrite(ledPins[onLED2], HIGH); digitalWrite(ledPins[offLED1], LOW); digitalWrite(ledPins[offLED2], LOW); delay(delayTime); } //runs the LEDs into the middle for(int i = 3; i >= 0; i--){ int offLED = i + 1; //Calculate which LED was turned on last time through if(i == 3) { //for i = 1 to 7 this is i minus 1 (i.e. if i = 2 we will offLED = 0; //turn on LED 2 and off LED 1) } //however if i = 0 we don't want to turn of led -1 (doesn't exist) //instead we turn off LED 7, (looping around) int onLED1 = 3 - i; //this is the first LED to go on ie. LED #3 when i = 0 and LED #0 when i = 3 int onLED2 = 4 + i; //this is the first LED to go on ie. LED #4 when i = 0 and LED #7 when i = 3 int offLED1 = 3 - offLED; //turns off the LED we turned on last time int offLED2 = 4 + offLED; //turns off the LED we turned on last time digitalWrite(ledPins[onLED1], HIGH); digitalWrite(ledPins[onLED2], HIGH); digitalWrite(ledPins[offLED1], LOW); digitalWrite(ledPins[offLED2], LOW); delay(delayTime); }} 

Niet werkt?

  • Sommige LED's falen aan het licht - het is gemakkelijk om te voegen een LED achteruit. De LEDs die niet werken en ervoor te zorgen zij op de juiste manier rond controleren.
  • Operating verkeerde volgorde - met acht draden is het gemakkelijk om een paar steken. Dubbel te controleren dat de eerste LED is aangesloten op pin 2 en elke pin er na.
  • Opnieuw beginnen - zijn gemakkelijk te misplaatsen per ongeluk een draad zonder het te merken. Trekken alles uit en beginnen met een frisse Lei is vaak gemakkelijker dan proberend om het opsporen van het probleem.

Waardoor het beter:
Over te schakelen naar Loops:
Er zijn 4 lijnen in de loop-functie. De laatste drie alle beginnen met een ' / /' Dit betekent dat de regel wordt behandeld als een commentaar (niet uitgevoerd). Om over te schakelen van het programma te gebruiken lussen de void loop code wijzigen om:

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

Uploaden van het programma, en opmerken dat er niets veranderd. U kunt een kijkje nemen op de twee functies, elk doet het zelfde ding, maar gebruiken verschillende benaderingen (hint naar de tweede men gebruikt een for-lus)

Extra animaties:
Moe van deze animatie? Probeer dan de andere twee voorbeelden van animaties. Uncomment hun lijnen en het programma uploaden naar je board en geniet van de nieuwe lichte animaties. (Verwijder de slashes voor rij 3 en 4)

Testen van uw eigen animaties:
Springen in de opgenomen code en beginnen met het veranderen van dingen. Het belangrijkste punt is om te schakelen van een LED op gebruik digitalWrite (pinNumber, hoge); vervolgens voor zwenking op vandoor gebruik digitalWrite (pinNumber, laag);. Type weg, ongeacht wat u wijzigt u om het even wat niet breken.

Gerelateerde Artikelen

Arduino experimenten (Superformaat Instructable)

Arduino experimenten (Superformaat Instructable)

Massa's, zo niet alle Arduino experimenten gedaan op mijn manier, die wordt iedereen carry van uit naar de volgende persoon verschillende experimenten hebben als zodanig dit instructable zal een heleboel video's, en foto's evenals gedetailleerde besc
Hoe de "harnas voor Arduino/Seeeduino kit" te monteren door zaad Studio

Hoe de "harnas voor Arduino/Seeeduino kit" te monteren door zaad Studio

deze instructables is op hoe de "harnas voor Arduino/Seeeduino kit" door zaad Studio te monteren.Het harnas is een frame ontworpen om te houden van een Arduino en een 9 V batterij pack.Wat die u nodig hebt:"Benutten voor Arduino/Seeeduino k
Drukknop knipperend licht

Drukknop knipperend licht

dit instructable wordt uitgelegd hoe u een LED licht knipperen in- en uitschakelen voor tien seconden door op te drukken.  Het licht kan ook worden uitgeschakeld door een afzonderlijke uit-knop in te drukken.In dit voorbeeld is vergelijkbaar met het
Onderzoekers gids voor Arduino als uitgevoerd op OIT

Onderzoekers gids voor Arduino als uitgevoerd op OIT

middelenAdafruit ARDX - v1.3 experimenten Kit voor ArduinoOnderzoekers gids voor Arduino (PDF)Brood bord lay-outs (PDF)Arduino tutorial Arduino Tutorial bundel (Instructable)Deze Arduino Tutorial is gonna be zeer vergelijkbaar met de Arduino Tutorial
Arduino Chiptune Song

Arduino Chiptune Song

deze tutorial is om je te leren over transistoren, flyback dioden en basisfuncties van de Arduino. Dit Instructable is gebaseerd off van een circuit uit de Arduino experimenten Kit.Dit is een goede tutorial voor iedereen beginnen met Arduino. Deze on
Klimplant Catcher

Klimplant Catcher

Ooit wonder als iemand buiten uw huis "peering" door het raam in de deuropening staat? Nou, voor mijn instructable, ik zal het creëren van een Creeper Catcher. Dit instructable laat u weten wanneer iemand op uw front stap staat. Niet meer kruipe
Kabouter Trap!

Kabouter Trap!

17 maart komt rond eenmaal per jaar en een kabouter overvulling is altijd op mijn familie te doen lijst. We zijn het ontwerpen van een project dat zal lokken in een stiekeme kleine groene gold digger en trap ze in hun onuitblusbaar lust voor goud. We
Aan de slag van Arduino Kit (Absolute Beginner)

Aan de slag van Arduino Kit (Absolute Beginner)

Hallo is kerels, de Arduino Starter Kit geleverd door ElecFreaks (focus op Open hardware 4 jaar) een groot materiaal om gebruikers in het leren van stapsgewijze gunstig. Voor deze kit, er is geen noodzaak voor het solderen, steek gebruik, de aanleg v
Fiets - aangedreven arduino waterzuiveringsinstallatie (met UVC licht)

Fiets - aangedreven arduino waterzuiveringsinstallatie (met UVC licht)

Dit instructable toont hoe de macht van een UV-C waterzuivering met een fiets en arduino controle. Een dynamo aan de achterzijde van de fiets laadt een batterij (die wij hebben in eerste instantie al betalen voor dit project), die loopt van de arduin
Arduino all-in-One Getting Started Guide

Arduino all-in-One Getting Started Guide

een alles-in-één tutorial aan de slag met de Arduino open-source elektronica prototyping platform. Deze handleiding is bedoeld voor de beginner, maar moet ook worden nuttig voor u als u al met elektronica prutsen maar wilt aan de slag met de Arduino.
Paperduino 2.0 met Circuit Scribe - papier Arduino

Paperduino 2.0 met Circuit Scribe - papier Arduino

wat als het maken van een Arduino of bedrading van een Arduino net zo eenvoudig was als het afdrukken van een uit? In deze tutorial afgedrukt we onze eigen Pro Mini Arduino board met behulp van een penplotter en het Electroninks Circuit Scribe (een r
Arduino bot Android afstandsbediening

Arduino bot Android afstandsbediening

Hallo daar,In dit instructable wil de verbinding tussen de Arduino en Android verkennen. Beide zijn open, gemakkelijk-aan-programma omgeving (Nou ja, Android niet zo eenvoudig, maar heel), en de interactie tussen hen interessante human-to-device inte
Arduino SDcard eenvoudige Wav speler 2

Arduino SDcard eenvoudige Wav speler 2

Eerder introduceerden we "Arduino eenvoudige Wav speler", die eigenlijk niet de naam "wav player" verdient omdat het niet flexibel is helemaal voor de beperking van Arduino flash. Deze tutorial en set van kits, vormt een aanvulling op
BlueDuino de Android gecontroleerd Arduino Robot

BlueDuino de Android gecontroleerd Arduino Robot

Om te beginnen dit is mijn eerste instructable, en mijn eerste tutorial algemene. Met dit gezegd wijzen in de commentaren wat u in dit bericht niet begreep.Een paar weken geleden kreeg ik nieuwsgierig over hoe Bluetooth controleren op arduino werkt,