Está en la página 1de 40

UNIVERSIDAD PEDAGÓGICA NACIONAL

FRANCISCO MORAZÁN

DIRECCIÓN DE PROGRAMAS ESPECIALES PROGRAMA


ESPECIAL UNIVERSITARIO DE FORMACIÓN DOCENTE

PROYECTO AUTO TIMBRE

Asesora: Lic. Steballys Arita

Responsables del proyecto:

Estudiantes:
Paola Susana Hernández Rodríguez
Santos Francisco Flores Osorto
Walter Iván Pineda Pineda
Wilmer Rigoberto Murillo Banegas

LICENCIATURA EN INFORMÁTICA EDUCATIVA

Sede: San Pedro Sula, Cortés

17/04/2017
Índice

Proyecto 3
Introducción 4
Objetivos 5
Objetivo General: 5
Objetivos Específicos: 5
Justificación 6
Marco Conceptual 7
Antecedentes 7
Fundamentación Teórica 8
Presupuesto 11
Fuentes de financiamiento 11
Informe económico actual 11
Materiales 11
Proceso de desarrollo del proyecto (Tutorial) 12
Plan de actividades 15
Presentación proyecto finalizado 15
Conclusiones 16
Sugerencias 17
Bibliografía 18
Anexos 19
Glosario 19
Codificación 22
Fotos 37

2
Proyecto

Auto Timbre

3
Introducción

En el presente documento el lector tendrá a su disposición información sobre el desarrollo,


diseño y construcción del proyecto llamado: Auto Timbre.

El Auto Timbre se ha realizado específicamente para cubrir las necesidades de escuelas,


fábricas, oficinas, terminales de transporte, líneas de producción, empresas y otros negocios
que requieren un temporizador versátil y de bajo costo.

Este producto elimina la necesidad de tener a una persona asignada a accionar el timbre
durante el día permitiendo reasignarla a otra actividad más productiva. El producto es
completamente autónomo. El producto es configurable para adaptarse a cualquier horario de
actividades.

Estamos seguros de que nuestro producto cubrirá todas sus expectativas y necesidades,
brindándole muchos años de óptimo funcionamiento.

4
Objetivos
Objetivo General:

Desarrollar e implementar un sistema electrónico para automatizar el sistema de timbrado


que ayude al control del horario establecido de la jornada para escuelas, fábricas, oficinas,
terminales de transporte, líneas de producción, empresas y otros negocios.

Objetivos Específicos:

● Construir un prototipo electrónico para el control automático de un timbre, utilizando


tecnología innovadora y de bajo costo.
● Diseñar un código en lenguaje propietario para microcontrolador Arduino Uno, que
controle el funcionamiento del sistema automatizado de timbre.
● Implementar en el centro escolar el sistema automatizado de timbre, y así brindar una
solución de hardware eficiente y adecuado, como apoyo en el control de los horarios
de clases en el transcurso de la jornada laboral.

5
Justificación

Este proyecto se realizó básicamente para hacer una mejora en el molesto timbrado manual
haciéndolo automatizado y con bajo margen de error para tener más seguridad y confiabilidad
en los cambios de hora, en el inicio o el fin de cada receso o para el timbre que avisa que la
jornada ha terminado, pues en distintas escuelas aún se usa el tener un encargado de tener
que ir a timbrar y en ocasiones esto puede provocar problemas de organización o de pérdida
de tiempo por variaciones en los tiempos que hay entre cada timbre.

6
Marco Conceptual
Antecedentes

El timbre automático programable se define como un reloj digital capaz de ser programado
con varias alarmas según sea requerido. En el mercado existen ya bastantes tipos de relojes
que tienen esta función incluso otro tipo de aparatos que pueden hacer exactamente lo mismo
como son los PLC que son procesadores lógico programables que son utilizados en la
industria para controlar todo tipo de procesos mediante programación con un software
específico de cada marca o tipo de PLC.
El timbre automatico programable es una combinación de un aparato sencillo con una
aplicación útil.

La idea nació después de fijarnos que en muchos lugares es necesario un timbre para indicar
el inicio o el final de algo, para esto buscamos circuitos que nos pudieran servir como el
diseño del RTC DS3231, los contadores, los codificadores, la fuente de alimentación, la
visualización y la señalización de las alarmas que en este caso será un timbre.

Con el timbre automático que diseñamos se quitan de la lista muchísimos de estos factores
como, son el tener que poner a un encargado de ir cada vez a timbrar, o en ocasiones puede
tener errores como hacerlo antes o después de la hora correcta o simplemente no hacerlo etc.,
pues al contar con un RTC DS3231 que se encarga de hacer un conteo exacto segundo por
segundo es casi improbable que ocurra algún problema, así solo se tiene que esperar para
escuchar el timbre que ya estará previamente programado para cada cambio de hora y para
el inicio o el fin de los recesos y la hora de salida.

Joseph Henry, un científico estadounidense y primer secretario de la Institución Smithsonian,


inventó el timbre eléctrico en 1831, el cual ha funcionado hasta la actualidad y con el
desarrollo de los microcontroladores como el Arduino se ha creado innovaciones en el timbre
y muchos otros inventos que se desarrollaron.

7
Fundamentación Teórica
A continuación, se presenta un listado de conceptos que se han utilizado en el diseño del
prototipo:

● Arduino: es una plataforma de prototipos electrónica de código abierto (open-source)


basada en hardware y software flexibles y fáciles de usar. Está pensado para artistas,
diseñadores, como hobby y para cualquiera interesado en crear objetos o entornos
interactivos.
● Placa Electrónica: es un tipo de placa de circuito impreso que se adapta a muchas
diferentes entradas y módulos de salida en diferentes slots. Básicamente, es una
especie de junta que le permite conectar todo tipo de periféricos a las franjas horarias
que se asignan en ella. Puede ser tan simple como una tabla grande con una colección
de ranuras o tan complejo como el autobús periférico de un ordenador en la placa
base.
● RTC DS3231: es un circuito electrónico especializado cuya función es mantener la
hora y fecha actual en un sistema informático (ya sea con microcontrolador u otro
tipo de CPU). Se caracteriza por tener un bajo consumo de energía y también
normalmente su propia fuente de alimentación auxiliar.
● RELE de estado sólido: es un dispositivo interruptor electrónico que conmuta el
paso de la electricidad cuando una pequeña corriente es aplicada en sus terminales de
control. Estos consisten en un sensor que responde a una entrada apropiada (señal de
control), un interruptor electrónico de estado sólido que conmuta el circuito de carga,
y un mecanismo de acoplamiento a partir de la señal de control que activa este
interruptor sin partes mecánicas.
● Bootloader: se trata de un pequeño programa que ha sido guardado previamente en
el microcontrolador de la placa y que nos permite cargar código sin necesidad de
hardware adicional.
● Sistema: conjunto de partes o cosas coordinadas por reglamentos diseñados para un
fin, o una aplicación.
● Electrónica: área de la ingeniería y de la física aplicada al diseño de dispositivos, por
lo general circuitos electrónicos, cuyo funcionamiento depende del flujo de electrones
haciendo posible la transmisión, recepción y almacenamiento de información. Esta

8
información consiste en voz (señales de voz) o en música en un receptor de radio, en
una imagen en una pantalla de televisión, o en números u otros datos en una
computadora.
● Embebido: es cuando un conjunto de componentes de electrónica o informática están
embebidos o empotrados dentro de un sistema de mayor escala, es decir el pequeño
sistema está embebido o integrado en otro de mayor nivel.
● Prototipo: es un primer modelo o molde original que se fabrica y de este modelo se
parte para la elaboración de lo que se pretende, un objeto, herramienta, dispositivo
electrónico, etc.
● Hardware: es la parte tangible, lo que se puede ver y tocar, de un determinado
sistema o equipo electrónico o informático.
● Software: es la parte interna que en algunos casos no se puede ver y no se puede
tocar; es el bloque lógico encargado de indicar que es lo que se debe hacer, esto según
lo que se le haya programado al dispositivo.
● Periférico: son los dispositivos de entrada y salida que permiten la conexión con el
entorno físico, como entradas de información y salidas, es decir donde se muestra la
función final del equipo o dispositivo.
● Memoria: es un dispositivo diseñado y fabricado específicamente para guardar en
ella información. La capacidad dependerá del tipo de equipo que se esté
implementando, y puede ser que la memoria sea externa o que ya venga incorporada
en uno de los dispositivos que se están usando, estas pueden ser ROM, PROM,
EPROM, EEPROM, RAM, entre otras
● CPU: unidad central de procesamiento, este es un bloque principal dentro de un
dispositivo, es el cerebro, se encarga de dar las órdenes a los demás dispositivos, en
algunos casos pueden usarse microcontroladores o microprocesadores como parte
fundamental del bloque de control.
● Puertos electrónicos: son dispositivos físicos que sirven como puertos de conexión
que permite la entrada y salida de información al dispositivo, es el medio donde se
conecta la entrada y la salida.
● Fuente de potencia: es el bloque encargado de proporcionar la potencia eléctrica
necesaria para que el equipo funcione correctamente, la fuente está alimentando al

9
equipo durante el tiempo que está encendido, y además de una fuente también puede
utilizarse baterías alcalinas, solo debe tomarse en cuenta cual es la magnitud que se
necesita.
● Timbre de campanilla: es un dispositivo capaz de producir una señal sonora al
pulsar un interruptor. Su funcionamiento se basa en fenómenos electromagnéticos.
● Robótica: conjunto de conocimientos prácticos que permite obtener, realizar y
automatizar sistemas basándose en estructuras metálicas empleando un cierto grado
de inteligencia, para que sea posible lograr que un equipo destinado a desempeñarse
en un determinado ambiente.
● Pantalla LCD: es una lámina que se sujeta delante o alrededor de la luz artificial, en
el cual pueden proyectarse imágenes o textos, lo que ofrece una vista bien definida
del objeto o imagen que se proyecta en ella. En este caso la pantalla estará formada
con matrices de leds.
● Domótica: la palabra domótica etimológicamente viene de la unión de dos palabras,
del latín “DOMUS” que significa casa y AUTOMÁTICA, por lo tanto, se denomina
como el área de aplicación que tiene por objetivo la automatización de procesos
dentro del hogar, además de ser un área multidisciplinaria que requiere conocimientos
de electrónica e informática para su implementación.
● Sistema digital programable: son aquellos sistemas que funcionan igual que un
circuito lógico con la diferencia de que la función lógica puede ser cambiada vía
programación, el componente principal de estos sistemas son dispositivos
programables, por ejemplo, un Microcontrolador.

10
Presupuesto
Fuentes de financiamiento
El Gran Total será de L 1,244.00 tomando en cuenta que dicha inversión será
financiada por los integrantes del grupo.

Informe económico actual


Egresos

Fecha # Factura Detalle Cantidad L


10/04/2017 Placa Arduino Uno 700.00
10/04/2017 RTC DS3231 276.00
10/04/2017 Timbre 118.00
10/04/2017 Cable 120.00
10/04/2017 Clavija 30.00
10/04/2017 Placa Electrónica 690.00
10/04/2017 RELE de estado sólido 567.64
10/04/2017 Pantalla LCD 4x20 270.00
TOTAL 2,771.64

Materiales

Los materiales técnicos que se utilizan en esta para el desarrollo del Auto Timbre son:

● Placa Arduino Uno


● Timbre de campanilla
● Pantalla LCD
● Placa electrónica
● RTC DS3231
● RELE de estado sólido
● Computadoras

11
Proceso de desarrollo del proyecto (Tutorial)

Teniendo todos los elementos físicos (microcontrolador, lcd, relé, buzzer, resistencias, RTC,
diodos) y lógico (algoritmo, firmware), se tiene que proceder a construir el circuito, lo
primero que se tiene que hacer es identificar todos y cada uno de los componentes, identificar
sus pines, positivos, negativos.

En un tablero se coloca el microcontrolador, Arduino Uno y la placa electrónica calculando


las dimensiones para los demás componentes, una vez colocado el µC, se distribuye los
componentes y se comienza a unir según el diagrama esquemático, tratando de hacerlo de la
forma más ordenada posible, esto para hacer pruebas previas al montaje de los componentes
electrónicos.

Uniendo los cables de la placa electrónica a la Arduino uno

Los componentes se conectarán con el otro, formando así el circuito, no se debe olvidar la
parte donde se conectará el programador, ya teniendo previamente elaborado el FIRMWARE
o programa de control del circuito se le descarga al microcontrolador mediante el programa
bootloader. Se verifica que todo esté conectado según el diagrama, se debe de estar seguro
que todo está en orden para posteriormente realizar las pruebas preliminares sobre el
funcionamiento de cada elemento y de todos ellos en conjunto.

12
Conectando la pantalla y el RTC a la placa electrónica

Después de simulado, montado y terminado el prototipo se procede a instalarlo en un

lugar visible y de fácil acceso.

Conectando el RELE de estado sólido a la placa electrónica

13
Primera prueba con el RELE de estado sólido

14
Plan de actividades

N° Descripción Fecha Inicio


1 Elección del proyecto a realizar Auto Timbre 26/03/2017
2 Cotización de diferentes componentes 25/03/2017
3 Compra de los componentes 10/04/2017
4 Reunión para comenzar el proyecto 10/04/2017
5 Revisión Final del Proyecto 16/04/2017

Presentación proyecto finalizado

15
Conclusiones

El proyecto Auto Timbre elimina el timbrado de forma manual y lo hace un poco más cómodo
convirtiéndolo en algo automatizado.

En el anterior proyecto se dio a conocer de forma escrita y paso a paso la implementación de un


sistema de timbrado automatizado, partiendo de conceptos y teorías acerca de la implementación
de dicho proyecto.

Se cumplió con el diseño, construcción e implementación que se tenía como promesa en la


descripción escrita de dicho proyecto, dando a conocer su principal aplicación y funcionamiento,
el cual está destinado para centros educativos, fábricas, oficinas, terminales de transporte, líneas
de producción, empresas y otros negocios.

Se creó un prototipo funcional que demuestra nuestro trabajo y nuestro profesionalismo


cumpliendo con las expectativas de solución.

16
Sugerencias

● Se recomienda capacitar previamente a las personas para que puedan usar y programar
adecuadamente el Auto Timbre.
● El dispositivo debe ser colocado en un lugar visible y de fácil acceso para la persona
encargada de monitorear y supervisar que se cumplan los horarios de clases.
● Para mayor facilidad y conveniencia se recomienda comprar los componentes al por mayor.
● Producirlo en masa para ser aplicado en centros educativos, fábricas, oficinas, terminales
de transporte, líneas de producción, empresas y otros negocios.

17
Bibliografía

● MCI electronics. (noviembre 05,2012). ¿QUÉ ES ARDUINO? abril 04, 2017, de MCI
electronics Sitio web: http://arduino.cl/que-es-arduino/
● Smithsonian Institution Archives. (enero,13, 2012). Joseph Henry: Una vida en ciencia.
abril,14,2017, de Smithsonian Institution Archives Sitio web:
https://siarchives.si.edu/history/exhibits/henry/electromagnetism
● Bergren. (2003). Antony of a robot. New York: McGaw-Hill.
● Crespo, E. (noviembre, 17, 2014). Bootloader. abril, 16, 2017, de WordPress.com Sitio
web: https://aprendiendoarduino.wordpress.com/tag/bootloader/

18
Anexos
Glosario

● Arduino: es una plataforma de área de aplicación que tiene por


prototipos electrónica de código objetivo la automatización de
abierto (open-source) basada en procesos dentro del hogar, además de
hardware y software flexibles y ser un área multidisciplinaria que
fáciles de usar. Está pensado para requiere conocimientos de electrónica
artistas, diseñadores, como hobby y e informática para su
para cualquiera interesado en crear implementación.
objetos o entornos interactivos. ● Electrónica: área de la ingeniería y
● Bootloader: se trata de un pequeño de la física aplicada al diseño de
programa que ha sido guardado dispositivos, por lo general circuitos
previamente en el microcontrolador electrónicos, cuyo funcionamiento
de la placa y que nos permite cargar depende del flujo de electrones
código sin necesidad de hardware haciendo posible la transmisión,
adicional. recepción y almacenamiento de
● CPU: unidad central de información. Esta información
procesamiento, este es un bloque consiste en voz (señales de voz) o en
principal dentro de un dispositivo, es música en un receptor de radio, en
el cerebro, se encarga de dar las una imagen en una pantalla de
órdenes a los demás dispositivos, en televisión, o en números u otros datos
algunos casos pueden usarse en una computadora.
microcontroladores o ● Embebido: es cuando un conjunto de
microprocesadores como parte componentes de electrónica o
fundamental del bloque de control. informática están embebidos o
● Domótica: la palabra domótica empotrados dentro de un sistema de
etimológicamente viene de la unión mayor escala, es decir el pequeño
de dos palabras, del latín “DOMUS” sistema está embebido o integrado en
que significa casa y AUTOMÁTICA, otro de mayor nivel.
por lo tanto, se denomina como el

19
● Fuente de potencia: es el bloque ella. En este caso la pantalla estará
encargado de proporcionar la formada con matrices de leds.
potencia eléctrica necesaria para que ● Placa Electrónica: es un tipo de
el equipo funcione correctamente, la placa de circuito impreso que se
fuente está alimentando al equipo adapta a muchas diferentes entradas y
durante el tiempo que está encendido, módulos de salida en diferentes slots.
y además de una fuente también Básicamente, es una especie de junta
puede utilizarse baterías alcalinas, que le permite conectar todo tipo de
solo debe tomarse en cuenta cual es la periféricos a las franjas horarias que
magnitud que se necesita. se asignan en ella. Puede ser tan
● Hardware: es la parte tangible, lo simple como una tabla grande con
que se puede ver y tocar, de un una colección de ranuras o tan
determinado sistema o equipo complejo como el autobús periférico
electrónico o informático. de un ordenador en la placa base.
● Memoria: es un dispositivo diseñado ● Periférico: son los dispositivos de
y fabricado específicamente para entrada y salida que permiten la
guardar en ella información. La conexión con el entorno físico, como
capacidad dependerá del tipo de entradas de información y salidas, es
equipo que se esté implementando, y decir donde se muestra la función
puede ser que la memoria sea externa final del equipo o dispositivo.
o que ya venga incorporada en uno de ● Prototipo: es un primer modelo o
los dispositivos que se están usando, molde original que se fabrica y de este
estas pueden ser ROM, PROM, modelo se parte para la elaboración
EPROM, EEPROM, RAM, entre de lo que se pretende, un objeto,
otras herramienta, dispositivo electrónico,
● Pantalla LCD: es una lámina que se etc.
sujeta delante o alrededor de la luz ● Puertos electrónicos: son
artificial, en el cual pueden dispositivos físicos que sirven como
proyectarse imágenes o textos, lo que puertos de conexión que permite la
ofrece una vista bien definida del entrada y salida de información al
objeto o imagen que se proyecta en

20
dispositivo, es el medio donde se de CPU). Se caracteriza por tener un
conecta la entrada y la salida. bajo consumo de energía y también
● RELE de estado sólido: es un normalmente su propia fuente de
dispositivo interruptor electrónico alimentación auxiliar.
que conmuta el paso de la electricidad ● Sistema digital programable: son
cuando una pequeña corriente es aquellos sistemas que funcionan igual
aplicada en sus terminales de control. que un circuito lógico con la
Estos consisten en un sensor que diferencia de que la función lógica
responde a una entrada apropiada puede ser cambiada vía
(señal de control), un interruptor programación, el componente
electrónico de estado sólido que principal de estos sistemas son
conmuta el circuito de carga, y un dispositivos programables, por
mecanismo de acoplamiento a partir ejemplo, un Microcontrolador.
de la señal de control que activa este ● Sistema: conjunto de partes o cosas
interruptor sin partes mecánicas. coordinadas por reglamentos
● Robótica: conjunto de diseñados para un fin, o una
conocimientos prácticos que permite aplicación.
obtener, realizar y automatizar ● Software: es la parte interna que en
sistemas basándose en estructuras algunos casos no se puede ver y no se
metálicas empleando un cierto grado puede tocar; es el bloque lógico
de inteligencia, para que sea posible encargado de indicar que es lo que se
lograr que un equipo destinado a debe hacer, esto según lo que se le
desempeñarse en un determinado haya programado al dispositivo.
ambiente. ● Timbre de campanilla: es un
● RTC DS3231: es un circuito dispositivo capaz de producir una
electrónico especializado cuya señal sonora al pulsar un interruptor.
función es mantener la hora y fecha Su funcionamiento se basa en
actual en un sistema informático (ya fenómenos electromagnéticos.
sea con microcontrolador u otro tipo

21
Codificación

//Llama a las librerías wire para la comunicación serial del módulo y liquidcrystal para el control
de la pantalla

#include "Wire.h"

#include "LiquidCrystal.h"

// se declara el pin de salida que controlara al timbre por medio del rele de estado solido

// el rele de estado solido es el encargado de recibir el pulso de 5volts del arduino y con esa señal
controla cargas hasta de 600 Volts a 10 Amperios

const int salida_2 = 8;

//Se declaran los pines de la pantalla de la siguiente manera:

LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

#define DS3231_I2C_ADDRESS 0x68

// Convert normal decimal numbers to binary coded decimal

byte decToBcd(byte val)

return( (val/10*16) + (val%10) );

// Convert binary coded decimal to normal decimal numbers

byte bcdToDec(byte val)

22
return( (val/16*10) + (val%16) );

byte second, minute, hour, dayOfWeek, dayOfMonth, month, year; //estas variables las saque de
muestra serial con el fin de hacerlas globales

void setup()

// se configura la pantalla como una lcd 20x4:

lcd.begin(20, 4);

// Print a message to the LCD.

lcd.clear();

lcd.setCursor(3,0);

//lcd.print("Testing RTC DS3231");

lcd.print("UPNFM");

lcd.setCursor(1,1);

lcd.print("PFP");

digitalWrite(7, LOW);

digitalWrite(8, LOW);

digitalWrite(9, LOW);

digitalWrite(10, LOW);

//lcd.setCursor(1,0); //lcd.print("UPNFM");

23
//lcd.setCursor(1,1); //lcd.print("PFP");

pinMode(salida_2, OUTPUT);

Wire.begin();

Serial.begin(9600);

//====================================================================

// set the initial time here:

// DS3231 seconds, minutes, hours, day, date, month, year

//PARA SETEAR LA HORA SE NECESITA QUITAR LOS COMENTARIOS DE


LA SIGUIENTE LÍNEA

//EL FORMATO SERÁ: (HORA, MINUTO, SEGUNDO, DIA DE LA SEMANA


(LUN, MARTES...), DÍA DEL MES, MES, AÑO)

//setDS3231time(00,11,17,5,14,4,16);

//====================================================================

void setDS3231time(byte second, byte minute, byte hour, byte dayOfWeek, byte

dayOfMonth, byte month, byte year)

24
// sets time and date data to DS3231

Wire.beginTransmission(DS3231_I2C_ADDRESS);

Wire.write(0); // set next input to start at the seconds register

Wire.write(decToBcd(second)); // set seconds

Wire.write(decToBcd(minute)); // set minutes

Wire.write(decToBcd(hour)); // set hours

Wire.write(decToBcd(dayOfWeek)); // set day of week (1=Sunday, 7=Saturday)

Wire.write(decToBcd(dayOfMonth)); // set date (1 to 31)

Wire.write(decToBcd(month)); // set month

Wire.write(decToBcd(year)); // set year (0 to 99)

Wire.endTransmission();

void readDS3231time(byte *second,

byte *minute,

byte *hour,

byte *dayOfWeek,

byte *dayOfMonth,

byte *month,

byte *year)

Wire.beginTransmission(DS3231_I2C_ADDRESS);

Wire.write(0); // set DS3231 register pointer to 00h

Wire.endTransmission();

25
Wire.requestFrom(DS3231_I2C_ADDRESS, 7);

// request seven bytes of data from DS3231 starting from register 00h

*second = bcdToDec(Wire.read() & 0x7f);

*minute = bcdToDec(Wire.read());

*hour = bcdToDec(Wire.read() & 0x3f);

*dayOfWeek = bcdToDec(Wire.read());

*dayOfMonth = bcdToDec(Wire.read());

*month = bcdToDec(Wire.read());

*year = bcdToDec(Wire.read());

//====================================================================

// MUESTRA TIEMPO MONITOR SERIAL

//====================================================================

void displayTime()

// retrieve data from DS3231

readDS3231time(&second, &minute, &hour, &dayOfWeek, &dayOfMonth, &month,

&year);

// send it to the serial monitor

Serial.print(hour, DEC);

26
// convert the byte variable to a decimal number when displayed

Serial.print(":");

if (minute<10)

Serial.print("0");

Serial.print(minute, DEC);

Serial.print(":");

if (second<10)

Serial.print("0");

//lcd.setCursor(2,15);

Serial.print(second, DEC);

Serial.print(" ");

Serial.print(dayOfMonth, DEC);

Serial.print("/");

Serial.print(month, DEC);

Serial.print("/");

Serial.print(year, DEC);

Serial.print(" Day of week: ");

switch(dayOfWeek){

case 1:

27
Serial.println("Sunday");

break;

case 2:

Serial.println("Monday");

break;

case 3:

Serial.println("Tuesday");

break;

case 4:

Serial.println("Wednesday");

break;

case 5:

Serial.println("Thursday");

break;

case 6:

Serial.println("Friday");

break;

case 7:

Serial.println("Saturday");

break;

28
//====================================================================

// MUESTRA TIEMPO EN LCD

//====================================================================

void displayTime_lcd()

// byte second, minute, hour, dayOfWeek, dayOfMonth, month, year;

// retrieve data from DS3231

readDS3231time(&second, &minute, &hour, &dayOfWeek, &dayOfMonth, &month,

&year);

//-------------->Imprime fecha

if (dayOfMonth >= 10){

lcd.setCursor(6,2);

lcd.write(" ");

lcd.setCursor(3,2);

else {

lcd.setCursor(3,2);

lcd.write(" ");

lcd.setCursor(7,2);

lcd.write(" ");

lcd.setCursor(4,2);

29
}

switch(dayOfWeek){

case 1:

lcd.write("Dom");

break;

case 2:

lcd.write("Lun");

break;

case 3:

lcd.write("Mar");

break;

case 4:

lcd.write("Mie");

break;

case 5:

lcd.write("Jue");

break;

case 6:

lcd.write("Vie");

break;

30
case 7:

lcd.write("Sab");

break;

if (dayOfMonth >= 10){

// lcd.clear();

lcd.setCursor(7,2);

else{

lcd.setCursor(8,2);

lcd.print(dayOfMonth, DEC);

lcd.print("/");

//lcd.print(month, DEC);

lcd.setCursor(13,2);

lcd.print("/");

lcd.print(year, DEC);

//------------------>Imprime hora

if ((hour >= 10 && hour <= 12) || (hour >= 22 && hour <= 24)){

31
lcd.setCursor(4,3);

else{

lcd.setCursor(4,3);

lcd.write(" ");

lcd.setCursor(5,3);

if (hour < 12){

//

if (hour > 0){

lcd.print(hour, DEC); // convert the byte variable to a decimal number when displayed

lcd.setCursor(13,3);

lcd.write("AM");

if (hour > 12) {

//

lcd.print((hour - 12), DEC);

lcd.setCursor(13,3);

lcd.write("PM");

32
if ((hour > 11) && (hour < 13)) {

//

lcd.print((hour), DEC);

lcd.setCursor(13,3);

lcd.write("PM");

if (hour < 1) {

//

lcd.setCursor(4,3);

lcd.print("12");

lcd.setCursor(13,3);

lcd.write("AM");

lcd.setCursor(6,3);

lcd.print(":");

if (minute<10)

lcd.print("0");

lcd.print(minute, DEC);

lcd.print(":");

33
if (second<10)

lcd.print("0");

lcd.print(second, DEC);

// lcd.print(" ");

// lcd.setCursor(0,3);

// lcd.print("Day of week: ");

//ENE / FEB/ MAR / ABR / MAY / JUN / JUL / AGO / SET (o SEP) / OCT / NOV / DIC.

lcd.setCursor(10,2);

switch(month){

//muestra el mes en la pantalla

case 1: lcd.write("Ene"); break;

case 2: lcd.write("Feb"); break;

case 3: lcd.write("Mar"); break;

case 4: lcd.write("Abr"); break;

case 5: lcd.write("May"); break;

case 6: lcd.write("Jun"); break;

34
case 7: lcd.write("Jul"); break;

case 8: lcd.write("Ago"); break;

case 9: lcd.write("Sep"); break;

case 10: lcd.write("Oct"); break;

case 11: lcd.write("Nov"); break;

case 12: lcd.write("Dic"); break;

void alarma()

//second, minute, hour, dayOfWeek, dayOfMonth, month, year;

// modificar horas de toque de timbre en hour==XX, Minute==XX, second==XX

//Solo se necesita modificar los valores en estas variables

//- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

if(hour==07 && minute==00 && second >= 00) digitalWrite(8, HIGH); //enciende primera
alarma

if(hour==07 && minute==00 && second >= 8) digitalWrite(8, LOW); //apaga primera alarma

//- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

if(hour==9 && minute==10 && second >= 00) digitalWrite(8, HIGH);

if(hour==9 && minute==10 && second >= 5) digitalWrite(8, LOW);

//- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

35
if(hour==9 && minute==35 && second >= 00) digitalWrite(8, HIGH);

if(hour==9 && minute==35 && second >= 5) digitalWrite(8, LOW);

//- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

if(hour==12 && minute==20 && second >= 00) digitalWrite(8, HIGH);

if(hour==12 && minute==20 && second >= 8) digitalWrite(8, LOW);

//- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

void loop()

displayTime_lcd(); // Muestra información en pantalla lcd

//Llama la funcion alarma de Lunes a Viernes (dia 2 a dia 6)

if (dayOfWeek == 2) alarma();

if (dayOfWeek == 3) alarma();

if (dayOfWeek == 4) alarma();

if (dayOfWeek == 5) alarma();

if (dayOfWeek == 6) alarma();

36
Fotos

37
38
39
40

También podría gustarte