Está en la página 1de 7

LABORATORIO DE DIGITALES

MÓDULO ARDUINO. GUÍA EXPERIMENTAL Nº 4


“TRAFFIC LIGHT”
(Autor: PC MIGUEL A. CORTES FERNANDEZ.)

1. Objetivos de la experiencia:

a) Familiarizarse con el entorno de desarrollo IDE Arduino.


b) Conectar la placa Arduino al IDE y seleccionar puerto serial.
c) Utilizar Protoboard.
d) Operar instrumentos.

2. Competencias que deberán adquirir los alumnos:

 Programar microcontroladores.
 Operar instrumentos e interpretar mediciones.
 Utilizar diferentes librerías del entorno de desarrollo IDE Arduino.
 Realizar programas de baja a mediana complejidad.

3. Reseña teórica:
INTRODUCCIÓN:

Es cada vez más frecuente encontrarnos con semáforos a los que para poder cruzar la calle tengamos que
pulsar un botón, consiguiendo con esto una circulación, tanto de vehículos como de peatones, más eficiente.
Normalmente, el control de semáforos, es realizado mediante otros dispositivos programables denominados
PLC; sin embargo, como veremos en la siguiente aplicación, también es factible realizar este proceso por
medio de microcontroladores.

En primer lugar, el pequeño pulsador que vamos a


usar tiene cuatro conexiones, cuatro pines, los
cuales pueden ser un poco confusos. Realmente,
en el interior del botón, sólo hay dos conexiones
eléctricas A-D y B-C.

Esto quiere decir que A y D son el mismo punto eléctrico, por lo que conectarlo a uno u otro es lo mismo, y
todo lo que conectes a cualquiera de los dos estará conectado entre sí. Lo mismo ocurre con B y C.

Ya hemos visto que los pines digitales de Arduino pueden configurarse como salidas, y así decidir si ponerlos
a 5 [V] (nivel alto) ó 0 [V] (nivel bajo) para encender y apagar un LED. Estos pines digitales también pueden
funcionar como entradas, de forma que nuestro Arduino puede leer si en ese pin hay 5 [V] ó 0 [V]. El
circuito que tenemos que construir utiliza un botón para poner un pin digital de Arduino a 5 [V] y 0 [V]
HOJA Nº 2
ACADEMIA POLITÉCNICA NAVAL

según esté presionado o no.

Lo primero que podríamos hacer es poner un botón pulsador entre el pin


digital y 5 [V].

En este caso, cuando el botón está presionado, Arduino detecta 5 [V] en su


entrada digital.

Pero, ¿qué ocurre cuando no está presionado?

El pin de Arduino queda completamente desconectado. Esto deja el pin


“flotando”, lo que quiere decir que cuando leamos su estado no podemos
garantizar que esté a nivel alto o bajo.
Para solucionar este estado, hay que “tirar” del pin hacia 0 [V]. Esto se
consigue utilizando una resistencia entre el pin y 0 [V] (GND).

La corriente siempre fluye por donde menor resistencia encuentra. Cuando


el botón está presionado el pin se conecta directamente a 5 [V], por lo que
la corriente fluye entre estos dos puntos y Arduino lee este valor. Sin
embargo, cuando el botón no está presionado, no hay camino posible entre
5 [V] y el pin, por lo que la corriente sólo puede fluir por GND, haciendo
que Arduino lea 0 [V] en su pin.

De esta forma, cuando presionamos el botón, Arduino lee “nivel alto”.


Mientras que, cuando lo dejamos soltamos, lee “nivel bajo”. También
podemos cambiar este comportamiento intercambiando la resistencia y el
botón.

Estas resistencias que “tiran” de un punto eléctrico hacia 0 ó 5 [V] se


llaman pull-down y pull-up respectivamente. Para nuestra aplicación
utilizaremos una resistencia pull-down.

4. Temario de la interrogación previa:


Los alumnos deberán leer la documentación técnica (DataSheet) correspondiente a la placa DFRduino Uno R3
y obtener alternativas y rango de voltajes de alimentación de la placa, máxima corriente de salida de los pines
de la placa, identificar los pines I/O digitales, pines analógicos y PWM.

5. Equipamiento y herramientas a utilizar:

 Computador con IDE Arduino instalado.


 Kit Arduino.
 Protoboard para Arduino.
 13 cables jumper M/M. (Macho/Macho)
 6 Resistor de 220 [Ω] (220R).
 2 Diodos LED rojo de 5 [mm].
HOJA Nº 3
ACADEMIA POLITÉCNICA NAVAL

 2 Diodos LED verde de 5 [mm].


 1 Diodo LED amarillo de 5 [mm].
 Multitester.
 1 Osciloscopio digital Tektronix TDS 1000B o similar.
 Guía Experimental Nº 3, “Traffic Light”.

6. Aplicación de software:

/*
Semáforo para vehículos y peatones
*/
int carRed = 12; //Asigna el semáforo para los vehículos
int carYellow = 11;
int carGreen = 10;
int button = 9; //pin del pulsador
int pedRed = 8; //Asigna el semáforo para el peatón
int pedGreen = 7;
int crossTime =5000; //Tiempo para que cruce el peatón
unsigned long changeTime;//Tiempo desde que el pulsador fue presionado

void setup()
{
pinMode(carRed, OUTPUT);
pinMode(carYellow, OUTPUT);
pinMode(carGreen, OUTPUT);
pinMode(pedRed, OUTPUT);
pinMode(pedGreen, OUTPUT);
pinMode(button, INPUT);
digitalWrite(carGreen, HIGH); //Enciende la luz verde
digitalWrite(pedRed, HIGH); //Enciende la luz roja
}

void loop()
{
int state = digitalRead(button);
// Comprueba si el botón está presionado y espera 5 segundos desde la última vez que se presionó
if(state == HIGH && (millis() - changeTime)> 5000)
{
//Llama a la función para cambiar la luz
changeLights();
}
}

void changeLights()
{
digitalWrite(carGreen, LOW); //Apaga luz verde
digitalWrite(carYellow, HIGH); //Enciende luz amarilla
delay(2000); //Espera 2 segundos

digitalWrite(carYellow, LOW); //Apaga luz amarilla


digitalWrite(carRed, HIGH); //Enciende luz roja
delay(1000); //Espera 1 segundo por seguridad
HOJA Nº 4
ACADEMIA POLITÉCNICA NAVAL

digitalWrite(pedRed, LOW); //Apaga luz roja


digitalWrite(pedGreen, HIGH); //Enciende luz verde

delay(crossTime); //Espera el tiempo establecido

//Luz verde de peatones intermitente


for (int x=0; x<10; x++)
{
digitalWrite(pedGreen, HIGH);
delay(250);
digitalWrite(pedGreen, LOW);
delay(250);
}

digitalWrite(pedRed, HIGH);//Enciende luz roja


delay(500);

digitalWrite(carRed, LOW); //Apaga luz roja


digitalWrite(carYellow, HIGH); //Enciende luz amarilla
delay(1000);
digitalWrite(carYellow, LOW); //Apaga luz amarilla
digitalWrite(carGreen, HIGH);

changeTime = millis(); // Registra el tiempo transcurrido desde el último cambio de luces y luego retorna al
Loop principal
}

7. Desarrollo experimental:
a) Para comenzar la experiencia, instale la placa de desarrollo junto con la placa del microcontrolador y
arme el circuito como se indica en la figura.
HOJA Nº 5
ACADEMIA POLITÉCNICA NAVAL

b) Conecte el cable USB en el conector de la placa del microcontrolador y luego conecte el otro extremo del
cable en un puerto USB del computador.
c) Verifique con el Administrador de Dispositivos de su computador y vea el número de puerto serial
asignado a su placa.

d) Conociendo el puerto asignado a su placa, configure el IDE Arduino, en el menú “Herramientas” como se
indica en la siguiente figura:

e) Ahora presiones el botón “Verificar” para compilar el programa y detectar si hay o no algún error
en la programación.

f) Si no hay errores, entonces presiones el botón “Subir” para cargar el programa en el


HOJA Nº 6
ACADEMIA POLITÉCNICA NAVAL

microcontrolador, indicando el mensaje “Subiendo”, una vez que el programa terminó de ser trasferido al
microcontrolador, aparecerá el mensaje “Subido”, lo cual indica que el microcontrolador está listo para
funcionar solo.

8. Informe:

a) Observe los LED y verifique que estén funcionando cuando presiona el pulsador, utilizando los 2 canales
del osciloscopio, haga un gráfico temporal de las 3 luces del semáforo para vehículos.

b) Utilizando el osciloscopio, verifique el tiempo que demora la luz verde del peatón en encender, desde que
se presiona el pulsador, grafique con escala de tiempo apropiada.

c) Anotar las conclusiones obtenidas por el grupo de trabajo después de realizada la experiencia.
HOJA Nº 7
ACADEMIA POLITÉCNICA NAVAL

d) Observaciones.

NOMBRE Y FIRMA DE LOS ALUMNOS INTEGRANTES DEL GRUPO.

1.-

2.-

3.-

También podría gustarte