-Arduino UNO
-Rode LEDs x11
-1K ohm weerstanden x11
-Een potentiometer van 10K
-Veel hookup draad
Aan het meer klantgericht te maken en toe te voegen wat input voor het voegde ik een potentiometer (potmeter) als u wilt controleren de snelheid van het scannen. Hier is een video:
Om te bouwen van het circuit neemt niet veel tijd of kennis. Sluit de LED's kathode aan de grond op het breadboard. Vervolgens elke LED verbinden met een weerstand op het breadboard en maken de weerstanden verbinden met de pinnen van de Arduino. Sluit ze in volgorde met de lijn van LEDs overeenkomstig de nummers van de pinnen. Beginnen met pin 2 en sluit ze in volgorde. Sluit de grond pin op de Arduino aan op het spoor van de grond op het breadboard te verbinden alle de LEDs op grond. Dan alle van de LEDs zijn aangesloten en zijn tijd voor de potmeter moet worden verbonden.
Aan sluit de potentiometer nemen de buitenste twee draden en een aan de grond en een met 5v. Welke maakt niet uit dat het enige verschil is dat u hebben zal om te schakelen van de potentiometer een andere manier. Vervolgens de middelste draad die u wilt verbinden met A0 pin op de Arduino. Nu de verbindingen zijn allemaal gedaan en zijn tijd om naar de programmering op!
Hier is de code:
int ledPins [] {} =
2,3,4,5,6,7,8,9,10,11,12}; Maak een array van de pin-nummers
int pinCount = 11; variabele voor het aantal LEDs
int timer = 10; vertraging tussen LED in- en uitschakelen
VOID Setup {}
voor (int thisPin = 0; thisPin < pinCount; thisPin ++) {//for lus om setup al de pinnen in de matrix ledPins
pinMode (ledPins [thisPin], OUTPUT);
}
}
void loop {}
voor (int thisPin = 0; thisPin < pinCount; thisPin ++) {//for lus door alle LEDs in serie te gaan en ze inschakelen
timer = analogRead(A0) / 2; en uit tot einde van regel in één richting
digitalWrite (ledPins [thisPin], hoge);
digitalWrite (ledPins [thisPin] + 1, hoge);
digitalWrite (ledPins [thisPin] + 2, HIGH);
delay(timer);
timer = analogRead(A0) / 2; Luiden naar de waarde van de potentiometer (potmeter) en gedeeld door twee om vertraging
digitalWrite (ledPins [thisPin], laag);
digitalWrite (ledPins [thisPin] + 1, laag);
digitalWrite (ledPins [thisPin] + 2, laag);
timer = analogRead(A0) / 2;
}
voor (int thisPin = pinCount - 1; thisPin > = 0; thisPin--) {//for lus doorlopen alle LEDs opnieuw tegenover richting
timer = analogRead(A0) / 2;
digitalWrite (ledPins [thisPin], hoge);
digitalWrite (alleen de ledPins [thisPin] - 1, hoge);
digitalWrite (alleen de ledPins [thisPin] - 2, HIGH);
delay(timer);
timer = analogRead(A0) / 2;
digitalWrite (ledPins [thisPin], laag);
digitalWrite (alleen de ledPins [thisPin] - 1, laag);
digitalWrite (alleen de ledPins [thisPin] - 2, laag);
timer = analogRead(A0) / 2;
}
}