Table of Contents
We read in previous topics how to make blinking LEDs and control output using input (by switch). In this topic we will combine both the logic and make the led blinking on button pressed / Blink Led Using Switch with Arduino.
Required hardware or components for Interfacing of Switch with Arduino Uno
S.N. | Component | Quantity |
---|---|---|
1. | Arduino Uno | 1 |
2. | Breadboard | 1 |
3. | LED | 1 |
4. | Resistor 220 or 280 ohm | 1 |
5. | Resistor 1K = 1000 ohm | 1 |
6. | Switch / Button | 1 |
CIRCUIT DIAGRAM
CONNECTION TABLE
S.N. | Arduino | LED |
---|---|---|
1. | 13 | Anode (+) |
2. | GND | Cathode (-) |
S.N. | Arduino | Switch | Pull Down Resistor |
---|---|---|---|
1. | GND | One Terminal | |
2. | 2 (common to both) | One Terminal | Other terminal |
3. | +5V | Other terminal |
ARDUINO PROGRAMMING CODE : BLINK LED USING SWITCH WITH ARDUINO
int buttonState = 0; void setup() { pinMode(2, INPUT); pinMode(13, OUTPUT); } void loop() { buttonState = digitalRead(2); if (buttonState == HIGH) { digitalWrite(13, HIGH); delay(1000); digitalWrite(13, LOW); delay(1000); } else if (buttonState == LOW) { digitalWrite(13, LOW); } }
ARDUINO PROGRAMMING CODE EXPLANATION
Define a global variable buttonState, we will use this to read state of pin number 2. State of digital pin can be either LOW=0 or HIGH=1 set default to LOW(0)
int buttonState = 0;
Here we assigned pin number 2 as input and 13 as output of arduino using pinMode(pinNumber,mode) function.
void setup() { pinMode(2, INPUT); pinMode(13, OUTPUT); }
Here we are using a new inbuilt function that is digitalRead(pinNumber), it is just opposite to digitalWrite where we set two states (HIGH or LOW) of pin. The digitalRead( ) function will read the state of the arduino pin, Here we read the state of pin number 2 of the arduino.
After Reading the state of Digital pin 2, we will store the value to variable buttonState, So now buttonState value will be Either LOW=0 or HIGH=1
If the button is pressed down, that means current from the 5V power source can flow to pin number 2 of arduino which makes pin 2 state HIGH.
Now at this time if we read the state of pin number 2 using digitalRead( ) function then the value of buttonState is HIGH (1).
Now we will check, using the function does buttonState is HIGH, if yes, then make Pin number 13 HIGH and after one second LOW this will blink the Led connected on pin 13. If we left the button pressed then it will continuously blink the LED
void loop() { buttonState = digitalRead(2); if (buttonState == HIGH) { digitalWrite(13, HIGH); delay(1000); digitalWrite(13, LOW); delay(1000); }
Else If button is not pressed, that means buttonState read from pin number 2 is LOW, if LOW then make Pin number 13 also LOW this will turn OFF the Led connected on pin 13. Or if you want LED to remain ON while button not pressed you can just replace the digitalWrite(13,LOW) by digitalWrite(13,HIGH);
else if (buttonState == LOW) { digitalWrite(13, LOW); } }
READ NEXT
BLINK LED BY SWITCH USING FUNCTION IN ARDUINO