Stap 6: Controle van meerdere LEDs met Arduino
In dit voorbeeld we kabellengte tot drie meer LEDs zoals we in het laatste voorbeeld deden, en hen controleren met meerdere digitale pinnen. Eerste draad op drie meer LEDs en huidige beperken weerstanden zoals hieronder getoond:
Als we doorlopen alle de LED's en zet die hen in- en uitschakelen van degene die we onze Arduino schrijven kunnen schets als volgt willen:
//Multi LED Blink int led1Pin = 4; int led2Pin = 5; int led3Pin = 6; int led4Pin = 7; void setup() { //initialize the led pins as an outputs pinMode(led1Pin, OUTPUT); pinMode(led2Pin, OUTPUT); pinMode(led3Pin, OUTPUT); pinMode(led4Pin, OUTPUT); } void loop() { digitalWrite(led1Pin, HIGH);//turn LED on delay(1000);// wait for 1000 milliseconds (one second) digitalWrite(led1Pin, LOW);//turn LED off delay(1000);//wait one second //do the same for the other 3 LEDs digitalWrite(led2Pin, HIGH);//turn LED on delay(1000);// wait for 1000 milliseconds (one second) digitalWrite(led2Pin, LOW);//turn LED off delay(1000);//wait one second digitalWrite(led3Pin, HIGH);//turn LED on delay(1000);// wait for 1000 milliseconds (one second) digitalWrite(led3Pin, LOW);//turn LED off delay(1000);//wait one second digitalWrite(led4Pin, HIGH);//turn LED on delay(1000);// wait for 1000 milliseconds (one second) digitalWrite(led4Pin, LOW);//turn LED off delay(1000);//wait one second }
Dit werkt, en we konden verlaten zoals en alles zou werken prima, maar het is niet de meest efficiënte manier om onze code te schrijven. In plaats daarvan zullen we een structuur genaamd gebruiken een lus doorlopen van de LED's. For-lussen zijn handig voor het herhalen van een stukje code over en voorbij. In het bovenstaande geval bent we herhalen de lijnen:
digitalWrite (led4Pin, hoge);
delay(1000);
digitalWrite (led4Pin, laag);
delay(1000);Hier is hoe we schrijven de for-lus:
voor (int ledPin = 4; ledPin < 8; ledPin ++) {}
digitalWrite (ledPin, hoge);
delay(1000);
digitalWrite (ledPin, laag);
Delay(1000);
}
In de eerste regel we een variabele "ledPin" als 4 initialiseren en vertelt dat de Arduino die wij zou willen doorlopen van de waarden van de variabele basisgewicht van 4 tot 7 (ledPin < 8). De ledPin ++ vertelt de Arduino te verhogen de waarde van ledPin door 1 telkens we de lus herhalen. Dan voeren wij de lijnen binnen de lus met behulp van de variabele ledPin. Dus de eerste keer ledPin = 4, en pin 4 is ingeschakeld en vervolgens uitgeschakeld, dan ledPin wordt verhoogd tot en met 5 en de voor lus weer, deze keer draaien pin 5 aan dan uit, en zo verder begint... Het resultaat is precies hetzelfde als de uitgebreidere schets hierboven, waar we de opdrachten digitalWrite en vertraging vele malen herhaald. Hier is de volledige schets:
//Multi LED Blink int led1Pin = 4; int led2Pin = 5; int led3Pin = 6; int led4Pin = 7; void setup() { //initialize the led pins as an outputs pinMode(led1Pin, OUTPUT); pinMode(led2Pin, OUTPUT); pinMode(led3Pin, OUTPUT); pinMode(led4Pin, OUTPUT); } void loop() { for (int ledPin=4;ledPin<8;ledPin++){//for pins 4-7 digitalWrite(ledPin, HIGH);//turn LED on delay(1000);// wait for 1000 milliseconds (one second) digitalWrite(ledPin, LOW);//turn LED off delay(1000);//wait one second } }