Lesson 10 Controlling Buzzer by Photoresistor

Share for us

Introduction

Since you have learnt how to use a photoresistor, in this lesson, you will learn how to control a buzzer to make it beep in different frequencies by the photoresistor.

Compoment

– 1* SunFounder Uno board

– 1 * USB data cable

– 1 * Photoresistor

– 1 * Buzzer (Active)

– 1 * Resistor (10KΩ)

– Several jumper wires

-1 * Breadboard

Experiment Principle

When you shine some light on the photoresistor, if the incident light gets stronger, the resistance of the photoresistor will decrease; if the incident light becomes weaker, the resistance will increase.

In this experiment, the output of the photoresistor is sent to pin A0 on the SunFounder Uno board and then processed by the ADC on the board to output a digital signal. We use this digital signal as the parameter of the delay() function in the sketch to make the buzzer beep.

When the incident light is strong, the output value gets greater, thus the buzzer will beep slowly; when incident light is weak, the output value is smaller, thus the buzzer will beep sharply.

Experiment Procedures

Step 1: Build the circuit

The schematic diagram

Step 2: Program (Please refer to the example code in LEARN -> Get Tutorials on our website)

Step 3: Compile the code

Step 4: Upload the sketch to the SunFounder Uno board

Now, if you place the photoresistor in a dark environment, the buzzer will beep sharply; if you shine a flashlight on the photoresistor, the buzzer beeping will slow down.

Code

/**********************************************************
* name:Controlling Buzzer by Photoresistor
* function: if you place the photoresistor in a dark environment, the buzzer will beep sharply;* if you shine a flashlight on the photoresistor, the buzzer beeping will slow down.
**********************************************************/
//Email:support@sunfounder.com
//Website:www.sunfounder.com/*******************************/
const int photocellPin = A0; //photocell attach to
int sensorValue = 0; // value read from the sensor
const int buzzerPin = 9; //buzzer attach tovoid setup()
{
  pinMode(buzzerPin, OUTPUT); //initialize buzzer as an output
}
void loop()
{
  sensorValue = analogRead(photocellPin); //read the value of A0
  digitalWrite(buzzerPin, HIGH); //
  delay(sensorValue); //wait for a while,and the delay time depend on the sensorValue
  digitalWrite(buzzerPin, LOW);
  delay(sensorValue);
}