Bird
Raised Fist0
Arduinoprogramming~20 mins

Documentation and pin mapping in Arduino - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Pin Mapping Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ Predict Output
intermediate
2:00remaining
What is the output of this Arduino pin mapping code?

Consider the following Arduino code that maps pins and prints their states. What will be printed on the serial monitor?

Arduino
const int ledPin = 13;
const int buttonPin = 7;

void setup() {
  pinMode(ledPin, OUTPUT);
  pinMode(buttonPin, INPUT_PULLUP);
  Serial.begin(9600);
}

void loop() {
  int buttonState = digitalRead(buttonPin);
  if (buttonState == LOW) {
    digitalWrite(ledPin, HIGH);
    Serial.println("LED ON");
  } else {
    digitalWrite(ledPin, LOW);
    Serial.println("LED OFF");
  }
  delay(1000);
}
ALED ON always, no output printed
BLED OFF always, no output printed
CLED ON (if button pressed), LED OFF (if not pressed) every second
DSyntax error due to missing semicolon
Attempts:
2 left
💡 Hint

Remember that INPUT_PULLUP mode means the button reads HIGH when not pressed and LOW when pressed.

🧠 Conceptual
intermediate
1:00remaining
Which Arduino pin is best for PWM output?

Given an Arduino Uno, which pin below is typically used for PWM (Pulse Width Modulation) output?

APin 13
BPin 0
CPin 7
DPin 9
Attempts:
2 left
💡 Hint

Look for pins marked with a tilde (~) on the Arduino board.

🔧 Debug
advanced
2:00remaining
Why does this Arduino code fail to turn on the LED?

Examine the code below. The LED connected to pin 8 never turns on. What is the reason?

Arduino
int ledPin = 8;

void setup() {
  pinMode(ledPin, INPUT);
}

void loop() {
  digitalWrite(ledPin, HIGH);
}
AMissing semicolon after pinMode line
BThe pinMode is set to INPUT, so digitalWrite has no effect
CLED is connected to wrong pin number
DdigitalWrite should be called in setup, not loop
Attempts:
2 left
💡 Hint

Think about the difference between INPUT and OUTPUT pin modes.

📝 Syntax
advanced
1:30remaining
What error does this Arduino code produce?

Look at the code snippet below. What error will the Arduino IDE show when compiling?

Arduino
const int ledPin = 13;

void setup() {
  pinMode(ledPin, OUTPUT);
}

void loop() {
  digitalWrite(ledPin, HIGH);
  delay(1000);
  digitalWrite(ledPin, LOW);
  delay(1000);
}
ASyntax error: missing semicolon after const int ledPin = 13
BType error: ledPin must be declared as volatile
CRuntime error: delay function not defined
DNo error, code compiles and runs correctly
Attempts:
2 left
💡 Hint

Check the end of each statement for proper punctuation.

🚀 Application
expert
2:30remaining
How many pins are configured as OUTPUT after this Arduino setup?

Given the following Arduino setup code, how many pins are set as OUTPUT?

Arduino
const int pins[] = {2, 3, 4, 5, 6};

void setup() {
  for (int i = 0; i < 5; i++) {
    if (pins[i] % 2 == 0) {
      pinMode(pins[i], OUTPUT);
    } else {
      pinMode(pins[i], INPUT);
    }
  }
}

void loop() {}
A3
B0
C5
D2
Attempts:
2 left
💡 Hint

Count how many pins in the array are even numbers.

Practice

(1/5)
1. What is the main purpose of pin mapping in Arduino projects?
easy
A. To reduce the power consumption of the board
B. To increase the speed of the Arduino board
C. To give pins clear and meaningful names in the code
D. To change the physical location of pins on the board

Solution

  1. Step 1: Understand what pin mapping means

    Pin mapping means assigning clear names to pins in your code to make it easier to understand.
  2. Step 2: Identify the main purpose

    The main purpose is to make the code readable and easier to maintain by using meaningful names.
  3. Final Answer:

    To give pins clear and meaningful names in the code -> Option C
  4. Quick Check:

    Pin mapping = Clear pin names [OK]
Hint: Pin mapping means naming pins clearly in code [OK]
Common Mistakes:
  • Thinking pin mapping changes hardware
  • Confusing pin mapping with power settings
  • Assuming pin mapping speeds up the board
2. Which of the following is the correct way to define a pin mapping in Arduino code?
easy
A. int ledPin = 13;
B. pinMode(13) = ledPin;
C. digitalWrite(ledPin, 13);
D. define ledPin 13;

Solution

  1. Step 1: Review Arduino syntax for pin mapping

    Pin mapping is done by assigning a pin number to a variable, usually with int.
  2. Step 2: Check each option

    int ledPin = 13; correctly assigns pin 13 to variable ledPin. Others have wrong syntax or order.
  3. Final Answer:

    int ledPin = 13; -> Option A
  4. Quick Check:

    Pin mapping syntax = int variable = pin number [OK]
Hint: Use 'int variable = pinNumber;' to map pins [OK]
Common Mistakes:
  • Using pinMode incorrectly for mapping
  • Trying to assign pinMode as a variable
  • Using 'define' without # for constants
3. What will be the output on the serial monitor after running this Arduino code?
int sensorPin = A0;
void setup() {
  Serial.begin(9600);
}
void loop() {
  int value = analogRead(sensorPin);
  Serial.println(value);
  delay(1000);
}
medium
A. The text 'sensorPin' printed every second
B. A number between 0 and 1023 printed every second
C. An error because A0 cannot be used in analogRead
D. Nothing prints because Serial.begin is missing

Solution

  1. Step 1: Understand the code behavior

    The code reads analog input from pin A0 and prints the value to the serial monitor every second.
  2. Step 2: Analyze the output

    analogRead returns a value from 0 to 1023 based on voltage. Serial.println prints this number.
  3. Final Answer:

    A number between 0 and 1023 printed every second -> Option B
  4. Quick Check:

    analogRead(A0) = 0-1023 values [OK]
Hint: analogRead returns 0-1023 values from analog pins [OK]
Common Mistakes:
  • Thinking analogRead returns pin name
  • Assuming A0 is invalid for analogRead
  • Forgetting Serial.begin disables output
4. Identify the error in this Arduino code snippet related to pin mapping and fix it:
const int ledPin;
void setup() {
  ledPin = 13;
  pinMode(ledPin, OUTPUT);
}
medium
A. ledPin must be declared as a variable, not const
B. pinMode should be called before assigning ledPin
C. No error, code is correct
D. ledPin should be assigned when declared, not in setup()

Solution

  1. Step 1: Understand const variable rules in Arduino

    Constants must be assigned a value when declared and cannot be assigned later.
  2. Step 2: Identify the error in code

    Code declares const int ledPin; without value, then assigns in setup(), which is invalid.
  3. Final Answer:

    ledPin should be assigned when declared, not in setup() -> Option D
  4. Quick Check:

    const variables need immediate assignment [OK]
Hint: Assign const variables when declaring them [OK]
Common Mistakes:
  • Assigning const variables later in code
  • Thinking pinMode order matters here
  • Ignoring const keyword rules
5. You want to document your Arduino project with multiple sensors and LEDs. Which approach best improves code readability and maintenance?
hard
A. Use descriptive pin mapping variables and add comments explaining each connection
B. Use raw pin numbers directly in code without comments
C. Write all code in one function without separating setup and loop
D. Avoid comments to keep code clean and short

Solution

  1. Step 1: Understand importance of documentation and pin mapping

    Descriptive variable names and comments help others and yourself understand the project connections.
  2. Step 2: Evaluate each option

    Use descriptive pin mapping variables and add comments explaining each connection uses clear names and comments, which is best practice. Others reduce clarity and maintainability.
  3. Final Answer:

    Use descriptive pin mapping variables and add comments explaining each connection -> Option A
  4. Quick Check:

    Good documentation = clear names + comments [OK]
Hint: Name pins clearly and comment connections [OK]
Common Mistakes:
  • Using raw pin numbers without explanation
  • Skipping comments thinking code is self-explanatory
  • Mixing all code in one function
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