Introduction: Most Simplest Toggle Switch With Arduino
Simple! I hope you like it! Enjoy to fool around!
Nothing more to say than in the commenting code...
Step 1: The Code
/*********************
Simple toggle switch
Created by: P.Agiakatsikas
*********************/
int button = 8;
int led = 13
int status = false;
void setup(){
pinMode(led, OUTPUT);
pinMode(button, INPUT_PULLUP); // set the internal pull up resistor, unpressed button is HIGH
}
void loop(){
//a) if the button is not pressed the false status is reversed by !status and the LED turns on
//b) if the button is pressed the true status is reveresed by !status and the LED turns off
if (digitalRead(button) == true) {
status = !status;
digitalWrite(led, status);
} while(digitalRead(button) == true);
delay(50); // keeps a small delay
}
6 Discussions
9 months ago
I changed it abit, see picture for pinning:
int button = 7;
int led = 12;
int status = false;
void setup(){
pinMode(led, OUTPUT);
pinMode(button, INPUT);
}
void loop(){
//a) if the button is not pressed the false status is reversed by !status and the LED turns on
//b) if the button is pressed the true status is reveresed by !status and the LED turns off
if (digitalRead(button) == true) {
status = !status;
if(status==1){
digitalWrite(led, HIGH);
}
else{
digitalWrite(led, LOW);
}
} while(digitalRead(button) == true);
delay(50); // keeps a small delay
}
11 months ago
Can you please explain the use of INPUT_PULLUP.
Question 2 years ago on Step 1
A great help, thanks! could you please xapin thw purpose of the "while" statemet at the end? i had to remove it as the code didnt seem to work with it in
Answer 11 months ago
if the button is kept presses, WHILE Loop takes the charge and doesn't allow any further action but only after a little delay.
Question 2 years ago
HI,
Can we connect 8 push buttons to the Arduino Uno and Control 8 outputs as LED's ?
3 years ago
Thank you for this, but I noticed two things that should be corrected.
1. "int led = 3" is missing a ;
2. The LED in the diagram is backwards.
Great sample for a project I'm working on nonetheless. With a little troubleshooting I got it to work.