I have an assignment wherein we have 8 LEDs connected to an Arduino Uno which has a switch. These LEDs light up according to the johnson counter but every time I turn the switch off it should reset back to the start. An example is if I turned the switch off while the pin is at 8 going back to 1 , then when i turn it on it should be back to 1 again. I got the 1 to 8 reset part right but the 8 to 1, I'm having trouble solving.
Here is my code:
int pin;
int sw3 = 10;
void setup() {
// put your setup code here, to run once:
for (pin = 2; pin <= 9; pin++) {
pinMode(pin, OUTPUT);
}
pinMode(sw3, INPUT);
}
void loop() {
pin == 2;
if (digitalRead(sw3) == HIGH) {
for (pin = 2; pin <= 9; pin++) {
digitalWrite(pin, HIGH);
delay(200);
}
}
else {
digitalWrite(pin, LOW);
}
delay(200);
for (pin = 2; pin <= 9; pin++)
{
digitalWrite(pin, LOW);
}
delay(200);
if (digitalRead(sw3) == HIGH) {
for (pin = 9; pin >= 2; pin--) {
digitalWrite(pin, HIGH);
delay(200);
}
}
else {
digitalWrite(pin, LOW);
}
delay(200);
for (pin = 9; pin >= 2; pin--) {
digitalWrite(pin, LOW);
}
delay(200);
{
if (digitalRead(sw3) == LOW) {
digitalWrite(pin, LOW);
}
else {
digitalWrite(pin, LOW);
}
}
}
-
I'm not able to comprehend what your problem is. The code also doesn't seem to do a johnson counter. Could you rephase your question, and maybe mark in your code where your problem is?Gerben– Gerben2018年09月02日 18:36:17 +00:00Commented Sep 2, 2018 at 18:36
1 Answer 1
Some fixes:
pin==2;
should only be 1 =
here. ==
is a comparison.
pinMode(sw3,INPUT);
make this INPUT_PULLUP
, to turn on the internal pullup resistor
if(digitalRead(sw3)==HIGH){
change this to LOW
, and wire your switch/button to connect the pin to GND when pressed. The internal pullup will unsure the pin is HIGH when not pressed, and the button/switch makes it LOW when pressed. The pin is thus not allowed to 'float' and return a random HIGH or LOW.
-
1I think they are using an external pull-down.Gerben– Gerben2018年09月02日 18:29:47 +00:00Commented Sep 2, 2018 at 18:29
-
the pin == 2 is probably the problem.CrossRoads– CrossRoads2018年09月02日 23:30:23 +00:00Commented Sep 2, 2018 at 23:30