1

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);
 }
 }
}
per1234
4,2782 gold badges24 silver badges43 bronze badges
asked Sep 2, 2018 at 15:49
1
  • 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? Commented Sep 2, 2018 at 18:36

1 Answer 1

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.

Gerben
11.3k3 gold badges22 silver badges34 bronze badges
answered Sep 2, 2018 at 16:18
2
  • 1
    I think they are using an external pull-down. Commented Sep 2, 2018 at 18:29
  • the pin == 2 is probably the problem. Commented Sep 2, 2018 at 23:30

Your Answer

Draft saved
Draft discarded

Sign up or log in

Sign up using Google
Sign up using Email and Password

Post as a guest

Required, but never shown

Post as a guest

Required, but never shown

By clicking "Post Your Answer", you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.