02 - Lab Blinking LED

Video

# Lab: Blinking LED ## **Objective** Learn the basics of Arduino programming by controlling an LED connected to digital pin D3. The LED will blink (turn on and off) every 1 second. ## **Learning Outcomes** - Understand basic Arduino programming structure - Learn about digital output pins - Master the **digitalWrite()** and **delay()** functions - Understand the concept of blinking an LED ## **Required Components** 1. **Lonely Binary UNO R3** - Main Arduino board 2. **TinkerBlock UNO R3 Shield** - Expansion shield that plugs onto the UNO R3 3. **TinkerBlock TK01 - XL LED** - LED module with 4-pin connector ## **Theory** ### **What is an LED?** A Light Emitting Diode (LED) is a semiconductor device that emits light when an electric current passes through it. LEDs are commonly used as indicators in electronic circuits. ### **Digital Output** Arduino digital pins can be configured as either inputs or outputs. When configured as outputs, they can provide: - **HIGH (5V)**: Turn on connected devices - **LOW (0V)**: Turn off connected devices ### **Key Functions Used** - **pinMode(pin, mode)**: Configures a pin as input or output - **digitalWrite(pin, value)**: Sets a digital pin HIGH or LOW - **delay(milliseconds)**: Pauses the program for a specified time ## **Circuit Diagram** ``` Lonely Binary UNO R3 ↓ TinkerBlock UNO R3 Shield ↓ TinkerBlock TK01 - XL LED Module ``` ## **Connection Instructions** ![](https://cdn.shopify.com/s/files/1/0331/9994/7908/files/Pasted_image_20250721132500.png?v=1753816420) 1. **Assemble the Hardware:** - Place the TinkerBlock UNO R3 Shield onto the Lonely Binary UNO R3 - Ensure all pins are properly aligned and seated - The shield should fit snugly on top of the Arduino board 2. **Connect the LED Module:** - Take the TinkerBlock TK01 - XL LED module - Align the 4-pin connector with any available 4-pin slot on the shield - Gently push the module into the slot until it clicks into place - The module will automatically connect: - **GND** pin to ground - **VCC** pin to 5V power - **NC** pin remains unconnected - **D3** pin to digital pin D3 3. **Important Notes:** - No breadboard or jumper wires required - The LED module has a built-in current limiting resistor ## **Code** ```cpp // Lab 1: LED Blinking // LED connected to digital pin D3 // Define the LED pin const int ledPin = 3; void setup() { // Configure pin D3 as output pinMode(ledPin, OUTPUT); } void loop() { // Turn LED on (HIGH) digitalWrite(ledPin, HIGH); // Wait for 1 second (1000 milliseconds) delay(1000); // Turn LED off (LOW) digitalWrite(ledPin, LOW); // Wait for 1 second (1000 milliseconds) delay(1000); } ``` ## **Code Explanation** ### **Setup Function** ```cpp void setup() { pinMode(ledPin, OUTPUT); } ``` - Runs once when Arduino starts - Configures pin D3 as an output pin - This tells Arduino that we want to send signals to this pin ### **Loop Function** ```cpp void loop() { digitalWrite(ledPin, HIGH); // Turn LED on delay(1000); // Wait 1 second digitalWrite(ledPin, LOW); // Turn LED off delay(1000); // Wait 1 second } ``` - Runs continuously after setup - **digitalWrite(ledPin, HIGH)**: Sends 5V to pin D3, turning LED on - **delay(1000)**: Pauses program for 1000 milliseconds (1 second) - **digitalWrite(ledPin, LOW)**: Sends 0V to pin D3, turning LED off - The cycle repeats, creating the blinking effect ## **Testing and Verification** 1. **Upload the code to Lonely Binary UNO R3** 2. **Observe the LED behavior:** - The XL LED on the TK01 module should turn on for 1 second - The LED should turn off for 1 second - This pattern should repeat continuously 3. **Verify connections:** - Ensure the shield is properly seated on the Arduino - Check that the TK01 module is firmly connected to the shield - Confirm the LED is visible and not obstructed ## **Troubleshooting** ### **LED doesn't light up:** - Check if the TinkerBlock shield is properly seated on the Arduino - Ensure the TK01 module is firmly connected to the shield - Verify the module is connected to a slot that uses D3 pin - Check if code uploaded successfully to the Lonely Binary UNO R3 ### **LED stays on or off:** - Check if **delay()** functions are working - Verify pin number in code matches the shield's D3 connection - Ensure the Lonely Binary UNO R3 is powered - Try reconnecting the TK01 module to a different 4-pin slot ### **LED is dim:** - Check power supply to the Lonely Binary UNO R3 - Ensure the shield is making good contact with all pins - Try cleaning the module connector pins if necessary ## **Experiment Variations** ### **1. Change Blinking Speed** Modify the delay values to change blinking speed: ```cpp delay(500); // Blink every 0.5 seconds delay(2000); // Blink every 2 seconds ``` ### **2. Different Blinking Patterns** Create Morse code patterns or different timing sequences: ```cpp // Fast blink pattern digitalWrite(ledPin, HIGH); delay(100); digitalWrite(ledPin, LOW); delay(100); digitalWrite(ledPin, HIGH); delay(100); digitalWrite(ledPin, LOW); delay(1000); ``` ## **Questions for Understanding** 1. What is the advantage of using the TinkerBlock shield system over traditional breadboard wiring? 2. How would you make the LED blink faster? 3. What is the purpose of the **setup()** function? 4. Why do we need to use **pinMode()** in setup? 5. What does the NC (No Connection) pin on the TK01 module do? 6. How many TK01 LED modules could you connect to the shield simultaneously? ## **Next Steps** - Try connecting multiple TK01 LED modules to different 4-pin slots on the shield - Experiment with different blinking patterns - Learn about analog output using **analogWrite()** for LED brightness control - Explore other TinkerBlock modules that can be connected to the shield - Try creating patterns with multiple LEDs using different digital pins ## **Safety Notes** - Always disconnect power before connecting or disconnecting modules - Handle the TinkerBlock shield and modules carefully to avoid bending pins - Ensure proper alignment when connecting modules to prevent damage - The built-in resistor in the TK01 module prevents LED damage - Keep the Lonely Binary UNO R3 and shield in a stable position during operation --- **Lab Completion Checklist:** - [ ] TinkerBlock shield properly seated on Lonely Binary UNO R3 - [ ] TK01 LED module connected to shield - [ ] Code uploaded successfully to Lonely Binary UNO R3 - [ ] LED blinks every 1 second - [ ] Troubleshooting completed (if needed) - [ ] Experiment variations tried - [ ] Questions answered