Skip to main content

Arduino Blinking LEDs

Arduino boards have I/Os (Input/Output) that can either receive or transmit signals. One of its basic functions is digital input/output. It can be programmed to output digital signals that can be used drive devices, such as an LED.

To drive an LED, you will have to add a resistor to regulate the current to the LED. The digital output is about 3V (5V or a little less for 5V board), and for an LED the forward voltage is about 2V. What is left (1V) divided by the resistor sets the current. Current is typically 10 to 20mA.



Driving an LED




Below is an example code for alternating LEDs on Arduino Pro Micro Board. It uses pins 2, 3, 4, and 5 as digital outputs. My 11 year old son helped out in the programming. :)

void setup() {
  // initialize digital pins 2, 3, 4, and 5 as outputs.
  pinMode(2, OUTPUT);
  pinMode(3, OUTPUT);
  pinMode(4, OUTPUT);
  pinMode(5, OUTPUT);
}

// the loop function runs over and over again forever
void loop() {
  digitalWrite(2, LOW);   // turn the LED off (LOW is the voltage level)
  digitalWrite(3, LOW);  
  digitalWrite(4, LOW);
  digitalWrite(5, LOW);
 
  delay(500);
 
  digitalWrite(2, LOW);  
  digitalWrite(3, HIGH);   // turn the LED on (HIGH is the voltage level)
  digitalWrite(4, LOW);
  digitalWrite(5, HIGH);
 
  delay(500);
  
  digitalWrite(2, LOW);  
  digitalWrite(3, HIGH); 
  digitalWrite(4, HIGH);
  digitalWrite(5, LOW);
 
  delay(500);
   
  digitalWrite(2, HIGH);  
  digitalWrite(3, LOW);  
  digitalWrite(4, LOW);
  digitalWrite(5, HIGH); 
 
  delay(500);
  
  digitalWrite(2, HIGH);  
  digitalWrite(3, HIGH);  
  digitalWrite(4, HIGH);
  digitalWrite(5, HIGH); 

  delay(500);
 
  digitalWrite(2, LOW);  
  digitalWrite(3, HIGH);  
  digitalWrite(4, HIGH);
  digitalWrite(5, HIGH);

  delay(500);
 
  digitalWrite(2, HIGH);  
  digitalWrite(3, LOW);  
  digitalWrite(4, HIGH);
  digitalWrite(5, HIGH);
 
  delay(500);
 
  digitalWrite(2, HIGH);  
  digitalWrite(3, HIGH);  
  digitalWrite(4, LOW);
  digitalWrite(5, HIGH);
 
  delay(500);
 
  digitalWrite(2, HIGH);  
  digitalWrite(3, HIGH);  
  digitalWrite(4, HIGH);
  digitalWrite(5, LOW);
 
   delay(500);
  
  digitalWrite(2, HIGH);  
  digitalWrite(3, HIGH);  
  digitalWrite(4, LOW);
  digitalWrite(5, LOW);
 
  delay(500);

  digitalWrite(2, HIGH);  
  digitalWrite(3, LOW);  
  digitalWrite(4, LOW);
  digitalWrite(5, LOW);

  delay(500);
 
  digitalWrite(2, LOW);  
  digitalWrite(3, LOW);  
  digitalWrite(4, LOW);
  digitalWrite(5, LOW);
 
  delay(1000);              // wait for a second
}






Comments

  1. Please accept my deepest gratitude for your outstanding effort. Your writing is flawless, and it is genuinely amazing how well you are able to communicate difficult concepts. Reading your work has been a real pleasure for me, and I've learned a lot and developed some new perspectives.
    if you want to buy robotic components then kindly click here.Arduino Boards

    ReplyDelete

Post a Comment

Popular posts from this blog

Arduino Transistor DC Motor Control

Arduino boards have PWM (Pulse Width Modulation) outputs that can be used to control like the speed of a DC motor. On a Pro Micro, those outputs are encircled white on the board. You can program it such that it outputs on a scale of 1-255, 1 being the slowest and 255 being the fastest. PWM gives out pulses whose width is varied (modulated) while the period is constant. The longer it is high, the higher power it delivers to the circuit. PWM can be used to drive a transistor (switch) which in turn drives the motor ON and OFF. The longer the switch is ON, the higher the power delivered to the motor, and thus faster. The circuit consists of a transistor Q1 (TIP31) NPN transistor, driven by the PWM from Arduino. The resistor is to limit the current to the base, but enough to operate the transistor in saturation when the input is high. The diode is to protect the motor from any back emf that might come from the motor when the current is cut off. The circuit is supplied by a 9V battery.

What Can You Do With Two Transistors (BJT)? Part 2 - Transistor Regulator

In the first installment of this series, we talked about what exciting things we can do with just two transistors, in particular BJT transistors. Some of us might probably think that we don't talk a lot about BJT transistors nowadays, not with the thrill, excitement, and trend brought about by high advancements in the technology in the Internet of Things, Machine Learning, Machine Intelligence, Advanced Algorithm, etc.. But we argue that these little circuits and components are constantly in the background of the advancements we see around us and we should not ignore them, as much we will not ignore what we currently enjoy and what the future holds for us. Let's continue to look at the Two-Transistor Series Regulator we talked about in Part 1 . The circuit below is a different version, now using the transistor to provide feedback from the output. This makes the output voltage higher. The output is still derived from the zener voltage. The output voltage is now a s

How Does The Howland Current Source Work?

Current source programs an output current as defined by the user, regardless of the load resistance. We know that when load resistance is larger, the voltage across it also increases. An ideal source would maintain a constant amount of current even if the load resistance changes, or in other words even if the output voltage changes. Such behavior describes a very good current source that has high output impedance. Remember, the output voltage changes, but very little or no change in output current. That means high output resistance or impedance. We use the term impedance when dealing with changes. Howland circuit in the figure is a classic current source circuit.   When R 1 is made equal to R 2 , R F equal to R 3,  the output current is given by V IN /R 1 where V IN is V 1 minus V 2 . A simple implementation is grounding V 2 and taking V 1 as the V IN . Figure 1 Basic Howland Current Source This circuit is such a clever manipulation of the op amp, such