Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Facultad de Ingeniería
Características
1. El Microcontrolador: Es la parte que procesa toda la información, es donde se
graba el código, en el software de Arduino se conoce como “Sketch”. Los
Microcontroladores que usa Arduino son económicos lo que abarata el costo de la
Tarjeta en general.
2. Pines analógicos: Estos pueden detectar señales análogas como por ejemplo la
Luz o la Temperatura, estos sensores poseen un segmento de voltaje de
funcionamiento desde cero (0) a Cinco (5) Voltios. A través de estos se pueden
medir cosas del mundo real como por ejemplo Temperatura. Si el Pin de lectura
analógica tiene una resolución de ocho (8) bits, te va permitir dividir los cinco (5)
voltios en 256 segmentos, es decir la Temperatura máxima del sensor equivale a
4. Pines Digitales: Estos detectan si hay un Cero (09 o un Uno (1) lógico. Se utilizan
para pulsaciones de botones o dispositivos que mandan o reciben información
digital.
Los Pines que contiene una línea ondulada (como en la Ñ) soportan PWM (Power
o Pulse-Width Modulation – Modulación por ancho de Pulso), usado para el
control de intensidad, por ejemplo, de luz.
5. Puerto o conector USB: Este nos permite conectar nuestra Arduino a la PC,
cargar nuestro código y alimentar la tarjeta.
6. Control de USB: Este circuito integrado es el moderador entre el
Microcontrolador y el software o C, es decir, se encarga de convertir la
información del Microcontrolador hacia la información que va a tu computadora.
10. Botón y Pin de Reinicio: El botón de reinicio está directamente conectado al Pin
número uno (1) del Microcontrolador conocido como “Clear” ó “Master Clear”,
este necesita de sus cinco (5) voltios para hacer correr el programa, al presionar
el botón interrumpe el voltaje a cero (09 voltios y detiene el programa que el
Arduino está ejecutando y vuelve a ejecutar el programa desde su inicio.
El pin de reinicio o Reset permite hacer lo mismo que el botón pero a través de
un circuito individual.
11. GND, Pin Cero Voltios o Tierra: Es la contraparte del positivo (5 voltios), es lo
que permite cerrar el círculo de alimentación
Proteus
Proteus
Proteus VSM es un sistema de diseño electrónico basado en la simulación analógica,
digital o mixta de circuitos, que brinda la posibilidad de interacción con muchos de los
elementos que integran el circuito. Incluye componentes animados para la visualización
de su comportamiento en tiempo real, además de un completo sistema de generación y
análisis de señales. También cuenta con un módulo para el diseño de circuitos impresos.
Las siglas VSM significan Virtual System Modelling, que en español podemos traducir
como sistema de modelado virtual, ya que Proteus VSM permite modelar de forma virtual
en la computadora prácticamente cualquier circuito. La característica principal que hace
de Proteus VSM uno de los simuladores preferidos por muchos aficionados y
profesionales de la electrónica es la posibilidad de simular circuitos que incluyen
microprocesadores o microcontroladores. Aunque el nombre completo del programa es
Proteus VSM, a partir de ahora nos referiremos a él solo como Proteus, para mayor
facilidad.
El programa cuenta con dos partes o componentes principales. Uno de ellos es el módulo
ISIS, que es donde vamos a dibujar los diagramas de los circuitos electrónicos y, también,
desde donde efectuaremos las simulaciones. Si es la primera vez que abrimos el módulo
ISIS, después de instalar Proteus en el sistema, es posible que aparezca una ventana
llamada View Sample Designs, que nos preguntará si queremos ver los diseños de
ejemplo que se instalan junto con el programa.
Además del módulo ISIS, Proteus cuenta con otro módulo, denominado ARES, que es
donde se diseñan las placas de circuito impreso (PCB) utilizadas para el posterior armado
de los circuitos. En relación a este tema, otra característica muy interesante de este
programa es la posibilidad de importar un circuito dibujado en ISIS directamente al
módulo ARES. De esta manera, podremos diseñar fácil y rápidamente un circuito impreso
para él.
Hay que recordar que dentro del Proteus tenemos la opción de realizar un PCB layout o
solamente hacer el diseño virtual para nuestro caso de desarrollo del proyecto del
servicio profesional solamente utilizaremos ISIS, en caso dado que quisiera aplicarse en
la vida real y probar su funcionamiento si será necesario activar la casilla de PCB layout
o mejor dicho ARES.
La interfaz de ISIS
En principio, el módulo ISIS es un espacio para dibujar los diagramas de nuestros
circuitos. Al abrir Proteus desde el icono ISIS, veremos la pantalla que se explica en la
siguiente Guía visual
La hoja de trabajo
En la ventana de edición tenemos dos elementos principales: la hoja de trabajo y la rejilla.
La hoja de trabajo está delimitada por el cuadro de color azul. Cuando accedemos a ISIS
desde su icono, es decir, sin abrir ningún circuito, por defecto la ventana de edición está
vacía, y el tamaño de la hoja de trabajo es de 10 por 7 pulgadas. Si necesitamos cambiar
el tamaño de la hoja de trabajo, podemos hacerlo mediante el menú System/Set Sheet
Sizes…. Al seleccionar esta opción, aparece una ventana con el título Sheet Size
Configuration, donde podemos elegir un tamaño de la lista o uno personalizado, llamado
User. En realidad, es posible seleccionar un tamaño de la lista y luego ajustarlo a la
medida que deseamos.
También podemos utilizar una plantilla diferente para la hoja de trabajo; si vamos al menú
File/New Design…, aparecerá una lista de las plantillas que se instalan con Proteus. En
los mas nuevos dejan de aparecer imágenes y solamente aparecen renglones de opciones.
Es posible modificar la separación de los puntos o las líneas que conforman la rejilla, para
lo cual tenemos que ir al menú View y elegir una de las siguientes opciones disponibles:
Snap 10th, Snap 50th, Snap 0.1in o Snap 0.5in, que cambian la división de cada pulgada
en 100, 50, 10 o 2, respectivamente. A la derecha de cada opción en el menú View,
encontramos la indicación de las teclas que podemos usar para la misma función, es decir,
el atajo de teclado, no solo para estas opciones sino para muchas de las de los menús. Una
vez que incorporemos su uso, ahorraremos tiempo de trabajo.
Las barras de herramientas
En la interfaz de Proteus, podemos encontrar diferentes barras de herramientas, que
contienen botones para múltiples funciones del programa. En la siguiente Guía visual
conoceremos cuáles son y dónde están ubicadas, por defecto, en la ventana de ISIS.
Las herramientas de Modo
Veamos con más detalle la barra de herramientas de Modo. Esta se encuentra dividida en
tres partes: la superior presenta las herramientas principales, en la parte media tenemos
herramientas de dispositivos, y en la inferior, herramientas de dibujo en 2D. Detallaremos
aquí solo las herramientas principales de la barra de herramientas de Modo para poder
comenzar a dibujar nuestros diagramas de circuitos; estudiaremos las demás herramientas
en capítulos posteriores. Debemos notar que al cambiar de modo (es decir, al presionar
algunos de los botones de la barra de herramientas de Modo), la parte superior del
Selector de objetos cambia de título, y pueden aparecer uno o dos pequeños botones. Por
otro lado, las herramientas de dibujo en 2D permiten colocar elementos gráficos que no
son componentes en la ventana de edición, para crear, por ejemplo, líneas, marcos,
cuadros de texto, flechas, textos indicativos, títulos, etcétera. También pueden usarse para
dibujar nuevos componentes.
Elegir componentes de las librerías
Veamos cómo elegir los componentes que formarán nuestros circuitos electrónicos en
Proteus. Para seleccionar los componentes, debemos estar en el modo Componente, para
lo cual, simplemente, presionaremos el botón Component Mode en la barra de
herramientas de Modo. Aparentemente no sucede nada al hacerlo, pero si observamos la
ventana del Selector de objetos, en la parte superior aparecen dos pequeños botones, uno
con una P y otro con una L. Además, a la derecha de ellos, en el título de la ventana del
Selector de objetos, podemos apreciar la palabra DEVICES, que significa dispositivos.
Una vez que tenemos todos los componentes necesarios en el Selector de objetos y
sabemos cómo rotarlos y reflejarlos, ya podemos colocarlos en la ventana de edición para
empezar a construir un circuito. A continuación, en el siguiente Paso a paso, explicaremos
detalladamente cómo es el procedimiento.
Manipular los componentes en la ventana de Edición
Después de colocar varios componentes en la ventana de Edición, podemos cambiarlos
de lugar, borrarlos, rotarlos o reflejarlos. Para seleccionar un componente que ya está en
dicha ventana, simplemente hacemos un clic sobre él con el mouse, y este aparecerá con
los bordes de color rojo, lo que significa que está seleccionado. Luego, para moverlo,
hacemos un clic sobre él y, manteniendo el botón del mouse presionado, lo desplazamos
hacia otro lugar.
Si hacemos un clic con el botón derecho del mouse sobre un componente, se abrirá un
menú contextual con opciones que nos permiten mover, rotar, reflejar, borrar el
componente, y algunas acciones adicionales que estudiaremos más adelante. Mediante la
opción Drag Object, movemos el componente a otro lugar, arrastrándolo y haciendo un
clic en la ubicación elegida.
Las opciones de rotación y reflexión son idénticas a las de la barra de Rotación y
reflexión, pero, como vimos, los botones de la barra no funcionan con los componentes
ya colocados en la ventana de Edición. Entonces, si necesitamos rotar o reflejar un
componente, debemos hacerlo desde este menú contextual. Aquí aparece una opción para
rotar el componente 180 grados (Rotate 180 degrees), que no está en la barra de Rotación
y reflexión.
La opción Delete Object borrará el componente de la ventana de Edición. También
podemos eliminar un componente seleccionándolo y presionando la tecla SUPR en el
teclado. Un atajo para borrar rápidamente un componente es hacer doble clic sobre él con
el botón derecho del mouse. Es importante tener en cuenta que, al seleccionar e intentar
arrastrar un componente para moverlo, debemos asegurarnos de hacer clic en el cuerpo
del componente y no en los textos que lo acompañan. Si hacemos clic sobre los textos,
solo arrastraremos estos elementos.
Es posible seleccionar los componentes desde muchas de las opciones de la barra de
herramientas de Modo, pero lo más adecuado es hacerlo desde el Modo de selección.
Para seleccionar más de un componente a la vez, hacemos un clic en algún lugar vacío de
la ventana de Edición y, manteniendo el botón del mouse presionado, lo arrastramos para
crear un recuadro. Al soltar el botón del mouse, todos los elementos que se encuentren
dentro de este recuadro quedarán seleccionados. Otra manera es mantener presionada la
tecla CTRL mientras hacemos un clic sobre cada uno de los componentes que queremos
seleccionar.
Si hacemos un clic con el botón derecho del mouse en un lugar vacío de la ventana de
Edición, aparecerá un menú contextual que contiene la opción Select All Objects, para
seleccionar todos los componentes.
Las herramientas de Visualización
A continuación, conoceremos en detalle las diferentes herramientas que integran la barra
de Visualización.
Las herramientas de Vista nos permiten acercar, alejar y centrar un área específica del
diseño para verla o trabajar cómodamente. El acercamiento o alejamiento también puede
hacerse con la rueda del mouse; al girarla hacia abajo, alejaremos la vista en la ventana
de Edición, y al girarla hacia arriba, haremos un acercamiento. Estos movimientos se
harán basados en la posición del cursor del mouse dentro de la ventana de Edición.
Las herramientas de Edición
La barra de herramientas de Edición también nos permite trabajar con los componentes
en el diseño. En la siguiente Guía visual conoceremos los principales elementos que
contiene.
Como podemos apreciar, las diferentes herramientas de edición nos permiten trabajar con
bloques de componentes. La selección de componentes puede contener solo uno, varios
de ellos o incluso todos los componentes del diseño. Si seleccionamos varios
componentes y hacemos un clic con el botón derecho del mouse sobre ellos, aparece un
menú contextual que contiene muchas de las opciones de la barra de herramientas de
Edición, además de las opciones de rotación y reflexión, que ya conocemos, así que
podemos usarlas también desde este menú contextual.
Entre ellas encontramos una que se destaca: el botón para copiar bloques o Block Copy.
Este puede resultar de gran utilidad en aquellos diseños que contienen bloques que se
repiten, ya que nos permite copiar toda una sección de nuestro diseño de manera simple
y rápida, en vez de tener que dibujar todo el bloque otra vez. Como podemos ver, las
herramientas de Proteus siempre simplifican nuestro trabajo.
Conexiones
Después de haber aprendido a colocar y manejar los componentes dentro de la ventana
de Edición, es fundamental saber cómo se realizan las conexiones entre ellos dentro de
un circuito. Para realizar las conexiones, debemos estar en el modo Componente, aunque
es posible efectuarlas desde otros modos también. En el siguiente Paso a paso,
conoceremos en detalle cómo es el procedimiento para conectar componentes.
Como podemos notar, hacer conexiones en ISIS es simple y rápido. Podemos hacer así
las conexiones entre las terminales de los componentes, y también es posible llevar las
conexiones de una terminal a una línea de conexión ya existente o de una línea a otra.
Como vemos en la Figura 13, es posible conectar dos líneas entre sí. En el lugar donde se
juntan las líneas, aparecerá un punto de unión para indicar que hay conexión entre ellas.
En cambio, si las líneas se cruzan sin haber conexión entre ellas, el punto no estará
presente, para mostrar que ahí no existe ninguna conexión.
Al realizar las diferentes conexiones dentro de un circuito, Proteus cuenta con una función
de autoruteo, es decir que la trayectoria de la conexión es calculada de manera automática,
mientas llevamos la conexión de un punto hacia otro.
Para activar o desactivar esta función usaremos el botón Toggle Wire Autorouter, que
está en la barra de herramientas de Diseño, o podemos hacerlo desde el menú Tools,
donde aparece la misma opción. Si desactivamos el autoruteo, solo se dibujará una línea
recta entre los puntos donde hagamos la conexión, a menos que vayamos haciendo un clic
en los puntos donde queremos fijar la conexión o realizar cambios de dirección. Es decir,
nosotros decidiremos completamente la dirección que seguirá una conexión.
Mover y borrar conexiones
Después de realizar las conexiones, podemos moverlas para ajustarlas y así mantener el
diseño ordenado. Para esto, debemos ingresar en el modo de Selección. Veamos cómo
hacerlo.
Mediante este sencillo procedimiento, reorganizaremos las conexiones para que todo
quede ordenado como queremos. También es posible seleccionar más de una línea de
conexión a la vez y moverlas juntas, para acelerar la tarea.
Con todos estos pasos sobre Proteus son suficientes para poder realizar nuestro
proyecto en la parte desarrollo. Ahora explicaremos las formas de acondicionar un
sensor resistivo.
Existen esencialmente 3 formas de acondicionar un sensor resistivo:
• Divisor de tensión
• Fuente de corriente
• Puente de Wheatstone
Vamos a describir solamente la de divisor de tensión de estas opciones, señalando algunas
ventajas y desventajas de su uso.
Acondicionamiento por divisor de tensión
Probablemente la forma más simple de acondicionar un sensor resistivo es formar un
divisor de tensión entre el sensor y un resistor fijo, como se ve en la Figura 6-1, donde
R1 es una resistencia de valor fijo y RS Representa el sensor resistivo.
Si analizamos este circuito podemos observar que el voltaje Vout está dado por
𝑅𝑆
𝑉𝑜𝑢𝑡 = 𝑉1 ∗
𝑅𝑆 + 𝑅1
De este modo, si el valor de RS varía, el valor de Vout también los hace
proporcionalmente. Evidentemente este circuito es muy simple y económico de
implementar, por lo cual puede resultar conveniente. Sin embargo, debemos analizar un
poco más sus características para encontrar las consideraciones que debemos tener a la
hora de implementarlo y las posibles desventajas de esta configuración.
Relación directa o inversa
En el circuito de la Figura 6-1, vemos que la ecuación nos presenta una relación directa
entre el voltaje y a la resistencia, puesto que a mayor resistencia tendremos mayor voltaje.
En caso de requerir que la relación sea inversa, bastará con invertir el orden de las
resistencias como se aprecia en la Figura 6-2.
En este caso la ecuación para el voltaje Vout sería:
Y tendríamos que, a medida que sube la resistencia, baja el voltaje de salida. La elección
acerca de cuál de las dos opciones es más conveniente, depende de cual sea la relación
entre la resistencia y la variable a medir (si es directa o inversa) y de la conveniencia o
necesidades propias del sistema de medición.
Linealidad de la relación
Una consideración importante que tenemos que tener es la forma que tiene la relación
existente entre la resistencia y el voltaje, que está dada por la ecuación 6.1. Es evidente
que esta no es una relación lineal, pero vemos en detalle con un ejemplo.
Ejemplo 6.1
Suponga que en el circuito de la Figura 6-1, el resistor R1 tiene un valor de 1kΩ, que el
sensor RS tendrá una variación entre 100Ω y 5K para la variación de la variable a medir
y que V1 es igual a 5V. Primero, sabemos que el voltaje Vout variará entre un voltaje
mínimo (cuando Rs vale 100Ω) y un máximo (cuando Rs vale 5kΩ), así
Pero, ¿cómo será la variación en este rango? En la figura siguiente se puede ver una
gráfica de voltaje versus resistencia para este caso, donde se aprecia la no linealidad en la
relación. Esto implica que cuando tengamos un voltaje Vout que representa la variable a
medir, la relación entre voltaje y variable a medir no es lineal, aún si la relación e entre la
resistencia y la variable a medir si lo es. Esto hace más compleja la interpretación del
voltaje en términos de la variable. Es decir, si por ejemplo este se tratara de un sensor
resistivo, no podríamos decir que tenemos una relación (por poner un caso) de 0.1V por
grado centígrado, porque esta sería una relación lineal, que este caso no existe.
DESARROLLO
Se pidió realizar un acondicionamiento para un sensor resistivo de temperatura, el valor
de temperatura sensado deberá pasar por una etapa de acondicionamiento para poder ser
visto en una pantalla LCD, en dos Display de 7 segmentos y poder utilizarlo o controlarlo
con una App de celular.
No se puede hablar de los sensores, como componentes electrónicos básicos, sin ver como
se pueden adaptar a un sistema de adquisición y control. Por lo que se tendrán que ver las
nuevas tecnologías de adaptación de estos sensores que, como parte de una cadena de
dispositivos, forman un sistema. Estos adaptadores, como acondicionadores de señal, son
los amplificadores operacionales en sus diferentes estructuras de montaje, pasando por
filtros o por procesadores analógicos, convirtiendo estas señales de analógico a digital
para posteriormente ser procesados los datos con un DSP o Microcontrolador y actuando
por medio de las salidas lógicas del procesador o por medio de un convertidor digital a
analógico.
En nuestro caso la línea de obtención de datos seguiría este patrón, primero tenemos que
aclarar que el Proteus tiene varios dispositivos que pueden simular temperaturas pero
nosotros tenemos que insertarlas es decir, hacer una inserción artificial o digital de
temperatura, teniendo esto vamos hacer un cálculo para ello ocupamos una temperatura
digamos de 25 grados centígrados de la cual nos basaremos para hacer cálculos y
programar el microcontrolador, una vez establecida la temperatura debemos de
acondicionar la señal es decir convertirla del estado analógico al digital si no se podría
dañar un componente por los voltajes altos, hacemos las conversiones de voltaje, el
convertir voltaje en temperatura y de temperatura a resistencia y al final reflejarse como
temperatura medida y de esto se establecen entradas y salidas dependiendo de la señal.
De aquí se tienen 3 opciones o si se quieren realizar en conjunto también puede hacerse,
para el Display es necesario enviarlo a la multiplexación porque como estaremos
manejando Display dobles de 7 segmentos es necesario establecer que Display va a
encender según la temperatura que se tenga y si se quisiera enseñar decimales, para el
LCD solamente es necesario enviar la señal de salida al LCD y programar dentro del
microcontrolador lo que se quiera ver en la pantalla LCD. Para la aplicación es necesario
tener otro microcontrolador porque ya no tenemos espacio de salidas dentro del Arduino,
entonces programamos que se este preguntando que es lo que desea el usuario y si se tiene
conexión con el para poder recibir o mandar información, la información que se obtiene
entra de igual manera al microcontrolador pasando por el filtro de analógico a digital y
en las salidas es enviado al dispositivo bluetooth en el que espera al usuario para
conectarse y enviar la información a la app de celular también contara con luces de
temperatura que el usuario podrá estar viendo para monitorear estas cuentan con tres
temperaturas regular, alta y peligros al verlas el usuario tomara las acciones que considere
pertinentes en este caso pueden ser prender luces de emergencia, una sirena o si no
prender ventiladores.
PROGRAMAS
PROGRAMA DE LCD Y DISPLAY
Primero analizaremos el programa que envía la información al LCD y al Display doble
de 7 segmentos.
Vamos a ir por partes, primero explicaremos el primer renglón del comando #include que
trata sobre incluir librería que pudiéramos ocupar en nuestra programación en este caso
hay dos de ellas, la librería liquidcrystal y la ledcontrol.
• Como podemos ver creamos un objeto con el nombre lc, seguido establecimos los
pines que tomaran el lugar del DIN que es nuestra entrada de datos, el CLK que
es el reloj y el chip selecta si como el numero de dispositivos de circuitos
integrados que tendremos como se pueden conectar hasta 8 es necesario establecer
cuantos conectaremos.
Ahora explicaremos este comando, pero para ello debemos explicar primero como
funciona la pantalla LCD. Debemos tener en cuenta que la pantalla LCD funciona en base
a una matriz de 15 columnas y 2 renglones mas adelante hablaremos de otros comandos
acerca de cómo configurarla.
MODULO LCD 1602A
En esta grafica podemos ver las curvas características del termistor NTC y PTC, en donde
se tiene temperatura contra resistencia, la línea azul es el termistor PTC y la línea roja es
nuestro termistor NTC que explica como se comento anteriormente tiene a bajar su
resistencia cuando la temperatura es muy alta y tiende a subir la resistencia cuando la
temperatura es baja.
Hay que señalar que hay valores típicos de termistores NTC existen entre ellos termistores
de 5K, 10K, 25K, 50K y 100K. Es importante resaltar que la resistencia de 10K siempre
está ligada a 25 grados de temperatura es decir a 25 grados centígrados tendrá 10K cuando
comience a subir disminuirá; el rango típico por lo general esta entre -55 grados
centígrados y 260 grados centígrados.
Ahora la respuesta del termistor no es lineal con respecto a la temperatura por lo que
tenemos que hacer ajustes en la programación para que nos arroje una respuesta parecida
ala de la grafica de la curva característica del termistor.
• En esta primera parte se vuelve hacer el mismo procedimiento del circuito pasado
en el que consiste convertir la señal de tension del A0 en resistencia y despues
aplicar la formula de Steinhart-Hart y convertir la temperatura de grados Kelvin a
centigrados y rendondearla e imprimirla en el serial para que el usuario pueda ver
la temperatura de la habitacion.
• En esta parte del codigo tambien se vuelve a realizar el mismo proceso que el
codigo de LCD y Display pero con valores de respuesta diferentes.
• Para el caso de 0 a 10 de temperatura el led regular se encendera y el led alto y
peligroso se mantendran apagados esto se utiliza con el digitalWrite como dijimos
anteriormente y estableciendo en el primer parametro el nombre de la variable a
colocar 0 o 1 y en el segundo parametro para indicar si sera LOW o High pero en
este caso sera LOW.
• Para el caso de 11 a 20 de temperatura, el led regular se mantiene en LOW, el alto
en HIGH y el led de peligroso se mantiene en low con el mismo comando de
digitalWrite.
• Para el caso de 21 a 30 de temperatura, el led regular y el led de temperatura alta
se mantienen apagados y el led de temperatura peligrosa se prende. De igual
manera se utiliza el comando digitalWrite para establecerlos como estado LOW y
HIGH.
LedControl lc= LedControl(11, 13, 10, 1); //le pasamos los pines que deseamos conectar los pines del MAX7219
LiquidCrystal lcd(7,6,5,4,3,2);
int SENSOR ;
float TEMPERATURE;
int TEMP_DISPLAY;
int Vo;
// http://www.thinksrs.com/downloads/programs/Therm%20Calc/NTCCalibrator/NTCcalculator.htm
void setup() {
lcd.begin(16,2); //inicializa el LCD que es de 16 lineas y 2 renglones, con este indicamos el tamaño del LCD.
lc.shutdown(0, false); //su primer parametro es el numero de referencia y el segundo es el estado que en este caso es apagado
void loop() {
Vo = analogRead(A0); // lectura de A0 es decir la señal que se detecta en el primer pin de lectura analogico.
TEMPERATURA= round(TEMPERATURA);// redondeamos el valor de temperatura para evitar altibajas en las lecturas
TEMP_DISPLAY= TEMPERATURA*100;
Serial.print(TEMPERATURA);
Serial.println(" C");
delay(500); // demora de medio segundo entre lecturas
lc.setDigit(0, 0, TEMP_DISPLAY %10, false); //en este caso si tuvieramos una temperatura mayor a 1 grado obtendriamos un
valor que fuese entero por lo tanto no ocupariamos el punto decimal y se pone false.
lc.setDigit(0, 1, (TEMP_DISPLAY/10) %10, false); //aqui se mueve una posicion hacia la izquierda, si tuvieramos 25 tendriamos
2.5 pero en este caso no tomariamos el 0.5 al final tendriamos el valor de 2
lc.setDigit(0, 2, (TEMP_DISPLAY/100) %10, true);// al dividir entre 100 y despues tenemos el modulo 10 para obtener el bit
menos significativo que obtendriamos en la division de valores flotantes. cuando colocamos true damos por entendido que esto
significa que es 22.27 convertiendo el valor que no pdoemos ver a uno que si
lc.setDigit(0,3, (TEMP_DISPLAY/1000) %10, false);// en el parametro de true se le colocaria para que pudieramos mostrar un
valor que no se podria enseñar a uno que si entonces si tuvieramos 1000 realmente tendriamos 10 grados.
delay(500);
lcd.print("Temp: ");
lcd.print(TEMPERATURA,1);
lcd.print(" C");
delay(500);
lcd.setCursor(4,1);
lcd.clear();
lcd.setCursor(4,1);
lcd.print ("REGULAR");
lcd.setCursor(4,1);
lcd.print ("PELIGROSO");
}
PROGRAMA DE APLICACIÓN DE CELULAR
//bluetooth hc-05
int LEDREGULAR = 10; //PIN LUZ DE LED PARA INDICAR TEMPERATURA REGULAR
void setup() {
Serial.begin(9600);
void loop() {
Vo = analogRead(A0); // lectura de A0
TEMPERATURA= round(TEMPERATURA);
Serial.print(TEMPERATURA);
Serial.println(" C");
if(TEMPERATURA >=0 &&TEMPERATURA <=10) {
digitalWrite(LEDREGULAR, HIGH);
digitalWrite(LEDALTO, LOW);
digitalWrite(LEDPELIGROSO, LOW);
digitalWrite(LEDREGULAR, LOW);
digitalWrite(LEDALTO, HIGH);
digitalWrite(LEDPELIGROSO, LOW);
digitalWrite(LEDREGULAR, LOW);
digitalWrite(LEDALTO, LOW);
digitalWrite(LEDPELIGROSO, HIGH);
state = Serial.read();
if (state == 'Q') {
state = 0;
if (state == 'W'){
state = 0;
if (state == 'E'){
state = 0;
if (state == 'R'){
state = 0;
if (state == 'T'){
state = 0;
if (state == 'Y'){
CIRCUITOS EN PROTEUS
Esta es la conexión que se tiene en Proteus para controlar lo que es el LCD y Display
del lado derecho con un Arduino y del lado izquierdo tenemos otro Arduino en conjunto
de dispositivos de bluetooth para simular el control del usuario y el envió de datos de la
terminal del Arduino.
Para explicar la conexión del Display de 7 segmentos a fondo es necesario ver este
diagrama eléctrico.
Se utiliza la multiplexación para activar un solo digito a la vez como habíamos dicho
antes. Los módulos se conectan en paralelo para activar los segmentos dentro del Display
y se activaran de acuerdo al valor que se envíen a sus salidas con el valor de modulo %
que se encuentra dentro del programa. El segDP está designado para manejar el punto
decimal pero solamente se utilizará en el Display índice 3 si lo vemos de derecha a
izquierda.
El iset controla simplemente el brillo del Display si colocamos la resistencia es para
regular la corriente al Display y que no se queme con demasiado voltaje. Se coloca el
capacitor para evitar los picos de corriente que pudieran entrar dentro del MAX.
PASOS NECESARIOS PARA CREAR PUERTOS VIRTUALES Y SIMULAR EL
DISPOSITIVO BLUETOOTH
Es necesario instalar este programa para poder simular que tenemos una conexión serial
con el Arduino y poder recibir y mandar información por el bus de datos el Arduino.
Cuando se haya instalado este programa y se haya abierto por primera vez, debemos crear
puertos virtuales para simular que en esos dos puertos hay dos conexiones de serial para
establecer uno de ellos sea la señal que sale del dispositivo bluetooth que se encuentra en
la cámara en conjunto con el termistor y la otra conexión virtual que estará conectado al
dispositivo de bluetooth para simular el envió de información del usuario al lugar de
trabajo. En mi caso fue el COM1 y el COM2.
Pero primero tenemos que remarcar algo importante antes de compilar, en la parte del
Arduino nos iremos a herramientas y escogeremos la placa de Arduino Uno porque es la
que tenemos en el Proteus para simular, si fuera alguna otra diferente tendría que cambiar
el modelo de la placa, y si por error colocáramos otro modelo de placa y compiláramos y
lo mandáramos al Arduino del proteus este marcara error.
Una vez realizada la compilación del código únicamente tenemos que irnos a la parte
final de la consola de Arduino y desplazarnos un poco ala derecha y buscar la ubicación
donde se haya guardado el código del programa como archivo.hex y la copiamos y de
ahí nos vamos al Proteus.
Le damos doble clic a nuestro Arduino con la ubicación del archivo.hex ya sea del
código de la APP o del LCD y Display y colocamos la dirección que tenemos en la
parte que dice Program File. Y ya quedara listo para correr.
RESULTADOS DE SIMULACIÓN
PROGRAMA DE DISPLAY Y LCD
En estos casos vamos a dejar claro primero que el EMISOR es la persona con la aplicación
de celular desde alguna parte de su trabajo mientras que el RECEPTOR es el área de
trabajo controlable que recibe la información del usuario a distancia, en pantalla vemos
los leds que son indicadores en la misma app para que el usuario vea lo que está
sucediendo.
En este primer caso el usuario inserto la letra Q que es el código para encender la luz de
emergencia, pero solamente para probarla ya que la temperatura es regular.
En este segundo caso activamos el código con la letra E que es la encargada de encender
la alarma de emergencia de que la temperatura esta alta pero nuevamente es solamente
para probarlo.
En este caso tenemos el código con la letra T que es la encargada de activar los
ventiladores, lo que debemos poner atención es que la luz de emergencia y la alarma aun
no se han desactivado lo que damos a entender que aun la temperatura esta alta. Pero otro
punto importante a tocar es que los dispositivos que activo el usuario no se desactivan por
si solos el usuario tiene que desactivarlos de manera manual es por ello que el código de
Q y E aún siguen activos.
Para este caso pusimos a prueba el código de desactivación de la luz de emergencia que
era la letra W, en la pantalla del receptor podemos ver que ya le llego al sistema del lugar,
y apaga la luz de emergencia rápidamente.
Se hizo este otro circuito en un principio, pero hubo un problema con él, este residía en
que ya había una etapa de acondicionamiento pues el termistor estaba ubicado en el
puente de Wheatstone donde este era la resistencia desconocida y el valor de voltaje de
la fuente era aumentada por un amplificador de instrumentación. En un principio se
tomaba el valor de voltaje de la salida del amplificador de instrumentación pero como la
señal de inicio ya era modificada por el amplificador de instrumentación y el puente de
Wheatstone era afectado por la resistencia del termistor el calculo de la resistencia del
termistor tendía a ser muy difícil pues ocurría el caso de que solamente eran 3 resistencias
cuando tendía temperaturas muy altas y el caso de alimentación del A0 del Arduino no
tiende ser fijo es muy volátil y tiende a cambiar muy a menudo. Además, tuviéramos que
hacer ajustes en el programa debido a que la salida del amplificador de instrumentación
era un voltaje amplificado y las resistencias de este amplificador también tendía a afectar
el valor de salida.
Como conclusión había muchos factores de por medio en este tipo de circuito y los valores
de salida hubieran sido algo distantes a los que realmente hubiera tenido el termistor, es
por ello, que se opto por usar un divisor de voltaje para realizar el proyecto.
REFERENCIAS
LINK SOBRE TUTORIAL DE PROTEUS PASO A PASO
https://latecnicalf.com.ar/descargas/material/informaticaelectronica/Proteus%20Introduc
cion.pdf
LINK SOBRE TIPOS DE ACONDICIONAMIENTO DE SENSORES RESISTIVOS
https://tableroalparque.weebly.com/uploads/5/1/6/9/51696511/capitulo_acondicionamie
nto_de_sensores_resistivos.pdf
LINK SOBRES INFORMACION DEL ARDUINO Y CARACTERISTICAS
https://docs.google.com/document/preview?hgd=1&id=1rYaZQDZi_ILyT8KOYZ7eB
CxKyjd6-k95RE-9MKa1AvE
LINK PARA PROTEUS 8.8 CON LICENCIA HASTA 2099
https://www.youtube.com/watch?v=HxfFValobIQ
https://www.youtube.com/watch?v=yNp_DYcnFko
https://www.youtube.com/watch?v=Rru48DApb_o
LINK PARA LIBRERIAS DE ARDUINO EN PROTEUS
https://www.youtube.com/watch?v=k5GUOHJ3RCY
LINK PARA LIBRERIAS DE DISPOSITIVO BLUETOOTH DE ARDUINO EN
PROTEUS
https://www.youtube.com/watch?v=3eca175Thfg
NOTA: Para instalar las librerías de bluetooth del Arduino es necesario ver el video
anterior de librerías de Arduino para poder instalarlas ya que es el mismo proceso.
LINK PARA INFORMACION EXTRA SOBRE LIBRERÍA LEDCONTROL
https://arduwiki.perut.org/wiki/LedControl
LINK PARA INFORMACION EXTRA SOBRE LIBRERÍA LIQUIDCRYSTAL
https://eldesvandejose.com/2016/04/02/la-libreria-liquidcrystal/
LINK PARA PAGINA DE FORMULA STEINHART-HART
http://www.thinksrs.com/downloads/programs/Therm%20Calc/NTCCalibrator/NTCcal
culator.html
LINK PARA DESCARGA EL VIRTUAL SERIAL PORT
https://www.youtube.com/watch?v=S0jpOttqeXg