Bird
Raised Fist0
Arduinoprogramming~10 mins

digitalWrite() for output control in Arduino - Interactive Code Practice

Choose your learning style10 modes available

Start learning this pattern below

Jump into concepts and practice - no test required

or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to set pin 13 to HIGH.

Arduino
digitalWrite(13, [1]);
Drag options to blanks, or click blank then click option'
AHIGH
BOUTPUT
CLOW
DINPUT
Attempts:
3 left
💡 Hint
Common Mistakes
Using LOW instead of HIGH turns the pin off.
Using INPUT or OUTPUT in digitalWrite() is incorrect.
2fill in blank
medium

Complete the code to turn off the LED connected to pin 9.

Arduino
digitalWrite(9, [1]);
Drag options to blanks, or click blank then click option'
ALOW
BHIGH
CINPUT
DOUTPUT
Attempts:
3 left
💡 Hint
Common Mistakes
Using HIGH will keep the LED on.
INPUT and OUTPUT are not valid values for digitalWrite().
3fill in blank
hard

Fix the error in the code to set pin 7 HIGH.

Arduino
digitalWrite([1], HIGH);
Drag options to blanks, or click blank then click option'
AOUTPUT
BHIGH
CLOW
D7
Attempts:
3 left
💡 Hint
Common Mistakes
Putting HIGH as the pin number causes errors.
Using OUTPUT or LOW as pin number is incorrect.
4fill in blank
hard

Fill both blanks to turn pin 5 off and pin 6 on.

Arduino
digitalWrite([1], LOW);
digitalWrite([2], HIGH);
Drag options to blanks, or click blank then click option'
A5
B6
CHIGH
DLOW
Attempts:
3 left
💡 Hint
Common Mistakes
Swapping pin numbers or voltage values.
Using HIGH where LOW is needed.
5fill in blank
hard

Fill all three blanks to set pin 3 HIGH, pin 4 LOW, and pin 8 HIGH.

Arduino
digitalWrite([1], HIGH);
digitalWrite([2], LOW);
digitalWrite([3], HIGH);
Drag options to blanks, or click blank then click option'
A3
B4
C8
D5
Attempts:
3 left
💡 Hint
Common Mistakes
Mixing up pin numbers or voltage states.
Using pin 5 which is not in the task.

Practice

(1/5)
1. What does the digitalWrite() function do in Arduino programming?
easy
A. It sets the analog value of a pin.
B. It reads the voltage from a digital pin.
C. It initializes the serial communication.
D. It sets a digital pin to HIGH or LOW voltage.

Solution

  1. Step 1: Understand the purpose of digitalWrite()

    The function digitalWrite() is used to control the voltage level on a digital pin, setting it either HIGH (on) or LOW (off). It does not read values (that's digitalRead()), nor does it set analog values or initialize serial communication.
  2. Final Answer:

    It sets a digital pin to HIGH or LOW voltage. -> Option D
  3. Quick Check:

    digitalWrite() controls pin voltage = D [OK]
Hint: digitalWrite sets pin ON or OFF voltage [OK]
Common Mistakes:
  • Confusing digitalWrite() with digitalRead()
  • Thinking digitalWrite() reads pin values
  • Mixing digitalWrite() with analogWrite()
2. Which of the following is the correct syntax to turn on an LED connected to pin 13 using digitalWrite()?
easy
A. digitalWrite(13, HIGH);
B. digitalWrite(13, LOW);
C. digitalWrite(13, ON);
D. digitalWrite(13, TRUE);

Solution

  1. Step 1: Recall correct constants and check options

    digitalWrite() uses HIGH and LOW constants. To turn on, use HIGH. A uses ON (not valid), B uses LOW (turns off), D uses TRUE (not valid). Only C: digitalWrite(13, HIGH); is correct.
  2. Final Answer:

    digitalWrite(13, HIGH); -> Option A
  3. Quick Check:

    Use HIGH or LOW with digitalWrite() = C [OK]
Hint: Use HIGH or LOW, not ON or TRUE [OK]
Common Mistakes:
  • Using ON or TRUE instead of HIGH
  • Using LOW instead of HIGH
  • Forgetting to set pinMode to OUTPUT first
3. What will be the output on pin 8 after running this code snippet?
pinMode(8, OUTPUT);
digitalWrite(8, LOW);
digitalWrite(8, HIGH);
digitalWrite(8, LOW);
medium
A. Pin 8 will toggle rapidly.
B. Pin 8 will be HIGH (on).
C. Pin 8 will be LOW (off).
D. Pin 8 will cause a syntax error.

Solution

  1. Step 1: Trace the digitalWrite() calls

    pinMode sets OUTPUT, then LOW, HIGH, LOW. Final LOW so pin off.
  2. Final Answer:

    Pin 8 will be LOW (off). -> Option C
  3. Quick Check:

    Last digitalWrite sets pin LOW = A [OK]
Hint: Last digitalWrite() sets pin state [OK]
Common Mistakes:
  • Assuming pin toggles automatically
  • Confusing initial and final pin states
  • Thinking multiple digitalWrite calls cause errors
4. Identify the error in this Arduino code snippet:
digitalWrite(12, HIGH);
pinMode(12, OUTPUT);
medium
A. No error, code runs fine.
B. pinMode() must be called before digitalWrite().
C. digitalWrite() cannot use pin 12.
D. HIGH is not a valid value for digitalWrite().

Solution

  1. Step 1: Check order of pinMode() and digitalWrite()

    pinMode() must set OUTPUT before digitalWrite(), otherwise unexpected behavior. Here digitalWrite first.
  2. Final Answer:

    pinMode() must be called before digitalWrite(). -> Option B
  3. Quick Check:

    Set pinMode before digitalWrite = A [OK]
Hint: Always set pinMode(OUTPUT) before digitalWrite() [OK]
Common Mistakes:
  • Calling digitalWrite before pinMode
  • Assuming pinMode defaults to OUTPUT
  • Using invalid pin numbers
5. You want to blink an LED connected to pin 9 on and off every second. Which code snippet correctly uses digitalWrite() inside the loop() function to achieve this?
hard
A. digitalWrite(9, HIGH); delay(1000); digitalWrite(9, LOW); delay(1000);
B. digitalWrite(9, HIGH); digitalWrite(9, LOW); delay(1000);
C. pinMode(9, OUTPUT); digitalWrite(9, HIGH); delay(1000);
D. digitalWrite(9, HIGH); delay(500); digitalWrite(9, HIGH); delay(500);

Solution

  1. Step 1: Understand blinking and analyze options

    Blink: HIGH, delay(1000), LOW, delay(1000). A: HIGH immediate LOW, no on time. C: pinMode in loop inefficient, no LOW. D: HIGH twice, always on. Only B correct.
  2. Final Answer:

    digitalWrite(9, HIGH); delay(1000); digitalWrite(9, LOW); delay(1000); -> Option A
  3. Quick Check:

    Turn ON, delay, turn OFF, delay = B [OK]
Hint: Turn ON, delay, turn OFF, delay for blinking [OK]
Common Mistakes:
  • Missing delay between ON and OFF
  • Not turning LED OFF after ON
  • Setting pinMode inside loop repeatedly