Stap 4: Codering:-
VOID Setup {}
pinMode (A0, INPUT); instellen van de PIN-code voor het lezen van de potentiometer / / nu hebben we onze LED-pinnen als uitgang instellen:
int i; voor (ik = 0; ik < 15; i ++) {}
pinMode (led_pins [i], OUTPUT); Standaard elke LED uitgeschakeld. Dit veronderstelt de anoden voor de LEDs zijn aangesloten / / naar de pennen (met een 330 ohm weerstand tussen voor het beperken van de huidige) / / en de andere kant van alle van de LEDs (de kathoden) zijn aangesloten op de grond.
digitalWrite (led_pins [i], laag); }}
void loop {/ / we set een variabele met index opgesteld in onze matrix van pincodes. We zullen het standaard op 0 (de eerste / / LED) en laat haar assortiment gaat van 0 tot en met 14 inclusieve (de vijftiende waarde in onze matrix).
int index = 0; Ook moeten we een variabele om ons te vertellen welke richting we zijn 'stuiteren' van de LED's. We beginnen met 1 en gebruik -1 om te gaan van de andere richting:
int richting = 1; terwijl (1) {}
int-waarde = analogRead(A0); krijgen van de positie van 0 tot 1023 / / wij zult gebruikt deze waarde als het aantal milliseconden dat moet worden gewacht tussen tussen LED's te bevorderen. Er zijn 1000 milliseconden in een seconde, dus dit geeft ons een goede spreiding van vertraging van 1/1000 aan een / / iets meer dan 1 seconde. Maar eerst moeten we de 'huidige' LED (de ene geïndexeerd door 'index') inschakelen:
digitalWrite (led_pins [index], hoge); Draai de LED pin HIGH, '1', + 5 v, allemaal hetzelfde... / / nu uitstellen voor een tijd ten opzichte van de potmeter. De 'delay()'-functie wacht het nummer / / milliseconden geven wij het vóór het rendement zodat dit perfect werkt: delay(value); Turn OFF de huidige geleid voor het bevorderen van:
digitalWrite (led_pins [index], laag); we vooraf onze indexnummer enzovoort de volgende pas, we over de volgende LED praten:
index += richting; Wij inspecteren onze index om te zien als we over te gaan langs weerszijden. Als wij hebben bereikt een / / end we zullen gewoon vermenigvuldigen de richting door -1 telkens als wij een einde of de andere en dit bereiken / / zal het schakelen tussen 1 en -1, klaar voor de volgende pass:
Als ((index == 0) || (index == 9))
{richting * = -1;} }
}