Lesson 4 Doorbell

Introduction

A buzzer is a great tool in your experiments whenever you want to make some sounds. In this lesson, we will learn how to drive an active buzzer to build a simple doorbell.

Components

../_images/mega08.png

Schematic Diagram

In this experiment, we use an active buzzer.

The schematic diagram:

../_images/mega09.png

Experimental Procedures

Step 1: Build the circuit (Long pins of buzzer is the Anode and the short pin is Cathode).

../_images/image88.png

Step 2: Open the code file.

Step 3: Select the Board and Port.

Step 4: Upload the sketch to the board.

Now, you should hear the buzzer beep.

../_images/image89.jpeg

Code

Code Analysis

Define variables

const int buttonPin = 2; //the button connect to pin2

const int buzzerPin = 8; //the buzzer connect to pin8

/**********************************/

int buttonState = 0; //variable for reading the pushbutton status

Connect the button to pin 2 and buzzer to pin 8. Define a variable buttonState to restore the state of the button.

Set the input and output status of the pins

void setup()

{

    pinMode(buttonPin, INPUT); //initialize the buttonPin as input

    pinMode(buzzerPin, OUTPUT); //initialize the buzzerpin as output

}

We need to know the status of the button in this experiment, so here set the buttonPin as INPUT; to set HIGH/LOW of the buzzer, we set buzzerPin as OUTPUT.

Read the status of the button

buttonState = digitalRead(buttonPin);

buttonPin(Pin2) is a digital pin; here is to read the value of the button and store it in buttonState.

digitalRead (Pin): Reads the value from a specified digital pin, either HIGH or LOW.

Press the button to make the buzzer sound

if (buttonState == HIGH ) //When press the button, run the following code.
{
    for (i = 0; i < 50; i++)
    /*When i=o, which accords with the condition i<=50, i++ equals to 1
    (here in i = i + 1, the two "i"s are not the same, but i(now) = i(before) + 1).
    Run the code in the curly braces: let the buzzer beep for 3ms and stop for 3ms.
    Then repeat 50 times.*/

    {
        digitalWrite(buzzerPin, HIGH); //Let the buzzer beep.
        delay(3); //wait for 3ms
        digitalWrite(buzzerPin, LOW); //Stop the buzzer.
        delay(3); //wait for 3ms
    }

    for (i = 0; i < 80; i++) //Let the buzzer beep for 5ms and stop for 5ms, repeat 80 times.
    {
        digitalWrite(buzzerPin, HIGH);
        delay(5); //wait for 5ms
        digitalWrite(buzzerPin, LOW);
        delay(5); //wait for 5ms
    }
}

In this part, when the buttonState is High level, then let the buzzer beeping in different frequency which can simulate the doorbell.