Bird
Raised Fist0
Arduinoprogramming~5 mins

setup() and loop() execution model 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 setup() function in Arduino?
The setup() function runs once when the Arduino starts. It is used to initialize settings like pin modes or start serial communication.
Click to reveal answer
beginner
How often does the loop() function run in an Arduino program?
The loop() function runs repeatedly in a cycle after setup() finishes. It keeps running forever until the board is turned off.
Click to reveal answer
beginner
Why is the loop() function important in Arduino programming?
The loop() function lets the Arduino keep checking sensors, updating outputs, or responding to events continuously, like a heartbeat for the program.
Click to reveal answer
intermediate
What happens if you put code inside setup() instead of loop()?
Code inside setup() runs only once at the start. If you want something to happen repeatedly, it must be inside loop(). Otherwise, it runs just one time.
Click to reveal answer
intermediate
Can setup() or loop() be called manually in Arduino code?
No, Arduino automatically calls setup() once at start and then calls loop() repeatedly. You should not call them yourself.
Click to reveal answer
When does the setup() function run in an Arduino program?
AOnce at the start
BRepeatedly forever
COnly when a button is pressed
DNever
What is the main role of the loop() function?
ATo initialize variables
BTo run code repeatedly
CTo stop the program
DTo reset the Arduino
If you want to blink an LED continuously, where should the blinking code go?
AOutside both functions
BInside <code>setup()</code>
CInside <code>loop()</code>
DIn a separate file
Can you call setup() manually in your Arduino sketch?
ANo, Arduino calls it automatically once
BYes, anytime
COnly inside <code>loop()</code>
DOnly if you use a special command
What happens after setup() finishes running?
AThe program stops
BThe Arduino resets
CNothing happens
DThe <code>loop()</code> function starts running repeatedly
Explain how the setup() and loop() functions work together in an Arduino program.
Think about what happens when the Arduino turns on and what happens after.
You got /4 concepts.
    Describe a real-life example where you would put code inside setup() and code inside loop().
    Imagine turning on a device and then it doing something over and over.
    You got /3 concepts.

      Practice

      (1/5)
      1. What is the main purpose of the setup() function in an Arduino program?
      easy
      A. To stop the Arduino program
      B. To run code repeatedly forever
      C. To reset the Arduino board
      D. To run code once at the start to prepare the Arduino

      Solution

      1. Step 1: Understand the role of setup()

        The setup() function runs only once when the Arduino starts. It is used to prepare things like pin modes or initial settings.
      2. Step 2: Compare with other options

        loop() runs repeatedly, so To run code repeatedly forever is incorrect. Options A and D describe actions not done by setup().
      3. Final Answer:

        To run code once at the start to prepare the Arduino -> Option D
      4. Quick Check:

        setup() runs once = C [OK]
      Hint: Remember: setup() runs once, loop() runs forever [OK]
      Common Mistakes:
      • Thinking setup() runs repeatedly
      • Confusing setup() with loop()
      • Believing setup() resets the board
      2. Which of the following is the correct way to declare the loop() function in Arduino?
      easy
      A. int loop() {}
      B. void loop() {}
      C. void loop(void) {}
      D. loop() void {}

      Solution

      1. Step 1: Recall Arduino function syntax

        Arduino functions like loop() are declared with return type void and empty parentheses: void loop() {}.
      2. Step 2: Check each option

        void loop() {} matches correct syntax. int loop() {} wrongly uses int return type. void loop(void) {} is valid C++ but less common in Arduino examples. loop() void {} has incorrect order.
      3. Final Answer:

        void loop() {} -> Option B
      4. Quick Check:

        Standard Arduino loop syntax = A [OK]
      Hint: Use 'void loop()' exactly as Arduino expects [OK]
      Common Mistakes:
      • Using wrong return type like int
      • Swapping order of function name and return type
      • Adding parameters inside loop()
      3. What will be the output on the Serial Monitor when running this Arduino code?
      void setup() {
        Serial.begin(9600);
        Serial.println("Start");
      }
      
      void loop() {
        Serial.println("Looping");
        delay(1000);
      }
      medium
      A. Start and Looping printed once each
      B. Only Looping printed repeatedly
      C. Start printed once, then Looping printed every second
      D. No output because Serial.begin() is missing

      Solution

      1. Step 1: Analyze setup() output

        Serial.begin(9600) starts serial communication. Serial.println("Start") prints "Start" once at the beginning.
      2. Step 2: Analyze loop() output

        loop() prints "Looping" every 1000 milliseconds (1 second) repeatedly.
      3. Final Answer:

        Start printed once, then Looping printed every second -> Option C
      4. Quick Check:

        setup() once, loop() repeats = B [OK]
      Hint: setup() prints once, loop() repeats output [OK]
      Common Mistakes:
      • Thinking loop() runs once
      • Missing Serial.begin() call
      • Ignoring delay causing fast prints
      4. Identify the error in this Arduino code:
      void setup() {
        pinMode(13, OUTPUT);
      }
      
      void loop() {
        digitalWrite(13, HIGH);
        delay(1000);
        digitalWrite(13, LOW);
        delay(1000)
      }
      medium
      A. Missing semicolon after delay(1000) in loop()
      B. pinMode should be in loop(), not setup()
      C. digitalWrite cannot be used with pin 13
      D. delay() cannot be used inside loop()

      Solution

      1. Step 1: Check syntax line by line

        In loop(), the line delay(1000) is missing a semicolon at the end.
      2. Step 2: Verify other parts

        pinMode is correctly placed in setup(). digitalWrite works with pin 13. delay() is allowed in loop().
      3. Final Answer:

        Missing semicolon after delay(1000) in loop() -> Option A
      4. Quick Check:

        Syntax error = missing semicolon [OK]
      Hint: Check every line ends with a semicolon [OK]
      Common Mistakes:
      • Placing pinMode in loop() unnecessarily
      • Assuming digitalWrite can't use pin 13
      • Thinking delay() is disallowed in loop()
      5. You want to blink an LED connected to pin 9 exactly 5 times when the Arduino starts, then stop blinking. Which code correctly uses setup() and loop() to do this?
      hard
      A. Use a counter in setup() to blink 5 times; leave loop() empty
      B. Blink 5 times inside loop() without a counter
      C. Blink 5 times inside loop() using a counter, then stop blinking
      D. Blink 5 times inside setup(), then keep blinking in loop()

      Solution

      1. Step 1: Understand blinking 5 times only once

        Since blinking 5 times is a one-time task, it should be done in setup() which runs once.
      2. Step 2: Keep loop() empty to stop further blinking

        Leaving loop() empty prevents repeated blinking after the initial 5 times.
      3. Final Answer:

        Use a counter in setup() to blink 5 times; leave loop() empty -> Option A
      4. Quick Check:

        One-time task in setup() = A [OK]
      Hint: One-time actions go in setup(), repeated in loop() [OK]
      Common Mistakes:
      • Blinking in loop() without stopping
      • Not using a counter to limit blinks
      • Putting one-time code in loop() causing repeats