Crea una alarma con tono de Mario Bros
En este tutorial te muestro como conectar y cargar un sketch de arduino con código para hacer una alarma con 3 sensores y sonido de Marcio Bross.
Primero debemos conectar el circuito de la siguiente manera.
La recomendación que quiza pudiera dar, es colocar el buzzer mediante un transistor, sin embargo, así como esta conectado funciona a la perfección.
Despúes copiamos el código mostrado a continuación.
#############################################################
#define trig 13 //sensor ultrasonico trigger
#define echo 12 //sensor ultrasonico echo
#define senmov 11 //sensor de movimiento
#define sensorir 10 //sensor IR
#define pinSound A0 //Salida a buzzer pasivo
double duracion=0; //variable para almacenar la duracion de respuesta del sensor ultrasonico
double distancia=0; //almacéna la distancia calculada para el sensor ultrasonico
int disanterior=0,state=0,stateir=1; //variables para almacenar estado de los sensores
volatile int stateconf=0; //variable para almacenar el estado de configuracion de la alarma
String pass="2021"; //password de la alarma
bool activarsensores=0; // variable para almacenar el estado del sistema de alarmas
void tono() //funcion tono
{
analogWrite(pinSound,250);
tone(pinSound, 659, 83.3333333333);
delay(83.3333333333);
delay(41.6666666667);
tone(pinSound, 659, 83.3333333333);
delay(83.3333333333);
delay(166.666666667);
tone(pinSound, 659, 83.3333333333);
delay(83.3333333333);
delay(166.666666667);
tone(pinSound, 523, 83.3333333333);
delay(83.3333333333);
delay(41.6666666667);
tone(pinSound, 659, 83.3333333333);
delay(83.3333333333);
delay(166.666666667);
tone(pinSound, 783, 83.3333333333);
delay(83.3333333333);
delay(916.666666667);
tone(pinSound, 523, 83.3333333333);
delay(83.3333333333);
delay(291.666666667);
tone(pinSound, 391, 83.3333333333);
delay(83.3333333333);
delay(291.666666667);
tone(pinSound, 329, 83.3333333333);
delay(83.3333333333);
delay(291.666666667);
tone(pinSound, 440, 83.3333333333);
delay(83.3333333333);
delay(166.666666667);
tone(pinSound, 493, 83.3333333333);
delay(83.3333333333);
delay(166.666666667);
tone(pinSound, 466, 83.3333333333);
delay(83.3333333333);
delay(41.6666666667);
tone(pinSound, 440, 83.3333333333);
delay(83.3333333333);
delay(166.666666667);
tone(pinSound, 391, 83.3333333333);
delay(83.3333333333);
delay(83.3333333333);
tone(pinSound, 659, 83.3333333333);
delay(83.3333333333);
delay(83.3333333333);
tone(pinSound, 783, 83.3333333333);
delay(83.3333333333);
delay(83.3333333333);
tone(pinSound, 880, 83.3333333333);
delay(83.3333333333);
delay(166.666666667);
tone(pinSound, 698, 83.3333333333);
delay(83.3333333333);
delay(41.6666666667);
tone(pinSound, 783, 83.3333333333);
delay(83.3333333333);
delay(166.666666667);
tone(pinSound, 659, 83.3333333333);
delay(83.3333333333);
delay(166.666666667);
tone(pinSound, 523, 83.3333333333);
delay(83.3333333333);
delay(41.6666666667);
tone(pinSound, 587, 83.3333333333);
delay(83.3333333333);
delay(41.6666666667);
tone(pinSound, 493, 83.3333333333);
delay(83.3333333333);
delay(291.666666667);
tone(pinSound, 523, 83.3333333333);
delay(83.3333333333);
delay(291.666666667);
tone(pinSound, 391, 83.3333333333);
delay(83.3333333333);
delay(291.666666667);
tone(pinSound, 329, 83.3333333333);
delay(83.3333333333);
delay(291.666666667);
tone(pinSound, 440, 83.3333333333);
delay(83.3333333333);
delay(166.666666667);
tone(pinSound, 493, 83.3333333333);
delay(83.3333333333);
delay(166.666666667);
tone(pinSound, 466, 83.3333333333);
delay(83.3333333333);
delay(41.6666666667);
tone(pinSound, 440, 83.3333333333);
delay(83.3333333333);
delay(166.666666667);
tone(pinSound, 391, 83.3333333333);
delay(83.3333333333);
delay(83.3333333333);
tone(pinSound, 659, 83.3333333333);
delay(83.3333333333);
delay(83.3333333333);
tone(pinSound, 783, 83.3333333333);
delay(83.3333333333);
delay(83.3333333333);
tone(pinSound, 880, 83.3333333333);
delay(83.3333333333);
delay(166.666666667);
tone(pinSound, 698, 83.3333333333);
delay(83.3333333333);
delay(41.6666666667);
tone(pinSound, 783, 83.3333333333);
delay(83.3333333333);
delay(166.666666667);
tone(pinSound, 659, 83.3333333333);
delay(83.3333333333);
delay(166.666666667);
tone(pinSound, 523, 83.3333333333);
delay(83.3333333333);
delay(41.6666666667);
tone(pinSound, 587, 83.3333333333);
delay(83.3333333333);
delay(41.6666666667);
tone(pinSound, 493, 83.3333333333);
delay(83.3333333333);
delay(541.666666667);
tone(pinSound, 783, 83.3333333333);
delay(83.3333333333);
delay(41.6666666667);
tone(pinSound, 739, 83.3333333333);
delay(83.3333333333);
delay(41.6666666667);
tone(pinSound, 698, 83.3333333333);
delay(83.3333333333);
delay(41.6666666667);
tone(pinSound, 622, 83.3333333333);
delay(83.3333333333);
delay(166.666666667);
tone(pinSound, 659, 83.3333333333);
delay(83.3333333333);
delay(166.666666667);
tone(pinSound, 415, 83.3333333333);
delay(83.3333333333);
delay(41.6666666667);
tone(pinSound, 440, 83.3333333333);
delay(83.3333333333);
delay(41.6666666667);
tone(pinSound, 523, 83.3333333333);
delay(83.3333333333);
delay(166.666666667);
tone(pinSound, 440, 83.3333333333);
delay(83.3333333333);
delay(41.6666666667);
tone(pinSound, 523, 83.3333333333);
delay(83.3333333333);
delay(41.6666666667);
tone(pinSound, 587, 83.3333333333);
delay(83.3333333333);
delay(291.666666667);
tone(pinSound, 783, 83.3333333333);
delay(83.3333333333);
delay(41.6666666667);
tone(pinSound, 739, 83.3333333333);
delay(83.3333333333);
delay(41.6666666667);
tone(pinSound, 698, 83.3333333333);
delay(83.3333333333);
delay(41.6666666667);
tone(pinSound, 622, 83.3333333333);
delay(83.3333333333);
delay(166.666666667);
tone(pinSound, 659, 83.3333333333);
delay(83.3333333333);
delay(166.666666667);
tone(pinSound, 1046, 83.3333333333);
delay(83.3333333333);
delay(166.666666667);
tone(pinSound, 1046, 83.3333333333);
delay(83.3333333333);
delay(41.6666666667);
tone(pinSound, 1046, 83.3333333333);
delay(83.3333333333);
delay(666.666666667);
tone(pinSound, 783, 83.3333333333);
delay(83.3333333333);
delay(41.6666666667);
tone(pinSound, 739, 83.3333333333);
delay(83.3333333333);
delay(41.6666666667);
tone(pinSound, 698, 83.3333333333);
delay(83.3333333333);
delay(41.6666666667);
tone(pinSound, 622, 83.3333333333);
delay(83.3333333333);
delay(166.666666667);
tone(pinSound, 659, 83.3333333333);
delay(83.3333333333);
delay(166.666666667);
tone(pinSound, 415, 83.3333333333);
delay(83.3333333333);
delay(41.6666666667);
tone(pinSound, 440, 83.3333333333);
delay(83.3333333333);
delay(41.6666666667);
tone(pinSound, 523, 83.3333333333);
delay(83.3333333333);
delay(166.666666667);
tone(pinSound, 440, 83.3333333333);
delay(83.3333333333);
delay(41.6666666667);
tone(pinSound, 523, 83.3333333333);
delay(83.3333333333);
delay(41.6666666667);
tone(pinSound, 587, 83.3333333333);
delay(83.3333333333);
delay(291.666666667);
tone(pinSound, 622, 83.3333333333);
delay(83.3333333333);
delay(291.666666667);
tone(pinSound, 587, 83.3333333333);
delay(83.3333333333);
delay(291.666666667);
tone(pinSound, 523, 83.3333333333);
delay(83.3333333333);
delay(1166.66666667);
tone(pinSound, 783, 83.3333333333);
delay(83.3333333333);
delay(41.6666666667);
tone(pinSound, 739, 83.3333333333);
delay(83.3333333333);
delay(41.6666666667);
tone(pinSound, 698, 83.3333333333);
delay(83.3333333333);
delay(41.6666666667);
tone(pinSound, 622, 83.3333333333);
delay(83.3333333333);
delay(166.666666667);
tone(pinSound, 659, 83.3333333333);
delay(83.3333333333);
delay(166.666666667);
tone(pinSound, 415, 83.3333333333);
delay(83.3333333333);
delay(41.6666666667);
tone(pinSound, 440, 83.3333333333);
delay(83.3333333333);
delay(41.6666666667);
tone(pinSound, 523, 83.3333333333);
delay(83.3333333333);
delay(166.666666667);
tone(pinSound, 440, 83.3333333333);
delay(83.3333333333);
delay(41.6666666667);
tone(pinSound, 523, 83.3333333333);
delay(83.3333333333);
delay(41.6666666667);
tone(pinSound, 587, 83.3333333333);
delay(83.3333333333);
delay(291.666666667);
tone(pinSound, 783, 83.3333333333);
delay(83.3333333333);
delay(41.6666666667);
tone(pinSound, 739, 83.3333333333);
delay(83.3333333333);
delay(41.6666666667);
tone(pinSound, 698, 83.3333333333);
delay(83.3333333333);
delay(41.6666666667);
tone(pinSound, 622, 83.3333333333);
delay(83.3333333333);
delay(166.666666667);
tone(pinSound, 659, 83.3333333333);
delay(83.3333333333);
delay(166.666666667);
tone(pinSound, 1046, 83.3333333333);
delay(83.3333333333);
delay(166.666666667);
tone(pinSound, 1046, 83.3333333333);
delay(83.3333333333);
delay(41.6666666667);
tone(pinSound, 1046, 83.3333333333);
delay(83.3333333333);
delay(666.666666667);
tone(pinSound, 783, 83.3333333333);
delay(83.3333333333);
delay(41.6666666667);
tone(pinSound, 739, 83.3333333333);
delay(83.3333333333);
delay(41.6666666667);
tone(pinSound, 698, 83.3333333333);
delay(83.3333333333);
delay(41.6666666667);
tone(pinSound, 622, 83.3333333333);
delay(83.3333333333);
delay(166.666666667);
tone(pinSound, 659, 83.3333333333);
delay(83.3333333333);
delay(166.666666667);
tone(pinSound, 415, 83.3333333333);
delay(83.3333333333);
delay(41.6666666667);
tone(pinSound, 440, 83.3333333333);
delay(83.3333333333);
delay(41.6666666667);
tone(pinSound, 523, 83.3333333333);
delay(83.3333333333);
delay(166.666666667);
tone(pinSound, 440, 83.3333333333);
delay(83.3333333333);
delay(41.6666666667);
tone(pinSound, 523, 83.3333333333);
delay(83.3333333333);
delay(41.6666666667);
tone(pinSound, 587, 83.3333333333);
delay(83.3333333333);
delay(291.666666667);
tone(pinSound, 622, 83.3333333333);
delay(83.3333333333);
delay(291.666666667);
tone(pinSound, 587, 83.3333333333);
delay(83.3333333333);
delay(291.666666667);
tone(pinSound, 523, 83.3333333333);
delay(83.3333333333);
delay(916.666666667);
tone(pinSound, 523, 83.3333333333);
delay(83.3333333333);
delay(41.6666666667);
tone(pinSound, 523, 83.3333333333);
delay(83.3333333333);
delay(166.666666667);
tone(pinSound, 523, 83.3333333333);
delay(83.3333333333);
delay(166.666666667);
tone(pinSound, 523, 83.3333333333);
delay(83.3333333333);
delay(41.6666666667);
tone(pinSound, 587, 83.3333333333);
delay(83.3333333333);
delay(166.666666667);
tone(pinSound, 659, 83.3333333333);
delay(83.3333333333);
delay(41.6666666667);
tone(pinSound, 523, 83.3333333333);
delay(83.3333333333);
delay(166.666666667);
tone(pinSound, 440, 83.3333333333);
delay(83.3333333333);
delay(41.6666666667);
tone(pinSound, 391, 83.3333333333);
delay(83.3333333333);
delay(416.666666667);
tone(pinSound, 523, 83.3333333333);
delay(83.3333333333);
delay(41.6666666667);
tone(pinSound, 523, 83.3333333333);
delay(83.3333333333);
delay(166.666666667);
tone(pinSound, 523, 83.3333333333);
delay(83.3333333333);
delay(166.666666667);
tone(pinSound, 523, 83.3333333333);
delay(83.3333333333);
delay(41.6666666667);
tone(pinSound, 587, 83.3333333333);
delay(83.3333333333);
delay(41.6666666667);
tone(pinSound, 659, 83.3333333333);
delay(83.3333333333);
delay(1041.66666667);
tone(pinSound, 523, 83.3333333333);
delay(83.3333333333);
delay(41.6666666667);
tone(pinSound, 523, 83.3333333333);
delay(83.3333333333);
delay(166.666666667);
tone(pinSound, 523, 83.3333333333);
delay(83.3333333333);
delay(166.666666667);
tone(pinSound, 523, 83.3333333333);
delay(83.3333333333);
delay(41.6666666667);
tone(pinSound, 587, 83.3333333333);
delay(83.3333333333);
delay(166.666666667);
tone(pinSound, 659, 83.3333333333);
delay(83.3333333333);
delay(41.6666666667);
tone(pinSound, 523, 83.3333333333);
delay(83.3333333333);
delay(166.666666667);
tone(pinSound, 440, 83.3333333333);
delay(83.3333333333);
delay(41.6666666667);
tone(pinSound, 391, 83.3333333333);
delay(83.3333333333);
delay(416.666666667);
tone(pinSound, 659, 83.3333333333);
delay(83.3333333333);
delay(41.6666666667);
tone(pinSound, 659, 83.3333333333);
delay(83.3333333333);
delay(166.666666667);
tone(pinSound, 659, 83.3333333333);
delay(83.3333333333);
delay(166.666666667);
tone(pinSound, 523, 83.3333333333);
delay(83.3333333333);
delay(41.6666666667);
tone(pinSound, 659, 83.3333333333);
delay(83.3333333333);
delay(166.666666667);
tone(pinSound, 783, 83.3333333333);
delay(83.3333333333);
delay(916.666666667);
tone(pinSound, 523, 83.3333333333);
delay(83.3333333333);
delay(291.666666667);
tone(pinSound, 391, 83.3333333333);
delay(83.3333333333);
delay(291.666666667);
tone(pinSound, 329, 83.3333333333);
delay(83.3333333333);
delay(291.666666667);
tone(pinSound, 440, 83.3333333333);
delay(83.3333333333);
delay(166.666666667);
tone(pinSound, 493, 83.3333333333);
delay(83.3333333333);
delay(166.666666667);
tone(pinSound, 466, 83.3333333333);
delay(83.3333333333);
delay(41.6666666667);
tone(pinSound, 440, 83.3333333333);
delay(83.3333333333);
delay(166.666666667);
tone(pinSound, 391, 83.3333333333);
delay(83.3333333333);
delay(83.3333333333);
tone(pinSound, 659, 83.3333333333);
delay(83.3333333333);
delay(83.3333333333);
tone(pinSound, 783, 83.3333333333);
delay(83.3333333333);
delay(83.3333333333);
tone(pinSound, 880, 83.3333333333);
delay(83.3333333333);
delay(166.666666667);
tone(pinSound, 698, 83.3333333333);
delay(83.3333333333);
delay(41.6666666667);
tone(pinSound, 783, 83.3333333333);
delay(83.3333333333);
delay(166.666666667);
tone(pinSound, 659, 83.3333333333);
delay(83.3333333333);
delay(166.666666667);
tone(pinSound, 523, 83.3333333333);
delay(83.3333333333);
delay(41.6666666667);
tone(pinSound, 587, 83.3333333333);
delay(83.3333333333);
delay(41.6666666667);
tone(pinSound, 493, 83.3333333333);
delay(83.3333333333);
delay(291.666666667);
tone(pinSound, 523, 83.3333333333);
delay(83.3333333333);
delay(291.666666667);
tone(pinSound, 391, 83.3333333333);
delay(83.3333333333);
delay(291.666666667);
tone(pinSound, 329, 83.3333333333);
delay(83.3333333333);
delay(291.666666667);
tone(pinSound, 440, 83.3333333333);
delay(83.3333333333);
delay(166.666666667);
tone(pinSound, 493, 83.3333333333);
delay(83.3333333333);
delay(166.666666667);
tone(pinSound, 466, 83.3333333333);
delay(83.3333333333);
delay(41.6666666667);
tone(pinSound, 440, 83.3333333333);
delay(83.3333333333);
delay(166.666666667);
tone(pinSound, 391, 83.3333333333);
delay(83.3333333333);
delay(83.3333333333);
tone(pinSound, 659, 83.3333333333);
delay(83.3333333333);
delay(83.3333333333);
tone(pinSound, 783, 83.3333333333);
delay(83.3333333333);
delay(83.3333333333);
tone(pinSound, 880, 83.3333333333);
delay(83.3333333333);
delay(166.666666667);
tone(pinSound, 698, 83.3333333333);
delay(83.3333333333);
delay(41.6666666667);
tone(pinSound, 783, 83.3333333333);
delay(83.3333333333);
delay(166.666666667);
tone(pinSound, 659, 83.3333333333);
delay(83.3333333333);
delay(166.666666667);
tone(pinSound, 523, 83.3333333333);
delay(83.3333333333);
delay(41.6666666667);
tone(pinSound, 587, 83.3333333333);
delay(83.3333333333);
delay(41.6666666667);
tone(pinSound, 493, 83.3333333333);
delay(83.3333333333);
delay(291.666666667);
tone(pinSound, 659, 83.3333333333);
delay(83.3333333333);
delay(41.6666666667);
tone(pinSound, 523, 83.3333333333);
delay(83.3333333333);
delay(166.666666667);
tone(pinSound, 391, 83.3333333333);
delay(83.3333333333);
delay(291.666666667);
tone(pinSound, 415, 83.3333333333);
delay(83.3333333333);
delay(166.666666667);
tone(pinSound, 440, 83.3333333333);
delay(83.3333333333);
delay(41.6666666667);
tone(pinSound, 698, 83.3333333333);
delay(83.3333333333);
delay(166.666666667);
tone(pinSound, 698, 83.3333333333);
delay(83.3333333333);
delay(41.6666666667);
tone(pinSound, 440, 83.3333333333);
delay(83.3333333333);
delay(416.666666667);
tone(pinSound, 493, 83.3333333333);
delay(83.3333333333);
delay(83.3333333333);
tone(pinSound, 880, 83.3333333333);
delay(83.3333333333);
delay(83.3333333333);
tone(pinSound, 880, 83.3333333333);
delay(83.3333333333);
delay(83.3333333333);
tone(pinSound, 880, 83.3333333333);
delay(83.3333333333);
delay(83.3333333333);
tone(pinSound, 783, 83.3333333333);
delay(83.3333333333);
delay(83.3333333333);
tone(pinSound, 698, 83.3333333333);
delay(83.3333333333);
delay(83.3333333333);
tone(pinSound, 659, 83.3333333333);
delay(83.3333333333);
delay(41.6666666667);
tone(pinSound, 523, 83.3333333333);
delay(83.3333333333);
delay(166.666666667);
tone(pinSound, 440, 83.3333333333);
delay(83.3333333333);
delay(41.6666666667);
tone(pinSound, 391, 83.3333333333);
delay(83.3333333333);
delay(416.666666667);
tone(pinSound, 659, 83.3333333333);
delay(83.3333333333);
delay(41.6666666667);
tone(pinSound, 523, 83.3333333333);
delay(83.3333333333);
delay(166.666666667);
tone(pinSound, 391, 83.3333333333);
delay(83.3333333333);
delay(291.666666667);
tone(pinSound, 415, 83.3333333333);
delay(83.3333333333);
delay(166.666666667);
tone(pinSound, 440, 83.3333333333);
delay(83.3333333333);
delay(41.6666666667);
tone(pinSound, 698, 83.3333333333);
delay(83.3333333333);
delay(166.666666667);
tone(pinSound, 698, 83.3333333333);
delay(83.3333333333);
delay(41.6666666667);
tone(pinSound, 440, 83.3333333333);
delay(83.3333333333);
delay(416.666666667);
tone(pinSound, 493, 83.3333333333);
delay(83.3333333333);
delay(41.6666666667);
tone(pinSound, 698, 83.3333333333);
delay(83.3333333333);
delay(166.666666667);
tone(pinSound, 698, 83.3333333333);
delay(83.3333333333);
delay(41.6666666667);
tone(pinSound, 698, 83.3333333333);
delay(83.3333333333);
delay(83.3333333333);
tone(pinSound, 659, 83.3333333333);
delay(83.3333333333);
delay(83.3333333333);
tone(pinSound, 587, 83.3333333333);
delay(83.3333333333);
delay(83.3333333333);
tone(pinSound, 523, 83.3333333333);
delay(83.3333333333);
delay(916.666666667);
}
void setup()
{
pinMode(trig,OUTPUT); //
pinMode(echo,INPUT); // Entradas y Salidas para los sensores
pinMode(senmov,INPUT); //
pinMode(sensorir,INPUT); //
Serial.begin(9600); //Inicializa el puerto serial
Serial.println("Sistema de Alarma"); //
Serial.println("Alarma Desactivada");// Texto de inicio de programa
Serial.println("Introduzca el password: ");// Solicita pass para activar alarma
}
void loop()
{
if(activarsensores == 0) // Si no esta activada la alarma no realiza nada
{
}
else if(activarsensores == 1) // Inicio de sensado
{
digitalWrite(trig,LOW);//
delayMicroseconds(2);//
digitalWrite(trig,HIGH);//Código para hacer funcionar el sensor ultrasónico
delayMicroseconds(10);//
digitalWrite(trig,LOW);//
duracion=pulseIn(echo,HIGH);//
distancia=(duracion / 2)/ 29.1; //Calcula la distancia
if(distancia > 50 && distancia < 70 )//Esta condicion establece el rango de distancia en cm para la activacion de alarma por medio del sensor ultrasonico, esta establecida para que unicamente se active a 80cm pero si usted quiere otro rango solo modifique los valores
{
Serial.print("Alarma activada por sensor ultrasonico a :"); // Texto indicando que se activo la alarma por medio del sensor ultrasonico
Serial.print(distancia);
Serial.println("cm");
tono();
}
state=digitalRead(senmov); // Detecta si el sensor de movimiento se activo
if(state == 1)
{
Serial.println("El sensor de movimiento se activo");// Texto indicando que se activo la alarma por medio del sensor de movimiento
tono();
}
stateir=digitalRead(sensorir); // Detecta si el sensor IR se activo
if(stateir == 1)
{
Serial.println("INFRARROJO ACTIVO"); // Texto indicando que se activo la alarma por medio del sensor de IR
tono();
}
}
}
void serialEvent() // Funcion para leer puerto serial de contraseña
{
String cadena=""; // variable para almacenar el texto puesto en puerto serial
while (Serial.available()> 0)
{
char CaracterEntrada = Serial.read(); // Lee el puerto serial
cadena+=CaracterEntrada;
delay(50);
}
cadena.trim(); //Elimina espacios del texto introducido por puerto serial
if(cadena == pass) //Compara el string con el password
{
if (cadena == pass) //Si es correcto el password establece como activada o desactivada la alarma
{
stateconf=!stateconf;
}
if(stateconf == 0) //Imprime texto Alarma Desactivada
{
Serial.println("Alarma Desactivada");
activarsensores=0;
}
if(stateconf == 1) //Imprime texto Alarma Activada
{
Serial.println("Alarma Activada");
activarsensores=1;
}
}
}
#############################################################
No te olvides de darle clic en verificar para compilar y despues darle en cargar.
Si quieres cambiar la sensibilidad de los sensores, puedes hacerlo mediante el código.
Todas las líneas vienen documentadas para que sepas que hace cada línea.
Si te gusto este proyecto y te gustaría que crearamos más como este, haznoslo saber en los comentarios o en nuestras redes y pagina web.
Facebook: @GPTecnologias
WHATSAPP: +52 22 11 59 66 56
Comentarios
Publicar un comentario