Created
April 17, 2020 15:10
-
-
Save vishnumaiea/3ff01ad9c6deec708120f6300abd9db4 to your computer and use it in GitHub Desktop.
Larson Scanner code for ESP32
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#define LED_DELAY 45 | |
int ledArray[10] = {0, 15, 2, 4, 5, 18, 19, 21, 22, 23}; | |
void setup() { | |
for(int i=0; i<10; i++) { | |
pinMode(ledArray[i], OUTPUT); | |
digitalWrite(ledArray[i], HIGH); //make all HIGH for now | |
} | |
} | |
void loop() { | |
for(int i=0; i<10; i++) { //up counting | |
if((i != 0) && (i != 9)) { //shouldn't do it for terminating LEDs | |
pinMode(ledArray[i-1], INPUT); //make preceding LED high Z | |
pinMode(ledArray[i+1], INPUT); //make succeeding LED high Z | |
pinMode(ledArray[i], OUTPUT); //make the current LED pin to output !important | |
digitalWrite(ledArray[i], LOW); //activate the pin | |
delay(LED_DELAY); | |
} | |
else if(i == 0) { //if it is the first LED | |
pinMode(ledArray[i+1], INPUT); //just make one LED high Z | |
pinMode(ledArray[i], OUTPUT); | |
digitalWrite(ledArray[i], LOW); | |
delay(LED_DELAY); | |
} | |
else { | |
pinMode(ledArray[i-1], INPUT); //just make one LED high Z | |
pinMode(ledArray[i], OUTPUT); | |
digitalWrite(ledArray[i], LOW); | |
delay(LED_DELAY); | |
digitalWrite(ledArray[i], HIGH); | |
} | |
} | |
for(int i=9; i>=0; i--) { //down counting, everything is same except it's inverse | |
if((i != 0) && (i != 9)) { | |
pinMode(ledArray[i-1], INPUT); | |
pinMode(ledArray[i+1], INPUT); | |
pinMode(ledArray[i], OUTPUT); | |
digitalWrite(ledArray[i], LOW); | |
delay(LED_DELAY); | |
} | |
else if(i == 0) { | |
pinMode(ledArray[i+1], INPUT); | |
pinMode(ledArray[i], OUTPUT); | |
digitalWrite(ledArray[i], LOW); | |
delay(LED_DELAY); | |
} | |
else { | |
pinMode(ledArray[i-1], INPUT); | |
pinMode(ledArray[i], OUTPUT); | |
digitalWrite(ledArray[i], LOW); | |
delay(LED_DELAY); | |
digitalWrite(ledArray[i], HIGH); | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment