I build a little gadget to prank my lovely wife. WARNING! THIS DRIVES PEOPLE NUTS! DONT DO IT TO SOMEONE WHO IS LIKELY TO PUNCH YOU IN THE FACE.\r
Makes annoying beeps at random intervals. The random pitch and interval makes it very difficult to pin-point the source of the beeping. I might clean up the design and spin up a few circuit boards if anybody is interested in an easy build-along vid.\r
Thanks for your help! \r
\r
Heres the code:\r
/*\r
Lil BASTARD ZEN BLASTER\r
WARNING! THIS DRIVES PEOPLE NUTS! DONT DO IT TO ANYBODY WHO IS LIKELY TO PUNCH YOU IN THE FACE.\r
Makes annoying beeps at random intervals. The random pitch and interval makes it very difficult to pin-point the source of the beeping. \r
\r
*/\r
const int speaker = P1_7; // this sets the pin on the MSP430 that sends a beep to the speaker. \r
int duration = 1000; // this is a variable that stores the value of length of the tone\r
int frequency = 600; // this is a variable that stores the value of the frequency of the tone int counter = 0; // this is a variable that stores the value of how many times weve run thru the void loop \r
int trigger = 1; // this is a variable that stores how many times we run thru the void loop prior to triggering a beep sequence\r
int beeps = 2; // this is a variable that stores how many beeps in a sequence\r
\r
// the setup routine runs once when you press reset:\r
void setup() { tone(P1_7, 2500, 800);\r
delay (200);\r
tone(P1_7, 500, 800);\r
delay (200);\r
tone(P1_7, 2500, 800);\r
delay (200);\r
// this runs through a few tones when you first start to let you know its working.\r
\r
\r
}\r
\r
// the loop routine runs over and over again forever:\r
void loop() { counter = counter ++; // each time through the program, we add 1 to the value of counter\r
if ( trigger == counter && beeps == 2) { // if the trigger value and the counter value are equal AND the beep value is 2 then do this: counter = 0; // resets the counter value to zero beeps = random (2, 5); // sets the number of beeps for the next time trigger = random (500, 5000); // sets the length of time before the nextof beeps duration = random (200, 2000); // sets the length of time for each beep in milliseconds frequency = random (2500, 6000); // sets the frequency in Hertz of the square wave signal to the speaker tone (speaker, frequency, duration); // sends a beep square wave signal to the speaker according to the values of frequency and duration delay (duration/2); // sets a short delay pause to allow the beep prior to executing the next command duration = random (400, 1500); frequency = random (300, 4000); tone (speaker, frequency, duration); delay (duration/2); } if ( trigger == counter && beeps == 3) { counter = 0; beeps = random (2, 5); trigger = random (500, 5000); duration = random (200, 2000); frequency = random (2500, 6000); tone (speaker, frequency, duration); delay (duration/2); duration = random (500, 2000); frequency = random (300, 1500); tone (speaker, frequency, duration); delay (duration/2); duration = random (1500, 2000); frequency = random (300, 3000); tone (speaker, frequency, duration); delay (duration/2); }\r
Continued in comments. (its too long for description).