Nybörjare Arduino (6 / 15 steg)
Steg 6: Kontrollera flera lysdioder med Arduino
I det här exemplet ska vi tråd upp tre mer lysdioder som vi gjorde i det sista exemplet, och kontrollera dem med flera digitala stift. Första tråd upp tre mer lysdioder och nuvarande begränsa motstånd som visas nedan:
Om vi vill gå igenom alla lysdioder och aktivera dem på och av en genom vi kan skriva våra Arduino skiss som denna:
Multi LED blinkar
int led1Pin = 4;
int led2Pin = 5;
int led3Pin = 6;
int led4Pin = 7.
void setup() {
initiera ledde stiften som ett resultat
pinMode (led1Pin, produktionen);
pinMode (led2Pin, produktionen);
pinMode (led3Pin, produktionen);
pinMode (led4Pin, produktionen);
}
void loop() {
digitalWrite (led1Pin, hög), //turn LED på
Delay(1000); / / vänta på 1000 millisekunder (en sekund)
digitalWrite (led1Pin, låg); //turn LED av
fördröjning (1000); //wait en sekund
gör samma sak för de andra 3 lysdioderna
digitalWrite (led2Pin, hög), //turn LED på
Delay(1000); / / vänta på 1000 millisekunder (en sekund)
digitalWrite (led2Pin, låg); //turn LED av
fördröjning (1000); //wait en sekund
digitalWrite (led3Pin, hög), //turn LED på
Delay(1000); / / vänta på 1000 millisekunder (en sekund)
digitalWrite (led3Pin, låg); //turn LED av
fördröjning (1000); //wait en sekund
digitalWrite (led4Pin, hög), //turn LED på
Delay(1000); / / vänta på 1000 millisekunder (en sekund)
digitalWrite (led4Pin, låg); //turn LED av
fördröjning (1000); //wait en sekund
}
Detta fungerar, och vi kunde lämna det som och allt skulle fungera bra, men det är inte det mest effektiva sättet att skriva vår kod. Vi kommer istället att använda en struktur som kallas en for-loop att cykla genom lysdioder. För loopar är användbara för att upprepa en bit kod om och om igen. I ovanstående fall är vi att upprepa rader:
digitalWrite (led4Pin, hög);
Delay(1000);
digitalWrite (led4Pin, låg);
Delay(1000);här är hur vi ska skriva de for-loop:
för (int ledPin = 4; ledPin < 8; ledPin ++) {
digitalWrite (ledPin, hög);
delay(1000);
digitalWrite (ledPin, låg);
Delay(1000);
}
I den första raden vi initierar en variabel "ledPin" som 4 och tala om för Arduino som vi skulle vilja gå igenom värden för variabeln börjar vid 4, upp till 7 (ledPin < 8). LedPin ++ berättar Arduino att öka värdet av ledPin med 1 varje gång vi upprepa slingan. Sedan kör vi linjerna inuti loop med den rörliga ledPin. Så den första tiden ledPin = 4, och stift 4 är påslagen då avstängd, sedan ledPin ökas till 5 och den för loopen startar igen, denna gången roterande stift 5 å sedan off, och så vidare... Resultatet är exakt samma som den mer detaljerad skissen ovan, där vi upprepade kommandona digitalWrite och dröjsmål många gånger. Här är hela skissen:
Multi LED blinkar
int led1Pin = 4;
int led2Pin = 5;
int led3Pin = 6;
int led4Pin = 7.
void setup() {
initiera ledde stiften som ett resultat
pinMode (led1Pin, produktionen);
pinMode (led2Pin, produktionen);
pinMode (led3Pin, produktionen);
pinMode (led4Pin, produktionen);
}
void loop() {
för (int ledPin = 4; ledPin < 8; ledPin ++) {//for stift 4-7
digitalWrite (ledPin, hög), //turn LED på
Delay(1000); / / vänta på 1000 millisekunder (en sekund)
digitalWrite (ledPin, låg); //turn LED av
fördröjning (1000); //wait en sekund
}
}