Bird
Raised Fist0
Arduinoprogramming~5 mins

pinMode() function behavior in Arduino - Cheat Sheet & Quick Revision

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
Recall & Review
beginner
What is the purpose of the pinMode() function in Arduino?
The pinMode() function sets a specific pin on the Arduino board as either an input or an output, telling the board how to use that pin.
Click to reveal answer
beginner
What are the two main modes you can set a pin to using pinMode()?
You can set a pin as INPUT to read signals or as OUTPUT to send signals.
Click to reveal answer
intermediate
How do you configure a pin to use the internal pull-up resistor with pinMode()?
You use pinMode(pin, INPUT_PULLUP); to activate the internal pull-up resistor, which helps keep the input pin at a HIGH state when not connected.
Click to reveal answer
beginner
What happens if you don't use pinMode() before reading or writing to a pin?
If you don't set the pin mode, the pin may behave unpredictably because the Arduino doesn't know if it should read or write on that pin.
Click to reveal answer
intermediate
Can you change the mode of a pin during the program execution using pinMode()?
Yes, you can call pinMode() anytime in your program to change a pin from input to output or vice versa.
Click to reveal answer
What does pinMode(13, OUTPUT); do?
ASets pin 13 as an output pin
BReads the value from pin 13
CActivates the internal pull-up resistor on pin 13
DDisables pin 13
Which mode should you use to read a button press on a pin?
AOUTPUT
BINPUT_PULLUP
CINPUT
DPWM
What does pinMode(pin, INPUT_PULLUP); do?
ASets pin as input without pull-up resistor
BSets pin as output with pull-up resistor
CDisables the pin
DSets pin as input with internal pull-up resistor enabled
If you want to send a HIGH or LOW signal to an LED, what must you do first?
ASet the pin as INPUT
BSet the pin as OUTPUT
CUse analogRead()
DUse digitalRead()
Can you call pinMode() multiple times on the same pin during a program?
AYes, you can change the pin mode anytime
BNo, only once at the start
COnly if the pin is digital
DOnly if the pin is analog
Explain how the pinMode() function affects the behavior of an Arduino pin.
Think about what the Arduino needs to know before using a pin.
You got /3 concepts.
    Describe a situation where you would use INPUT_PULLUP mode instead of just INPUT.
    Consider how to prevent a pin from reading random signals.
    You got /3 concepts.

      Practice

      (1/5)
      1. What does the pinMode() function do in an Arduino sketch?
      easy
      A. It sets a pin as input or output to control how it behaves.
      B. It reads the value from a pin.
      C. It writes a value to a pin.
      D. It resets the Arduino board.

      Solution

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

        The pinMode() function tells the Arduino whether a pin will be used to read signals (input) or send signals (output).
      2. Step 2: Differentiate from other functions

        Reading values is done by digitalRead(), writing by digitalWrite(), and resetting is unrelated to pinMode().
      3. Final Answer:

        It sets a pin as input or output to control how it behaves. -> Option A
      4. Quick Check:

        pinMode() sets pin direction = C [OK]
      Hint: pinMode() sets pin direction: input or output [OK]
      Common Mistakes:
      • Confusing pinMode() with digitalRead() or digitalWrite()
      • Thinking pinMode() reads or writes values
      • Assuming pinMode() resets the board
      2. Which of the following is the correct syntax to set pin 7 as an output pin?
      easy
      A. pinMode(7, OUTPUT);
      B. pinMode(OUTPUT, 7);
      C. pinMode(7, "OUTPUT");
      D. pinMode(7);

      Solution

      1. Step 1: Recall pinMode() syntax

        The correct syntax is pinMode(pinNumber, mode); where mode is a constant like OUTPUT without quotes.
      2. Step 2: Check each option

        pinMode(7, OUTPUT); matches the correct syntax. pinMode(OUTPUT, 7); reverses parameters. pinMode(7, "OUTPUT"); uses quotes incorrectly. pinMode(7); misses the mode parameter.
      3. Final Answer:

        pinMode(7, OUTPUT); -> Option A
      4. Quick Check:

        pinMode(pin, mode) correct order = B [OK]
      Hint: pinMode(pin, mode) with mode as constant, no quotes [OK]
      Common Mistakes:
      • Swapping parameters order
      • Using quotes around OUTPUT
      • Omitting the mode parameter
      3. What will be the output on the serial monitor after running this code?
      void setup() {
        pinMode(3, INPUT_PULLUP);
        Serial.begin(9600);
        Serial.println(digitalRead(3));
      }
      void loop() {}
      medium
      A. No output
      B. 0
      C. Error: pinMode not set correctly
      D. 1

      Solution

      1. Step 1: Understand INPUT_PULLUP behavior

        Setting pin 3 as INPUT_PULLUP activates an internal pull-up resistor, so the pin reads HIGH (1) if not connected to ground.
      2. Step 2: digitalRead on pin 3

        Since nothing else is connected, digitalRead(3) returns 1, which is printed to the serial monitor.
      3. Final Answer:

        1 -> Option D
      4. Quick Check:

        INPUT_PULLUP reads HIGH = 1 [OK]
      Hint: INPUT_PULLUP makes pin read HIGH if unconnected [OK]
      Common Mistakes:
      • Expecting 0 instead of 1 for INPUT_PULLUP
      • Thinking pinMode causes error
      • Assuming no output without loop code
      4. Identify the error in this code snippet:
      void setup() {
        pinMode(13, "OUTPUT");
        digitalWrite(13, HIGH);
      }
      void loop() {}
      medium
      A. Pin number 13 is invalid.
      B. Missing Serial.begin() in setup().
      C. The mode parameter in pinMode() should not be in quotes.
      D. digitalWrite() cannot be used in setup().

      Solution

      1. Step 1: Check pinMode() parameter types

        The mode parameter must be a constant like OUTPUT without quotes. Using quotes makes it a string, causing a compile error.
      2. Step 2: Verify other parts

        Pin 13 is valid. digitalWrite() can be used in setup(). Serial.begin() is not required here.
      3. Final Answer:

        The mode parameter in pinMode() should not be in quotes. -> Option C
      4. Quick Check:

        pinMode mode no quotes = D [OK]
      Hint: Use OUTPUT without quotes in pinMode() [OK]
      Common Mistakes:
      • Putting mode in quotes
      • Thinking pin 13 is invalid
      • Believing digitalWrite() can't be in setup()
      5. You want to connect a push button to pin 2 and read its state without an external resistor. Which pinMode() setting should you use to ensure the pin reads HIGH when the button is not pressed?
      hard
      A. pinMode(2, OUTPUT);
      B. pinMode(2, INPUT_PULLUP);
      C. pinMode(2, INPUT);
      D. pinMode(2, INPUT_PULLDOWN);

      Solution

      1. Step 1: Understand button wiring without external resistor

        Without an external resistor, the internal pull-up resistor must be enabled to keep the pin HIGH when the button is not pressed.
      2. Step 2: Choose correct pinMode()

        Using INPUT_PULLUP activates the internal pull-up resistor. INPUT alone leaves the pin floating. OUTPUT is wrong for reading. INPUT_PULLDOWN is not standard on Arduino.
      3. Final Answer:

        pinMode(2, INPUT_PULLUP); -> Option B
      4. Quick Check:

        Use INPUT_PULLUP for internal resistor = A [OK]
      Hint: Use INPUT_PULLUP to avoid external resistor on button pin [OK]
      Common Mistakes:
      • Using INPUT without pull-up resistor causes floating pin
      • Trying OUTPUT mode to read button
      • Assuming INPUT_PULLDOWN exists on all Arduino boards