📖 Scenario: You are programming a simple embedded system with 4 LEDs connected to a microcontroller. You want to create different light patterns by turning LEDs on and off in a sequence.
🎯 Goal: Build a program that controls 4 LEDs using an array to represent their states, then create a pattern that turns LEDs on one by one, and finally print the LED states to simulate the output.
📋 What You'll Learn
Create an array called leds with 4 elements initialized to 0 (off).
Create a variable called current_led to track which LED to turn on.
Write a loop that sets the current_led element in leds to 1 (on) and others to 0 (off).
Print the leds array states to show which LEDs are on or off.
💡 Why This Matters
🌍 Real World
Embedded systems often control LEDs to show status or alerts. Learning to manage LED patterns is a basic skill for hardware programming.
💼 Career
Embedded software developers and hardware engineers use similar code to control lights and indicators on devices.
Progress0 / 4 steps
1
Create the LED array
Create an integer array called leds with 4 elements, all initialized to 0 to represent LEDs turned off.
Embedded C
Hint
Think of leds as a row of 4 light switches, all starting off.
2
Add a variable to track the current LED
Create an integer variable called current_led and set it to 0 to track which LED will be turned on.
Embedded C
Hint
This variable will help you choose which LED to turn on.
3
Turn on the current LED and turn off others
Write a for loop with variable i from 0 to 3 that sets leds[i] to 1 if i equals current_led, otherwise sets it to 0.
Embedded C
Hint
Use the if statement inside the loop to set the LED states.
4
Print the LED states
Write a for loop with variable i from 0 to 3 that prints the value of leds[i] followed by a space, then print a newline after the loop.
Embedded C
Hint
Use printf inside the loop to show each LED state, then print a newline.
Practice
(1/5)
1. What is the main purpose of using LED control patterns in embedded C programming?
easy
A. To create visual effects by turning LEDs on and off in specific sequences
B. To increase the processing speed of the microcontroller
C. To store data in the microcontroller's memory
D. To connect the microcontroller to the internet
Solution
Step 1: Understand LED control patterns
LED control patterns are used to create visual effects by controlling LEDs.
Step 2: Identify the purpose in embedded systems
They help show device status or create decorative light sequences by turning LEDs on and off.
Final Answer:
To create visual effects by turning LEDs on and off in specific sequences -> Option A
Quick Check:
LED patterns = visual effects [OK]
Hint: LED patterns control lights, not speed or memory [OK]
Common Mistakes:
Confusing LED patterns with data storage
Thinking LED patterns improve processing speed
Assuming LED patterns connect to the internet
2. Which of the following is the correct syntax to turn on an LED connected to pin 5 using embedded C?
easy
A. digitalWrite(HIGH, 5);
B. digitalWrite(5, ON);
C. digitalWrite(5, HIGH);
D. digitalWrite(ON, 5);
Solution
Step 1: Recall digitalWrite syntax
The function digitalWrite(pin, value) sets the pin to HIGH or LOW.
Step 2: Match correct parameters
Pin number comes first, then the value HIGH to turn LED on.
Final Answer:
digitalWrite(5, HIGH); -> Option C
Quick Check:
digitalWrite(pin, HIGH) = turn LED on [OK]
Hint: Pin number first, then HIGH or LOW [OK]
Common Mistakes:
Swapping pin and value order
Using ON instead of HIGH
Using lowercase for HIGH
3. What will be the output on the LED connected to pin 3 after running this code snippet?
for(int i = 0; i < 3; i++) {
digitalWrite(3, HIGH);
delay(500);
digitalWrite(3, LOW);
delay(500);
}
medium
A. LED stays OFF continuously
B. LED stays ON continuously for 1.5 seconds
C. LED blinks once and stays OFF
D. LED blinks 3 times with 0.5 second ON and 0.5 second OFF
Solution
Step 1: Analyze the loop iterations
The loop runs 3 times, each time turning LED ON then OFF with delays.
Step 2: Understand delay timing
Each ON and OFF lasts 500ms, so LED blinks 3 times with equal ON/OFF intervals.
Final Answer:
LED blinks 3 times with 0.5 second ON and 0.5 second OFF -> Option D
Quick Check:
Loop 3 times with delay = 3 blinks [OK]
Hint: Count loop runs and delays for blink count [OK]
D. for(int i = 5; i >= 2; i--) {
digitalWrite(i, HIGH);
delay(200);
}
Solution
Step 1: Understand running LED pattern
Running LED means turning ON one LED at a time in sequence, then OFF before next.
Step 2: Analyze each option
for(int i = 2; i <= 5; i++) {
digitalWrite(i, HIGH);
delay(200);
digitalWrite(i, LOW);
} loops from pin 2 to 5, turns each LED ON, delays, then OFF, creating running effect.
Final Answer:
for(int i = 2; i <= 5; i++) {
digitalWrite(i, HIGH);
delay(200);
digitalWrite(i, LOW);
} -> Option A
Quick Check:
Loop ON then OFF per LED = running pattern [OK]
Hint: Turn ON then OFF each LED in order [OK]
Common Mistakes:
Turning all LEDs ON at once
Not turning off the LED after delay
Turning LEDs OFF before ON
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.