Bird
Raised Fist0
Embedded Cprogramming~5 mins

Writing HIGH and LOW to output pins in Embedded C

Choose your learning style10 modes available
Introduction

We write HIGH or LOW to output pins to turn devices like LEDs or motors on or off.

Turning an LED on or off in a simple circuit.
Controlling a buzzer to make sound or stay silent.
Switching a relay to control a bigger device.
Sending signals to other electronic parts.
Syntax
Embedded C
digitalWrite(pinNumber, HIGH);
digitalWrite(pinNumber, LOW);

pinNumber is the number of the pin you want to control.

HIGH means turning the pin on (usually 5V or 3.3V), LOW means turning it off (0V).

Examples
Turn on the device connected to pin 13.
Embedded C
digitalWrite(13, HIGH);
Turn off the device connected to pin 8.
Embedded C
digitalWrite(8, LOW);
Sample Program

This program makes an LED connected to pin 13 blink on and off every second.

Embedded C
#include <Arduino.h>

void setup() {
  pinMode(13, OUTPUT);  // Set pin 13 as output
}

void loop() {
  digitalWrite(13, HIGH);  // Turn LED on
  delay(1000);             // Wait 1 second
  digitalWrite(13, LOW);   // Turn LED off
  delay(1000);             // Wait 1 second
}
OutputSuccess
Important Notes

Always set the pin mode to OUTPUT before writing HIGH or LOW.

Use delay() to create visible changes like blinking.

HIGH and LOW correspond to voltage levels, so check your board's voltage.

Summary

Use digitalWrite(pin, HIGH) to turn a pin on.

Use digitalWrite(pin, LOW) to turn a pin off.

Set the pin as OUTPUT first with pinMode(pin, OUTPUT).

Practice

(1/5)
1. Which function is used to set a pin as an output before writing HIGH or LOW to it?
easy
A. setPinMode(pin, HIGH)
B. digitalWrite(pin, OUTPUT)
C. pinMode(pin, OUTPUT)
D. writePin(pin, OUTPUT)

Solution

  1. Step 1: Understand pin configuration

    Before writing HIGH or LOW, the pin must be set as an output to control voltage.
  2. Step 2: Identify the correct function

    The function to set pin mode is pinMode(pin, OUTPUT), which configures the pin for output.
  3. Final Answer:

    pinMode(pin, OUTPUT) -> Option C
  4. Quick Check:

    Set pin as output = pinMode(pin, OUTPUT) [OK]
Hint: Set pin mode with pinMode before writing HIGH or LOW [OK]
Common Mistakes:
  • Using digitalWrite to set pin mode
  • Confusing HIGH/LOW with OUTPUT/INPUT
  • Forgetting to set pin mode before writing
2. Which of the following is the correct syntax to turn pin 5 ON (HIGH) in embedded C?
easy
A. digitalWrite(5, 1);
B. digitalWrite(5, ON);
C. digitalWrite(5, OUTPUT);
D. digitalWrite(5, HIGH);

Solution

  1. Step 1: Identify the function to write pin state

    The function digitalWrite(pin, value) sets the pin voltage HIGH or LOW.
  2. Step 2: Use correct constants

    Use HIGH to turn the pin ON. The correct syntax is digitalWrite(5, HIGH);.
  3. Final Answer:

    digitalWrite(5, HIGH); -> Option D
  4. Quick Check:

    Turn pin ON = digitalWrite(pin, HIGH) [OK]
Hint: Use HIGH constant, not ON or numbers, for clarity [OK]
Common Mistakes:
  • Using ON instead of HIGH
  • Using OUTPUT instead of HIGH
  • Using numeric 1 instead of HIGH constant
3. What will be the output state of pin 3 after running this code?
pinMode(3, OUTPUT);
digitalWrite(3, LOW);
digitalWrite(3, HIGH);
medium
A. Pin 3 will be LOW
B. Pin 3 will be HIGH
C. Pin 3 will be in input mode
D. Pin 3 will be undefined

Solution

  1. Step 1: Set pin 3 as output

    The code sets pin 3 as output with pinMode(3, OUTPUT);.
  2. Step 2: Write LOW then HIGH to pin 3

    First, pin 3 is set LOW, then immediately set HIGH, so final state is HIGH.
  3. Final Answer:

    Pin 3 will be HIGH -> Option B
  4. Quick Check:

    Last digitalWrite sets pin state = HIGH [OK]
Hint: Last digitalWrite sets the pin state [OK]
Common Mistakes:
  • Assuming pin stays LOW after writing HIGH
  • Forgetting pinMode sets output mode
  • Thinking pin state is undefined without delay
4. Identify the error in this code snippet:
pinMode(7, OUTPUT);
digitalWrite(7, HIGH)
digitalWrite(7, LOW);
medium
A. Missing semicolon after digitalWrite(7, HIGH)
B. pinMode should be called after digitalWrite
C. HIGH and LOW are not valid constants
D. Pin number 7 cannot be used

Solution

  1. Step 1: Check syntax line by line

    The second line digitalWrite(7, HIGH) is missing a semicolon at the end.
  2. Step 2: Confirm other lines are correct

    pinMode(7, OUTPUT); and digitalWrite(7, LOW); are correct syntax.
  3. Final Answer:

    Missing semicolon after digitalWrite(7, HIGH) -> Option A
  4. Quick Check:

    Every statement must end with semicolon [OK]
Hint: Check each line ends with a semicolon [OK]
Common Mistakes:
  • Forgetting semicolon after function calls
  • Calling pinMode after digitalWrite
  • Misusing HIGH/LOW constants
5. You want to toggle pin 10 ON and OFF every second in a loop. Which code snippet correctly sets pin 10 HIGH then LOW with a 1-second delay between states?
hard
A. pinMode(10, OUTPUT); digitalWrite(10, HIGH); delay(1000); digitalWrite(10, LOW); delay(1000);
B. digitalWrite(10, HIGH); delay(1000); digitalWrite(10, LOW); delay(1000);
C. pinMode(10, INPUT); digitalWrite(10, HIGH); delay(1000);
D. pinMode(10, OUTPUT); digitalWrite(10, LOW); digitalWrite(10, HIGH);

Solution

  1. Step 1: Set pin 10 as output

    Use pinMode(10, OUTPUT); to configure pin 10 for output.
  2. Step 2: Write HIGH, wait, then LOW, wait

    Use digitalWrite(10, HIGH); then delay(1000); to wait 1 second, then digitalWrite(10, LOW); and delay again.
  3. Final Answer:

    pinMode(10, OUTPUT); digitalWrite(10, HIGH); delay(1000); digitalWrite(10, LOW); delay(1000); -> Option A
  4. Quick Check:

    Set output, write states with delay between [OK]
Hint: Always set pinMode before toggling with delays [OK]
Common Mistakes:
  • Forgetting to set pinMode as OUTPUT
  • Missing delay between HIGH and LOW
  • Setting pinMode to INPUT instead of OUTPUT
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard