Universidad Distrital Francisco José de Caldas. Dispositivos Digitales Programables.
Ingeniería Eléctrica
INFORME DE LABORATORIO 3
NELSON MAURICIO BEJARANO 20142007073
TEMPORIZADORES Y RETARDOS
SEBASTIAN FERNANDEZ 20142007158
RICARDO ANDRÉS CELIS 20141007107
Universidad Distrital Francisco José de Caldas. Dispositivos Digitales Programables. Ingeniería Eléctrica
a) Microcontrolador
Resumen— En el siguiente informe se presenta un análisis de las
situaciones que se pueden presentar en la industria, y como se trata
Un microcontrolador es un circuito integrado que en su
de minimizar dichas situaciones, y las varias soluciones que se
pueden implementar, una de ellas, como prototipo es interior contiene una unidad central de procesamiento (CPU),
implementando la herramienta millis en Arduino o la función unidades de memoria (RAM y ROM), puertos de entrada y
delay, ambas para dar un tiempo de espera a los procesos, ya sea salida y periféricos. Estas partes están interconectadas dentro
programados y de forma esporádica. del microcontrolador, y en conjunto forman lo que se le
conoce como microcomputadora. Se puede decir con toda
propiedad que un microcontrolador; una forma de decirlo con
menos palabras seria, que es una microcomputadora completa
I. INTRODUCCIÓN encapsulada en un circuito integrado.
En la actualidad es muy común escuchar hablar de Toda microcomputadora requiere de un programa para que
realice una función específica. Este se almacena normalmente
microcontroladores, en este caso particular, de la herramienta
en la memoria ROM. No está de más mencionar que sin un
Arduino, que nos sirve para simular situaciones que se pueden
programa, los microcontroladores carecen de utilidad.
presentar en los procesos. En este caso, una banda
El propósito fundamental de los microcontroladores es el de
transportadora, arranca el proceso y se desplazan por ella leer y ejecutar los programas que el usuario le escribe, es por
objetos a una temperatura menor a 40°C, esto se va a esto que la programación es una actividad básica e
representar por medio de un led, cuando la temperatura de los indispensable cuando se diseñan circuitos y sistemas que los
objetos exceda la máxima, se acciona un sistema de incluyan. El carácter programable de los microcontroladores
refrigeración, el cual dura aproximadamente 2 minutos simplifica el diseño de circuitos electrónicos. Permiten
encendido, independiente de esto, se tiene un botón de parada modularidad y flexibilidad, ya que un mismo circuito se puede
rápida, usado únicamente en caso de accidentes. Este proceso utilizar para que realice diferentes funciones con solo cambiar
se va a simular en la tarjeta Arduino, para saber las acciones el programa del microcontrolador.
que se tomarían en acción en caso de situaciones reales, para
redecir futuros sucesos y para asi familiarizarse más con b) Arduino Uno
Arduino.
Es una compañía de hardware libre y una comunidad
tecnológica que diseña y manufactura placas computadora, de
desarrollo de hardware y software, compuesta respectivamente
II. OBJETIVOS por circuitos impresos que integran un microcontrolador y un
entorno de desarrollo (IDE), en donde se programa cada placa.
Otra definición que podemos asignarle es la de plataforma de
A. Objetivo General electrónica “open-source”, también llamada de código abierto,
Implementar un programa en la Herramienta cuyos principios son contar como software y hardware fácil de
Arduino, capaz de tener simular un esquema real de usar, es decir, que se pueden realizar proyectos interactivos sin
una banda transportadora, con su sistema de mayores complicaciones.
respuesta en caso de que se supere una temperatura Una de las mayores diferencias que existen entre Arduino y
máxima permitida y el botón de parada de cualquier otro tipo de placas y microcontroladores radica en
emergencia. que los entornos de desarrollo y lenguaje de programación de
Arduino y las placas en las que se ejecutan han sido
B. Objetivo Específicos desarrollados de forma paralela, es decir, se construyeron
- Implementar dos situaciones, una con la función simultáneamente; este echo asegura la compatibilidad y la
delay y la otra con la función millis. sencillez de desarrollo sobre el programa.
- Realizar un programa con el lenguaje de
programación compatible con la Herramienta. Software, el software Arduino cuenta con un IDE (entorno de
desarrollo integrado) para todos los sistemas operativos, pero
¿Qué es un IDE? en pocas palabras, un lugar en donde
podemos escribir las aplicaciones, descargarlas al Arduino y
ejecutarlas o depurarlas desde ahí.
III. MARCO TEÓRICO
Universidad Distrital Francisco José de Caldas. Dispositivos Digitales Programables. Ingeniería Eléctrica
El Lenguaje de programación usado en Arduino es sencillo, valor al igual que 3,3V; Vin, que es el voltaje de entrada, por
se facilita si se tiene conocimiento en C o java, ya que este pin también se puede alimentar la placa; RESET, que
Wiring/Processing se basa en esos leguajes. reinicia la placa; IOREF, que sirve para que la placa reconozca
El microcontrolador en la placa Arduino se programa el tipo de alimentación que requieren los shields.
mediante el lenguaje de programación Arduino basado en el
Wiring; el entorno de desarrollo Arduino se basa en el También podemos encontrar el pin AREF, arriba de todo a la
processing. izquierda de los pines digitales, este pin sirve para suministrar
un voltaje diferente a 5v por los pines digitales.
El Hardware Arduino más sencillo consiste en una placa con
un microcontrolador y una serie de puertos de entrada y salida; Además, está el conector USB, para cargar el programa y
los Microcontroladores AVR más usados son el Atmega168, alimentar la placa; y el conector de alimentación, para
Atmega328, Atmega1280, y Atmega8 por su sencillez y bajo alimentarla.
coste que permiten el desarrollo de múltiples diseños, aunque
también nos encontramos microcontroladores CortexM3 de
ARM de 32 bits,5 que coexistirán con las más limitadas, pero c) Arquitectura Harvard
también económicas AVR de 8 bits. ARM y AVR son
plataformas diferentes, pero gracias al IDE de Arduino los Por excelencia la utilizada en supercomputadoras, en los micro
programas se compilan y luego se ejecutan sin cambios en controladores, y sistemas integrados en general. En este caso,
cualquiera de las plataformas. además de la memoria, el procesador tiene los buses
La diferencia entre las distintas placas radica, en parte a la segregados, de modo que cada tipo de memoria tiene un bus
tensión utilizada por cada una de ellas, por lo general, las de datos, uno de direcciones y uno de control.
microcontroladoras con CortexM3 tienen un voltaje de 3,3
voltios, mientras que la mayor parte de las placas con AVR
utilizan una tensión de 5 voltios. Esto luego es fundamental La ventaja fundamental de esta arquitectura es que permite
para utilizar lógica TTL. adecuar el tamaño de los buses a las características de cada
Arduino se puede utilizar para desarrollar elementos tipo de memoria; además, el procesador puede acceder a cada
autónomos, o bien conectarse a otros dispositivos o interactuar una de ellas de forma simultánea, lo que se traduce en un
con otros programas, para interactuar tanto con el hardware aumento significativo de la velocidad de procesamiento.
como con el software.
d) Función Delay
Ahora se hace énfasis en los pines que posee Arduino, los
primeros que se trataran son las entradas y salidas digitales, Es una herramienta del lenguaje C que permite retrasar ciertas
estas se sitúan en la parte de arriba de la placa, y son las que funciones durante un intervalo determinado, se usa en
van del 0 al 13, el pin 13 lleva una resistencia interna incluida. unidades de milisegundos, es decir, si quisiéramos retrasar una
La señal puede estar encendida (High) o apagada (Low), los señal un t=1s deberíamos escribir delay (1000); y de esta
pines 0 y 1 se pueden usar para cargar el programa en la placa, manera existirá el retraso esperado.
como un pulsador.
Las Salidas Análogas corresponde a los pines 11, 10, 9 6, 5 y e) Función millis.
3, que poseen una curva al lado, funcionan como salidas o La función millis () me devuelve el número de milisegundos
entradas analógicas y/o digitales, también son llamados salidas desde que Arduino se ha reseteado, dado que millis devuelve
PWM, que son salidas digitales que imitan señales analógicas, un unsigned long puede tener un valor de hasta [Link]
modificando la separación entre los diferentes pulsos de la que son 49 días, 17 horas, 2 minutos, 47 segundos y 292
señal. Estas salidas pueden otorgar diversos valores y se milisegundos, por lo tanto, al cabo de ese periodo el contador
pueden usar para variar la intensidad de un Led o hacer se resetea.
funcionar un servomotor.
Las Entradas analógicas son los pines A0, A1, A2, A3, A4 y En principio no se debe resetear puesto que corremos el riesgo
A5; se usan para que ingrese una señal de un sensor analógico, de que dejen de funcionar las librerías que usen la función
tipo potenciómetro o quizás un sensor de temperatura, los millis () sino que hay que usar la diferencia de millis entre un
cuales otorgan valores variables, se pueden usar como pines evento y otro [6].
digitales.
Los Pines de alimentación, dentro de estos tenemos, GND,
que son los pines a tierra de la placa; 5V, que suministra dicho
Universidad Distrital Francisco José de Caldas. Dispositivos Digitales Programables. Ingeniería Eléctrica
IV. PROCEDIMIENTO if (b==HIGH)
Se procede a simular el comportamiento de una banda {
transportadora, teniendo en cuenta sus etapas de digitalWrite(normalidad,LOW);
funcionamiento, como el trabajo normal, en caso de que se digitalWrite(ledventilacion,LOW);
supere determinada temperatura la etapa de enfriamiento y en digitalWrite(ledemergencia,HIGH);
caso de emergencia se suspende el funcionamiento hasta
nueva orden, para cada una de las 3 etapas de tiene un led, el }
cual si esta encendido indica que se encuentra en esa etapa }
Figura 1. Código de la banda transportadora con delay.
(cabe resaltar que no puede estar en dos etapas a la vez).
Este funcionamiento se va a implementar en la tarjeta Arduino
uno, dos veces, la primera con la función delay, y la segunda
Se muestra los pines que se implementaron, como normalidad,
con la función millis, esto con el fin de conocer las diferencias
ventilación y emergencia, además de cada una de sus entradas
que existen al momento de realizar cada implementación,
para los dos últimos pines nombrados.
observar que sucede con el programa.
En la figura 1 se muestra el código implementado para la
Ahora se procede a mostrar el código realizado con la
función delay, con todos los componentes que posee.
herramienta millis ().
int normalidad=12;
int temp = 4;
int ventilacion=4;
int alarm = 9;
int ledventilacion=9;
int emer = 5;
int emergencia=5;
int banda = 12;
int ledemergencia=10;
int refri = 10;
void setup() {
int refriestado = LOW;
// put your setup code here, to run once:
int ctrl1 = 0;
pinMode(normalidad,OUTPUT);
int ctrl2 = 0;
pinMode(ventilacion,INPUT);
unsigned long previousMillis = 0;
pinMode(ledventilacion,OUTPUT);
const long interval = 5000;
pinMode(emergencia,INPUT);
pinMode(ledemergencia,OUTPUT);
void setup() {
// set the digital pin as output:
pinMode(temp, INPUT);
}
pinMode(emer, INPUT);
pinMode(banda, OUTPUT);
void loop() {
pinMode(alarm, OUTPUT);
// put your main code here, to run repeatedly
pinMode(refri, OUTPUT);
}
int a=digitalRead(ventilacion);
int b=digitalRead(emergencia);
void loop()
{
if (b==LOW)
if(digitalRead(emer)==0 && ctrl2==0)
{
{
if(a==LOW)
unsigned long currentMillis = millis();
{
digitalWrite(normalidad,HIGH);
if (currentMillis - previousMillis >= interval && ctrl1==1)
digitalWrite(ledventilacion,LOW);
{
digitalWrite(ledemergencia,LOW);
previousMillis = currentMillis;
}
if (refriestado == LOW)
if (a==HIGH)
{
{
refriestado = HIGH;
digitalWrite(normalidad,LOW);
} else {
digitalWrite(ledventilacion,HIGH);
refriestado = LOW;
digitalWrite(ledemergencia,LOW);
ctrl1=0;
delay(60000);
}
}
digitalWrite(refri, refriestado);
}
Universidad Distrital Francisco José de Caldas. Dispositivos Digitales Programables. Ingeniería Eléctrica
}
if (digitalRead(temp)==1)
{
ctrl1 = 1;
}
digitalWrite(banda, HIGH);
}
else{
ctrl2 = 1;
digitalWrite(alarm, HIGH);
digitalWrite(refri, HIGH);
digitalWrite(banda, LOW);
}
}
Figura 2. Código de la banda transportadora con millis.
V. CONCLUSIONES
Se observa la diferencia en la ejecución del código
con la función millis y con la función delay: con la
función delay el programa se pausa, por el tiempo
especificado en dicho comando, solo ejecuta una
acción; por otro lado, la herramienta millis permite
ejecutar dos acciones a la vez, puesto que esta no
pausa el programa, solo ejecuta la acción, pero puede
ejecutar varias más.
Cada herramienta tiene su campo de aplicación
dependiendo de la necesidad del programa.
VI. BIBLIOGRAFIA
[1] Jutinico, Andrés; Guías de laboratorio Digitales III
[2]Guzmán, Oscar; Guías de laboratorio Microprocesadores
[3] Angulo, Martínez Ignacio; Microcontroladores PIC: La
clave del diseño
[4]Angulo, Martínez Ignacio; Arquitectura de
microprocesadores: Los Pentium a fondo.
[5] Angulo Usategui, J. María; Microcontroladores DSPIC:
Diseño Practico de aplicaciones. Angulo Usategui, J. María
[6] Aprendiendo Arduino, función millis, disponible en la
web.