The current series of articles we are publishing are around basics for learning Arduino and also IC. We already know that we can blink one LED with Arduino and also we can blink one LED with 555 IC. We can also blink 2 LEDs alternatively with Arduino and also blink 2 LEDs alternatively with 555 IC. From our older examples, we can start LED to be on with one pushbutton press and turn-off with another pushbutton keypress. Last before this guide was Blinking LED With Pushbutton Control to Turn ON and Off . This guide again, is not exactly easy to a beginner but mandatory next step to learn. With Arduino, You Can Have Flip-Flop Blinking LED With Push Button With Slightly Advanced Circuit and Few Functions of Arduino. When I am finding the nest thing, I found this nice Indonesian website for exactly the thing I wanted to demonstrate. In case you feel difficulty, you can read their linked previous guides for more simple Flip-Flop for understanding the circuit. We are explaining that part though.
Circuit and Code For Arduino Flip-Flop Blinking LED With Push Button
For this project, we need :
- Arduino UNO or similar board
- Two LEDs
- One 220Ω Ohm resistor
- One 10K Ohm resistor
- One push button
- Jumper wires
The circuit will be like this :
Notice that, blue wire is connected with both LEDs and 220 Ohm resistor, else . GND of Arduino going to one LED and to 10K Ohm resistor, 3.3V of Arduino going to second LED, 5V of Arduino going to Push Button, pin 4 of Arduino going to 220 Ohm Resistor, pin 3 of Arduino going to Push Button. So, instead of two separate pins for two LEDs, we are using one pin. This is the code :
const int PushButtonPin = 3;
const int ledPin = 4;
int LEDStatus = HIGH;
int lastPushButtonStatus = LOW;
long LastTime = 0;
long WaktuDelay = 50;
int reading = digitalRead(PushButtonPin);
if (reading != lastPushButtonStatus)
LastTime = millis();
if (PushButtonStatus == HIGH)
LEDStatus = !LEDStatus;
if ((millis() - LastTime) > WaktuDelay)
PushButtonStatus = reading;
lastPushButtonStatus = reading;
millis() in this code like the circuits before. We already discussed about the resources where from one can start learning Arduino. Open the serial monitor of Arduino IDE and look for output. Try to understand the logic of circuit and code. You probably need to clarify negative voltage concept if it is not clear.
Now think – when current is coming to LED from Arduino’s pin, what the LED’s having voltage? Left sided LED will have the correct to become active but right sided will be at relative zero. It is exploit of
LOW status what you write as code.
This circuit has importance when the pushbutton is an analog sensor – we can use the LEDs as indicator of sensor status. That is quite common use in day to day electronic things – LED beside a label.
In next guide, we will do this Flip-Flop using IC.