Explora Libros electrónicos
Categorías
Explora Audiolibros
Categorías
Explora Revistas
Categorías
Explora Documentos
Categorías
ELECTRNICA
Sistema de
Alarma
2
- Objetivo:
El Objetivo principal de este proyecto es realizar un sistema de alarma controlado
manualmente. Dispondr de varios modos con los que nos moveremos por el programa
(alarma apagada, encendida, etc.), de contrasea (la cual designaremos cuando arranque el
programa), de una temporizacin para la activacin de la alarma, de un dispositivo de sonido
como un zumbador y de una pantalla LCD en la que se nos mostrar la informacin necesaria
para interactuar con el programa.
- Justificacin:
Realizar un sistema de alarma barato, fcil de usar y con una contrasea que
podremoscambiar cuando deseemos.
- Plan de trabajo:
El plan de trabajo ser dividido en varias etapas:
sta ser la primera fase del proyecto, realizar el circuito del proyecto usando las placas
prototipo, conociendo en todo momento las entradas y salidas que usaremos en el arduino,
para una programacin correcta. Para ello usaremos los siguientes materiales:
- Pack Arduino UNO: del pack usaremos la placa Arduino UNO, la pantalla LCD y el
teclado.
- 3 pulsadores.
- 1 zumbador.
- 1 potencimetro.
- Un total de 15 resistencias
3
Para el montaje del circuito podemos seguir el siguiente esquema:
Nuestra pantalla LCD slo tiene 4 patillas: VCC, GND, SCL y SDA. La patilla SCL la
conectaremos a la entrada analgica A5 del Arduino, y la SDA a la A4
4
5
El teclado requiere de 8 patillas digitales del arduino normalmente, pero podemos
utilizar solo una entrada analgica, si usamos un divisor de tensin para cada tecla y un
mtodo en la programacin que explicaremos ms tarde, ahorrando un gran nmero de
patillas, sin las que nos sera imposible realizar el proyecto. Lo conectaremos de la siguiente
manera:
6
B) Programacin:
- La pantalla LCD:
Para poder usar la pantalla LCD en el compilador tenemos que poner esta librera:
Con esto ya podremos usar la LCD, para ello se usarn los siguientes comandos:
7
- El teclado:
Para poder conectar el teclado al Arduino usando slo una entrada analgica, lo
haremos con el divisor de tensin que hemos explicado anteriormente. De esta
manera cada tecla nos enviar una seal analgica distinta de las otras, por lo tanto
mediante los rangos de la seal podremos asignar cada valor a un nmero del teclado.
Lo podremos hacer de esta forma:
do
nf = 1;
x ++;
nf = 2;
x ++;
nf = 3;
x ++;
nf = 4;
x ++;
8
}
nf = 5;
x ++;
nf = 6;
x ++;
nf = 7;
x ++;
nf = 8;
x ++;
nf = 9;
x ++;
9
{
nf = 0;
x ++;
En este proyecto solo hemos usado los nmeros, as que si queremos aadir el resto
de teclas de nuestro teclado, comprobaremos los rangos de seal que puede dar cada
tecla y lo aadiremos en el compilador de la manera anterior.
- El zumbador:
delay (150);
delay (150);
noTone (zumbador);
10
PROGRAMACIN POR PARTES:
1- Declaracin de variables.
int pulsador_setup = 8;
int pulsador_verde = 7;
int pulsador_naranja = 6;
int sensor_mov = 5;
2- La funcin setup:
11
void setup()
lcd.init ();
lcd.backlight ();
Serial.begin (9600);
12
3- La funcin modo_inicio:
void modo_inicio()
lcd.clear ();
lcd.setCursor (3,1);
i=0;
do
nf = 1;
x ++;
nf = 2;
x ++;
13
}
nf = 3;
x ++;
nf = 4;
x ++;
nf = 5;
x ++;
nf = 6;
x ++;
nf = 7;
x ++;
14
{
nf = 8;
x ++;
nf = 9;
x ++;
nf = 0;
x ++;
if (ultnum != nf)
x = 0;
Serial.println (nf);
lcd.print (nf);
delay (100);
noTone (zumbador);
delay (400);
ultnum = nf;
15
i++;
x = 0;
Serial.println (nf);
lcd.print (nf);
delay (100);
noTone (zumbador);
delay (400);
i++;
while (i != 6);
lcd.clear ();
lcd.setCursor (3,1);
lcd.print (pass1[0]);
lcd.print (pass1[1]);
lcd.print (pass1[2]);
lcd.print (pass1[3]);
lcd.print (pass1[4]);
16
lcd.print (pass1[5]);
delay (5000);
lcd.clear ();
do
Serial.println (temporizador);
lcd.setCursor (3,1);
lcd.print (temporizador);
inicio = 1;
nivel = 1;
17
4- La funcin modo_verde:
Cuando se activa esta funcin se enciende el led verde y nos indica que la alarma est
desactivada pero lista para usarse, con la contrasea y el tiempo de activacin ya
determinados. Desde esta funcin puede pasarse al modo_inicio o modo_naranja:
void modo_verde()
lcd.clear();
nivel = 1;
5- La funcin modo_naranja:
void modo_naranja()
lcd.clear();
18
temp2 = temporizador;
lcd.setCursor (3,1);
lcd.print (temp2);
delay (150);
noTone (zumbador);
delay (850);
temp2--;
delay (150);
noTone (zumbador);
lcd.clear();
nivel = 2;
6- La funcin modo_rojo:
Una vez se active este modo, el led rojo y el zumbador se activarn y quedarn fijos,
con una pequea intermitencia al principio. Tambin se nos pedir una contrasea de
19
6 dgitos, si introducimos la correcta el zumbador se desactivar y el programa pasar
al modo_verde, si sta es incorrecta el modo_rojo se volver a activar otra vez:
void modo_rojo()
lcd.clear ();
delay (100);
delay (100);
delay (100);
delay (100);
lcd.setCursor (3,1);
i=0;
do
nf = 1;
20
x ++;
nf = 2;
x ++;
nf = 3;
x ++;
nf = 4;
x ++;
nf = 5;
x ++;
nf = 6;
x ++;
21
else if ((numero2 > 720) && (numero2 < 740))
nf = 7;
x ++;
nf = 8;
x ++;
nf = 9;
x ++;
nf = 0;
x ++;
if (ultnum != nf)
x = 0;
Serial.println (nf);
22
lcd.print (nf);
delay (500);
ultnum = nf;
i++;
x = 0;
Serial.println (nf);
lcd.print (nf);
delay (500);
i++;
boolean correcta = 1;
if (pass1[i] != pass2[i])
correcta = 0;
23
}
if (correcta == 1)
lcd.clear ();
delay(5000);
modo_verde();
else
lcd.clear ();
delay (5000);
modo_rojo();
nivel = 0;
7- La funcin loop:
Es la ltima parte y el bucle principal del programa. En este caso ser la funcin
encargada de mover el programa por los distintos modos del sistema de alarma. Para
ello se usan los pulsadores y unas variables (inicio y nivel) que irn cambiando
segn se activen los distintos modos:
24
void loop()
modo_inicio();
modo_verde();
modo_verde();
modo_naranja();
modo_rojo();
25
- Presupuesto:
Teclado: 6
Pantalla LCD: 12
Sensor de movimiento: 9
Potencimetro: 2
Zumbador: 1
4 leds: 4
15 resistencias: 0,45
26