Bird
Raised Fist0
Arduinoprogramming~10 mins

Why project structure matters in Arduino - Test Your Understanding

Choose your learning style10 modes available
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to define the setup function in an Arduino sketch.

Arduino
void [1]() {
  pinMode(13, OUTPUT);
}
Drag options to blanks, or click blank then click option'
Asetup
Bloop
Cmain
Dinitialize
Attempts:
3 left
💡 Hint
Common Mistakes
Using loop instead of setup here.
2fill in blank
medium

Complete the code to blink the built-in LED inside the loop function.

Arduino
void loop() {
  digitalWrite(13, [1]);
  delay(1000);
  digitalWrite(13, LOW);
  delay(1000);
}
Drag options to blanks, or click blank then click option'
AHIGH
BLOW
CINPUT
DOUTPUT
Attempts:
3 left
💡 Hint
Common Mistakes
Using LOW which turns the LED off.
3fill in blank
hard

Fix the error in the code to correctly read a button state.

Arduino
int buttonState = digitalRead([1]);
Drag options to blanks, or click blank then click option'
A13
BINPUT
CbuttonPin
DHIGH
Attempts:
3 left
💡 Hint
Common Mistakes
Using HIGH or INPUT instead of the pin variable.
4fill in blank
hard

Fill both blanks to create a dictionary-like structure using arrays for LED pins and their states.

Arduino
int ledPins[] = {2, 3, 4, 5};
int ledStates[] = [1];

void setup() {
  for (int i = 0; i < [2]; i++) {
    pinMode(ledPins[i], OUTPUT);
  }
}
Drag options to blanks, or click blank then click option'
ALOW, LOW, LOW, LOW
BHIGH, HIGH, HIGH, HIGH
C4
D5
Attempts:
3 left
💡 Hint
Common Mistakes
Using wrong array size in loop.
Initializing states to HIGH instead of LOW.
5fill in blank
hard

Fill both blanks to create a function that turns on an LED given its pin number and duration.

Arduino
void turnOnLED([1], [2]) {
  digitalWrite(pin, HIGH);
  delay(duration);
  digitalWrite(pin, LOW);
}
Drag options to blanks, or click blank then click option'
Aint pin
Bint duration
Cduration
Dpin
Attempts:
3 left
💡 Hint
Common Mistakes
Missing parameter types.
Using wrong variable names inside the function.

Practice

(1/5)
1. Why is it important to organize your Arduino project files into folders?
easy
A. It helps you find and fix code faster.
B. It makes the code run faster on the Arduino board.
C. It reduces the size of the Arduino program.
D. It automatically fixes errors in the code.

Solution

  1. Step 1: Understand project organization benefits

    Organizing files into folders groups related code parts, making them easier to find.
  2. Step 2: Connect organization to faster fixing

    When code is easy to find, you can fix bugs or add features faster.
  3. Final Answer:

    It helps you find and fix code faster. -> Option A
  4. Quick Check:

    Good structure = faster work [OK]
Hint: Folders group code logically to speed up work [OK]
Common Mistakes:
  • Thinking organization speeds up code execution
  • Believing folders reduce program size
  • Assuming folders fix code errors automatically
2. Which of the following is the correct way to include a separate file in an Arduino project?
easy
A. import myFunctions.h
B. #include "myFunctions.h"
C. use myFunctions.h
D. require myFunctions.h

Solution

  1. Step 1: Recall Arduino file inclusion syntax

    Arduino uses C/C++ style includes with #include and quotes for local files.
  2. Step 2: Match correct syntax

    #include "myFunctions.h" is the correct way to include a header file in Arduino.
  3. Final Answer:

    #include "myFunctions.h" -> Option B
  4. Quick Check:

    #include "file" = correct Arduino include [OK]
Hint: Use #include "filename" for Arduino files [OK]
Common Mistakes:
  • Using import instead of #include
  • Using require or use which are not Arduino syntax
  • Forgetting quotes around the filename
3. Given this Arduino project structure:
Project/
  main.ino
  sensors/
    tempSensor.h
    tempSensor.cpp
  utils/
    helpers.h
    helpers.cpp
Which file should you include in main.ino to use temperature sensor functions?
medium
A. #include "main.ino"
B. #include "tempSensor.cpp"
C. #include "utils/helpers.h"
D. #include "sensors/tempSensor.h"

Solution

  1. Step 1: Identify header file for temperature sensor

    Header files (.h) declare functions; tempSensor.h is in sensors/ folder.
  2. Step 2: Include correct relative path

    Use #include "sensors/tempSensor.h" to access sensor functions in main.ino.
  3. Final Answer:

    #include "sensors/tempSensor.h" -> Option D
  4. Quick Check:

    Include header file with correct folder path [OK]
Hint: Include header (.h) files with folder path [OK]
Common Mistakes:
  • Including .cpp files directly
  • Including unrelated helper files
  • Including the main .ino file itself
4. You have this folder structure:
Project/
  main.ino
  motor/
    motorControl.h
    motorControl.cpp
But your code in main.ino gives an error: undefined reference to 'startMotor()'. What is the likely cause?
medium
A. You forgot to include motorControl.h in main.ino.
B. You included motorControl.cpp instead of motorControl.h.
C. You did not add motorControl.cpp to the project files to compile.
D. You named the folder motor instead of motors.

Solution

  1. Step 1: Understand undefined reference error

    This error means the function is declared but its code is missing during linking.
  2. Step 2: Check project compilation files

    Including header only declares functions; the .cpp file must be compiled and linked.
  3. Final Answer:

    You did not add motorControl.cpp to the project files to compile. -> Option C
  4. Quick Check:

    Missing .cpp in compile = undefined reference [OK]
Hint: Add all .cpp files to compile to avoid undefined errors [OK]
Common Mistakes:
  • Only including header but not compiling .cpp
  • Including .cpp file instead of header
  • Thinking folder name causes linking errors
5. You want to share your Arduino project with a friend. Which project structure practice helps your friend understand and improve your code easily?
hard
A. Organize code into folders by function and include clear comments.
B. Use random file names and place files in different folders without order.
C. Put all code in one large .ino file without folders.
D. Only share compiled binary files, not source code.

Solution

  1. Step 1: Identify good sharing practices

    Organizing code by function and adding comments makes it easier to read and improve.
  2. Step 2: Compare options

    One large file or random names confuse readers; compiled files hide code.
  3. Final Answer:

    Organize code into folders by function and include clear comments. -> Option A
  4. Quick Check:

    Good structure + comments = easy sharing [OK]
Hint: Use folders and comments for easy sharing [OK]
Common Mistakes:
  • Thinking one big file is easier to share
  • Ignoring file naming and folder order
  • Sharing only compiled files hides code
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