The Amazing Annoyatron

0 of 20 lessons complete (0%)

Wakey Wakey

Thought there was nothing more annoying than the alarm clock? Well, you’re wrong. Here at EduKits, we’ve managed to build something even worse – an alarm clock that goes off at the wrong time.


Parts list

What you’ll need

Computer
Computer
Brain Board
Brain Board
Buzzer
Buzzer
USB Cable
USB Cable
Photoresistor
Light Sensor
10k Resistor
Resistor

Step 1

Let’s build this

Electronic Rooster

This is the positive leg of the buzzer. It will have a ‘+’ over top and will also be longer than the other leg.

The light sensor and the resistor both need to be plugged into pin A0.

Connections

Buzzer

The +LEG is the longer leg.

+ LEG11
– LEGGND

Light Sensor

Both legs are the same.

LEGA0
LEG5V

Resistor

Both legs are the same.

LEGA0
LEGGND

Step 2

Code some chaos

Don’t forget to select your port, like usual

Copy and paste the sample code

wakey_wakey.ino
int LDR = 0;
int buzzer = 11;

void setup() {
  pinMode(LDR, INPUT);
  pinMode(buzzer, OUTPUT);
}

void loop() {

  if(analogRead(LDR) > 150) {
     alarmTrigger(1);
  }

}

void alarmTrigger(int i) {
  for(int x = 0; x < i; x++) {
    digitalWrite(buzzer, HIGH);
    delay(500);
    digitalWrite(buzzer, LOW);
    delay(500);
  }
}

Upload the code and test it out


Step 3

Modify the madness

Change how much light triggers the alarm

To trigger the alarm, the program first needs to see that there’s enough light. However, you may want to fine-tune exactly how much light we need to set off the alarm. At the moment, it’s set to a value of 150 on line 11 of the code.

if(analogRead(LDR) > 150) {

That line of code is just saying that we should run the next few lines of code which trigger the alarm if we have light over a value of 150. If we decrease this, it will take less light to trigger the alarm. If increase this, it will need to be brighter for the alarm to go off.

Change how long the alarm stays on

Once the alarm has been triggered by a certain level of light, we can control exactly how long it stays on for afterwards. In our program, we set the alarm to beep five times before resetting, ready to be triggered again. Take a look at line 12:

alarmTrigger(1); // Trigger the alarm for 1 beep

By changing this code, we can either increase or decrease the number of beeps that the alarm stays on for when triggered. If we wanted it to stay on for 10 beeps, we would use the following code:

alarmTrigger(10); // Trigger the alarm for 10 beeps

Change the sound of the alarm

We can change the tone – or in other words, the sound – of the beeping using something called the tone() function. Take a look at the code on lines 26-29, which is what we are currently using for our beeps:

analogWrite(buzzer, 255);
delay(500);
analogWrite(buzzer, 0);
delay(500);

To be able to change the tone of the beeps, replace lines 19-22 of your program with the following code:

tone(buzzer, 1000, 500);
delay(1000);

The following code works like this: tone(buzzer, pitch, length). Replace the word pitch with any number you like, and this will control the sound of the beep. Replace the word length with exactly how long you want the beep to go for in milliseconds.

Here’s a different beeping sound that you can try out on your project:

tone(buzzer, 5000, 750);
delay(1000);