Bird
Raised Fist0
Arduinoprogramming~10 mins

Alarm system with sensor and buzzer in Arduino - Step-by-Step Execution

Choose your learning style10 modes available
Concept Flow - Alarm system with sensor and buzzer
Start
↓
Initialize pins
↓
Read sensor value
↓
Is sensor triggered?
No→Wait and read again
Yes↓
Turn buzzer ON
↓
Keep buzzer ON for a moment
↓
Turn buzzer OFF
↓
Repeat loop
The system starts by setting up pins, then continuously reads the sensor. If triggered, it turns the buzzer on briefly, then off, and repeats.
Execution Sample
Arduino
const int sensorPin = 2;
const int buzzerPin = 9;

void setup() {
  pinMode(sensorPin, INPUT);
  pinMode(buzzerPin, OUTPUT);
}

void loop() {
  int sensorValue = digitalRead(sensorPin);
  if (sensorValue == HIGH) {
    digitalWrite(buzzerPin, HIGH);
    delay(1000);
    digitalWrite(buzzerPin, LOW);
  }
}
This code reads a sensor on pin 2; if triggered (HIGH), it turns on a buzzer on pin 9 for 1 second.
Execution Table
StepActionSensor ValueCondition (sensorValue == HIGH)Buzzer StateDelay/Wait
1Setup pinsN/AN/ABuzzer OFFN/A
2Read sensorLOWFalseBuzzer OFFN/A
3Loop againN/AN/ABuzzer OFFN/A
4Read sensorHIGHTrueBuzzer ONStart 1000ms delay
5During delayHIGHTrueBuzzer ONContinuing delay
6After delayHIGHTrueBuzzer OFFDelay ended
7Loop againN/AN/ABuzzer OFFN/A
💡 The loop never exits; it continuously reads sensor and controls buzzer accordingly.
Variable Tracker
VariableStartAfter Step 2After Step 4After Step 6Final
sensorValueN/ALOWHIGHHIGHDepends on sensor
buzzerPin stateOFFOFFONOFFOFF or ON depending on sensor
Key Moments - 3 Insights
Why does the buzzer turn on only when sensorValue is HIGH?
Because the condition in the if statement (sensorValue == HIGH) is true only when the sensor detects something, as shown in execution_table row 4.
What happens during the delay(1000) call?
The program pauses for 1000 milliseconds (1 second) while the buzzer stays ON, as seen in execution_table rows 4 and 5.
Why does the loop keep running forever?
Because Arduino's loop() function repeats endlessly, continuously checking the sensor and controlling the buzzer, as shown by the repeated steps in the execution_table.
Visual Quiz - 3 Questions
Test your understanding
Look at the execution_table, what is the buzzer state at Step 5 during the delay?
ABuzzer OFF
BBuzzer ON
CBuzzer blinking
DBuzzer disconnected
💡 Hint
Check the 'Buzzer State' column at Step 5 in the execution_table.
At which step does the sensorValue first become HIGH?
AStep 4
BStep 6
CStep 2
DStep 7
💡 Hint
Look at the 'Sensor Value' column in the execution_table to find when it changes to HIGH.
If the sensor never detects anything (always LOW), what will the buzzer state be after Step 3?
ABlinking
BON
COFF
DRandom
💡 Hint
Refer to the 'Buzzer State' column in execution_table rows 2 and 3.
Concept Snapshot
Arduino alarm system:
- Setup sensor pin as INPUT
- Setup buzzer pin as OUTPUT
- In loop, read sensor
- If sensor HIGH, turn buzzer ON
- Keep buzzer ON for 1 second
- Then turn buzzer OFF
- Repeat forever
Full Transcript
This Arduino alarm system code starts by setting the sensor pin as input and the buzzer pin as output. In the loop, it reads the sensor value. If the sensor detects something (sensorValue is HIGH), it turns the buzzer on for one second, then turns it off. The loop repeats endlessly, continuously checking the sensor and controlling the buzzer. The execution table shows each step: reading sensor, checking condition, turning buzzer on or off, and waiting during delay. Variables like sensorValue and buzzer state change accordingly. Key points include understanding the if condition, the delay pause, and the infinite loop behavior.

Practice

(1/5)
1. What does the digitalRead(sensorPin) function do in an Arduino alarm system?
easy
A. It turns on the buzzer connected to sensorPin.
B. It sets the sensorPin to HIGH to activate the sensor.
C. It reads the current state (HIGH or LOW) of the sensor connected to sensorPin.
D. It resets the Arduino board.

Solution

  1. Step 1: Understand digitalRead function

    The function digitalRead(pin) checks the electrical state of the given pin, returning HIGH or LOW.
  2. Step 2: Apply to sensorPin

    When used with sensorPin, it reads if the sensor is triggered (HIGH) or not (LOW).
  3. Final Answer:

    It reads the current state (HIGH or LOW) of the sensor connected to sensorPin. -> Option C
  4. Quick Check:

    digitalRead(sensorPin) = sensor state [OK]
Hint: digitalRead reads input pin state, not output [OK]
Common Mistakes:
  • Confusing digitalRead with digitalWrite
  • Thinking digitalRead sets pin state
  • Assuming digitalRead controls buzzer
2. Which of the following is the correct way to turn ON a buzzer connected to pin 9 in Arduino?
easy
A. digitalWrite(9, HIGH);
B. pinMode(9, INPUT);
C. digitalRead(9);
D. analogWrite(9, LOW);

Solution

  1. Step 1: Identify function to set pin output

    digitalWrite(pin, HIGH) sets the pin to HIGH voltage, turning ON devices like buzzers.
  2. Step 2: Check pin number and value

    Pin 9 is correct, and HIGH turns the buzzer ON.
  3. Final Answer:

    digitalWrite(9, HIGH); -> Option A
  4. Quick Check:

    digitalWrite(pin, HIGH) = turn ON output [OK]
Hint: Use digitalWrite(pin, HIGH) to turn ON output devices [OK]
Common Mistakes:
  • Using digitalRead instead of digitalWrite
  • Setting pinMode to INPUT to turn ON buzzer
  • Using analogWrite with LOW to turn ON buzzer
3. What will be the output behavior of this Arduino code snippet?
const int sensorPin = 2;
const int buzzerPin = 9;

void setup() {
  pinMode(sensorPin, INPUT);
  pinMode(buzzerPin, OUTPUT);
}

void loop() {
  int sensorState = digitalRead(sensorPin);
  if (sensorState == HIGH) {
    digitalWrite(buzzerPin, HIGH);
  } else {
    digitalWrite(buzzerPin, LOW);
  }
}
medium
A. The buzzer will sound only when the sensor detects HIGH signal.
B. The buzzer will always be ON regardless of sensor state.
C. The buzzer will never turn ON.
D. The code will cause a compilation error.

Solution

  1. Step 1: Analyze sensor reading

    The code reads sensorPin state; if HIGH, it triggers the buzzer.
  2. Step 2: Check buzzer control logic

    If sensorState is HIGH, buzzerPin is set HIGH (ON), else LOW (OFF).
  3. Final Answer:

    The buzzer will sound only when the sensor detects HIGH signal. -> Option A
  4. Quick Check:

    sensor HIGH -> buzzer ON, else OFF [OK]
Hint: If sensor reads HIGH, buzzer turns ON [OK]
Common Mistakes:
  • Assuming buzzer is always ON
  • Thinking code has syntax errors
  • Confusing sensor input with buzzer output
4. Identify the error in this Arduino alarm code snippet:
const int sensorPin = 3;
const int buzzerPin = 8;

void setup() {
  pinMode(sensorPin, OUTPUT);
  pinMode(buzzerPin, OUTPUT);
}

void loop() {
  if (digitalRead(sensorPin) == HIGH) {
    digitalWrite(buzzerPin, HIGH);
  } else {
    digitalWrite(buzzerPin, LOW);
  }
}
medium
A. digitalWrite should use LOW to turn buzzer ON.
B. sensorPin should be set as INPUT, not OUTPUT.
C. digitalRead cannot be used on sensorPin.
D. buzzerPin should be set as INPUT, not OUTPUT.

Solution

  1. Step 1: Check pinMode for sensorPin

    sensorPin reads sensor input, so it must be INPUT, not OUTPUT.
  2. Step 2: Verify buzzerPin mode

    buzzerPin controls buzzer output, so OUTPUT is correct.
  3. Final Answer:

    sensorPin should be set as INPUT, not OUTPUT. -> Option B
  4. Quick Check:

    Input pins need pinMode(INPUT) [OK]
Hint: Set sensor pins as INPUT, buzzer pins as OUTPUT [OK]
Common Mistakes:
  • Setting sensorPin as OUTPUT
  • Confusing input and output pin modes
  • Misusing digitalWrite for sensor reading
5. You want to modify an Arduino alarm system so the buzzer sounds only if the sensor detects HIGH for 3 seconds continuously. Which code change correctly implements this?
hard
A. Add a delay(3000) after detecting HIGH before turning buzzer ON.
B. Set sensorPin as OUTPUT and buzzerPin as INPUT to control timing.
C. Turn buzzer ON immediately when sensorPin is HIGH, then delay 3000 ms.
D. Use a timer to check if sensorPin stays HIGH for 3000 ms before activating buzzer.

Solution

  1. Step 1: Understand requirement for continuous HIGH detection

    We need to confirm sensorPin stays HIGH for 3 seconds before buzzer sounds.
  2. Step 2: Evaluate options for timing logic

    Using a timer to measure continuous HIGH duration is correct; delay alone pauses code and is insufficient.
  3. Final Answer:

    Use a timer to check if sensorPin stays HIGH for 3000 ms before activating buzzer. -> Option D
  4. Quick Check:

    Continuous HIGH detection needs timer logic [OK]
Hint: Use timer logic, not delay, for continuous sensor check [OK]
Common Mistakes:
  • Using delay which blocks code execution
  • Switching pin modes incorrectly
  • Turning buzzer ON immediately without timing
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