Anda di halaman 1dari 10

UNIVERSIDAD NACIONAL JORGE BASADRE GROHMANN FACULTAD DE INGENIERIAS

ESCUELA PROFESIONAL DE INGENIERA EN INFORMATICA Y SISTEMAS


CURSO : ARQUITECTURA DE COMPUTADORES
AO DE ESTUDIOS : QUINTO CICLO SEMESTRE : I

PRCTICA DE LABORATORIO N08 (Ultimo laboratorio)


SEMFORO PROGRAMABLE

I. OBJETIVOS
Realizar el sketch de programacin en sentencias C
Realizar el conexionado de un diodo LED correctamente en la tarjeta Arduino.

II. MATERIALES Y EQUIPO
1 Computador con el programa Arduino ver 1.0.5
1 tarjeta Arduino Uno/Mega + 1 cable de conexin USb
1 diodo LED color Rojo de 5 mm
1 diodo LED color Amarillo (o mbar) de 5 mm
1 diodo LED color Verde de 5 mm
3 Resistencia de 270 x Watts
1 Resistencia de 100K x Watts
1 pulsador en miniatura para conmutacin
1 sensor de temperatura LM35Z
1potenciometro de 100K

III. FUNDAMENTO TEORICO


Conocimientos previos al proyecto: Entradas y salidas digitales
Los pines digitales 0 a 12 pueden configurarse para ser utilizados como entrada o como salida, esta
asignacin la determinamos en el sketch. Puesto que vamos a conectar componentes electrnicos en
estos pines, es improbable que una vez establecidos queramos volver a cambiarlos. Es decir, una vez
que hayamos configurado un pin como salida, no lo vamos a cambiar en mitad de un sketch para que
sea una entrada.
Por esta razn, suele ser prctica habitual fijar la direccin de un pin digital en la funcin de
configuracin que debe definirse en cada sketch. Por ejemplo, el siguiente cdigo (a continuacin de
pinMode) establece el pin digital 10 como salida (output) y el pin digital 11 como entrada
(input).Observe cmo utilizamos esta declaracin de variables en nuestro sketch para hacer que
resulte ms fcil cambiar posteriormente el pin utilizado si as nos conviene ms adelante.

int ledPin=10;
int switchPin=11;
void setup()
{
pinMode(ledPin, OUTPUT );
pinMode(switchPin, INPUT);
}

Ahora que ya sabemos cmo establecer un pin digital para que acte como entrada,
pasemos a construir un proyecto de modelo de semforo con la utilizacin de LEDs rojo,
amarillo y verde.

VI. PROCEDIMIENTO
Proyecto 01: Semforo
Cada vez que pulsemos el botn, la luz del semforo cambiar al color siguiente de la secuencia
prevista. En el Reino unido, la secuencia de los semforos es: rojo, rojo y amarillo juntas,
verde, amarillo y, a continuacin, vuelve al rojo.

Docentes: MSc. Alberto E. Cohaila B. / Ing. Katherine Elas Q. 1 T/04/07/2017


UNIVERSIDAD NACIONAL JORGE BASADRE GROHMANN FACULTAD DE INGENIERIAS
ESCUELA PROFESIONAL DE INGENIERA EN INFORMATICA Y SISTEMAS
CURSO : ARQUITECTURA DE COMPUTADORES
AO DE ESTUDIOS : QUINTO CICLO SEMESTRE : I

Al presionar el pulsador, las luces cambiarn solas siguiendo la secuencia prevista, aunque
con un cierto retardo entre cada paso. Tambin haciendo un pulso, las luces cambian.
El esquema electrnico del proyecto se muestra en la Figura 1. Los LEDs estn
conectados cada uno con su resistencia limitadora de corriente. El pin digital 5 est puesto a masa
(GND) a travs de R4, y cuando pulsamos S1, ste pasa a 5 V.

Figura 1: Diagrama de conexionado de los LED's a la placa Ardinuo

Figura 2: Diagrama de la placa de prueba protoboard

El sketch del proyecto es bastante auto explicativo y se muestra a continuacin. Una vez
por segundo, el programa comprueba si se ha presionado el pulsador, de forma que si lo
pulsamos varias veces con rapidez no cambiar la secuencia de luces. Sin embargo, si
mantenemos presionado el pulsador, las luces harn la secuencia completa automticamente.

Docentes: MSc. Alberto E. Cohaila B. / Ing. Katherine Elas Q. 2 T/11/07/2017


UNIVERSIDAD NACIONAL JORGE BASADRE GROHMANN FACULTAD DE INGENIERIAS
ESCUELA PROFESIONAL DE INGENIERA EN INFORMATICA Y SISTEMAS
CURSO : ARQUITECTURA DE COMPUTADORES
AO DE ESTUDIOS : QUINTO CICLO SEMESTRE : I

/* Semaforo
Proyecto de modelo de semforo con la utilizacin de LEDs rojo, amarillo y verde.
*/

// Cada vez que pulsemos el botn, la luz del semforo cambiar al color siguiente
// de la secuencia prevista. En el Reino unido, la secuencia de los semforos es:
// rojo, rojo y amarillo juntas, verde, amarillo y, a continuacin, vuelta al rojo.

// Al mantener presionado el botn, las luces cambiarn solas siguiendo la secuencia


// prevista, aunque con un cierto retardo entre cada paso.

// Declaramos las variables de los PINES a utilizar:


int rojoPin = 2; //LED rojo conectado al PIN digital 2
int amarilloPin = 3;
int verdePin = 4;
int botonPin = 5;

int estado= 0;

// Creamos una rutina que corre una vez cuando se presiona el boton RESET:
void setup()
{
pinMode(rojoPin, OUTPUT); // Inicializa el pin digital 2 como una salida
// (OUTPUT)
pinMode(amarilloPin, OUTPUT);
pinMode(verdePin, OUTPUT);
pinMode(botonPin, INPUT); // Inicializa el pin digital 5 como una entrada
}

// La rutina de lazo loop corre muchas veces siempre:


void loop()
{
if (digitalRead(botonPin))
{
if (estado==0)
{
setLuces(HIGH, LOW, LOW);
estado=1;
}
else if (estado == 1)
{
setLuces(HIGH, HIGH, LOW);
estado=2;
}
else if (estado == 2)
{
setLuces(LOW, LOW, HIGH);
estado=3;
}
else if (estado == 3)
{
setLuces(LOW, HIGH, LOW);
estado=0;
}
delay(500);
}
}

void setLuces(int rojo, int amarillo, int verde)


{
digitalWrite(rojoPin, rojo);
digitalWrite(amarilloPin, amarillo);
digitalWrite(verdePin, verde);
}

El sketch tambin utiliza una funcin independiente, setLuces, para establecer el estado de cada
LED. Reduciendo as tres lneas de cdigo a una.
Docentes: MSc. Alberto E. Cohaila B. / Ing. Katherine Elas Q. 3 T/11/07/2017
UNIVERSIDAD NACIONAL JORGE BASADRE GROHMANN FACULTAD DE INGENIERIAS
ESCUELA PROFESIONAL DE INGENIERA EN INFORMATICA Y SISTEMAS
CURSO : ARQUITECTURA DE COMPUTADORES
AO DE ESTUDIOS : QUINTO CICLO SEMESTRE : I

Guarde el sketch con nombre de archivo Semaforo.ini


Cargue el sketch terminado sketch a la tarjeta Arduino haciendo clic en el botn Cargar.
Pruebe el proyecto manteniendo pulsado el botn del pin 5 y compruebe que todos los LEDs se
van iluminando siguiendo la secuencia establecida.

Modifique el sketch del proyecto de tal modo que la secuencia de


los LEDs del semforo sea similar a Per. Es decir, implementar el
RETO 1: control de dos semforos dispuestos conforme el grfico siguiente.
La secuencia de encendido de las luces verde (V), mbar (A)
y roja (R) est indicada en los diagramas de tiempo siguientes.

Solucin: Remtase al archivo de


sketch SemaforoPeru.ini

Proyecto 02: Voltmetro

Conocimientos previos al proyecto


La placa Arduino UNO est equipada con seis pines analgicos de entrada, numerados
Analog 0 a Analog 5 (A0, A1, A5). En ellos se mide el nivel de tensin en la entrada,
dando como resultado un nmero entre 0 (0 V) y 1023 (5 V).

Nivel 0 0V

Nivel 512 2.5 V

Nivel 1023 5V
Esta caracterstica la podemos aprovechar para conocer cul es la posicin del mando de un
potencimetro de manera que al variar su resistencia este acte como un divisor de tensin
para nuestro pin analgico. La Figura 11 muestra la estructura interna de un potencimetro.

Docentes: MSc. Alberto E. Cohaila B. / Ing. Katherine Elas Q. 4 T/11/07/2017


UNIVERSIDAD NACIONAL JORGE BASADRE GROHMANN FACULTAD DE INGENIERIAS
ESCUELA PROFESIONAL DE INGENIERA EN INFORMATICA Y SISTEMAS
CURSO : ARQUITECTURA DE COMPUTADORES
AO DE ESTUDIOS : QUINTO CICLO SEMESTRE : I

A
Simbologa

B
2.5 V 0V

Al Arduino
A C
B
C

Figura 11: Funcionamiento interno de un potencimetro

El potencimetro es un componente electrnico que se utiliza habitualmente para el control de


volumen. Est constituido por una pista circular de una cierta resistencia equipada con
conexiones en ambos extremos. Un cursor deslizante proporciona una tercera conexin mvil.

La resistencia ajustable del potencimetro nos puede proporcionar un voltaje variable al


conectar uno de sus extremos a 0 V, y el otro a 5 V, con lo que el nivel de tensin en el cursor
deslizante puede variar entre 0 y 5 V, segn se gire la perilla o el mando.

La parte ms interesante es la relacionada con la lectura de los valores de la entrada


analgica. En el caso de los pines analgicos no es necesario utilizar la funcin pinMode, por lo
que no hay que aadir nada ms a la funcin de configuracin (setup).

Por lo tanto, si nuestra entrada analgica cambia de 0 a 1023, el clculo que necesitamos para
determinar el valor de tensin o voltaje es:
(valor de nivel * 5 v)
Voltaje
1023 Dnde: Valor de nivel = 0 .1023

El valor de nivel es lo que lee la entrada analgica del Arduino, por ejemplo si A0 = 512, su
correspondiente nivel de voltaje es de:
(512 * 5)
Voltaje 2.5024 Voltios , que podemos aproximar a 2.5 V.
1023

El Arduino Uno posee internamente un convertidor Analgico a Digital (ADC) de 10 bits de


resolucin, por lo tanto el nmero de niveles que puede generar es:
# Niveles 2 n 1 2101 1024 1 1023
Donde:
n: es la resolucin del ADC, n= 10 (resolucin del Arduino Uno)
Como consecuencia, un analog_value 0 (A0) dara nmeros de valores enteros o en punto
flotante, segn se programe en el sketch.

Procedimiento:

Docentes: MSc. Alberto E. Cohaila B. / Ing. Katherine Elas Q. 5 T/11/07/2017


UNIVERSIDAD NACIONAL JORGE BASADRE GROHMANN FACULTAD DE INGENIERIAS
ESCUELA PROFESIONAL DE INGENIERA EN INFORMATICA Y SISTEMAS
CURSO : ARQUITECTURA DE COMPUTADORES
AO DE ESTUDIOS : QUINTO CICLO SEMESTRE : I

1. El esquema electrnico del proyecto se muestra en la Figura 12. El potencimetro est


conectado su patilla del medio en A0 (entrada analgica 0) el extremo superior a 5 V y el
extremo inferior a GND (tierra) respectivamente de la tarjeta Arduino

5V Potencimetro de 10 K

A0

Figura 12: Esquema electrnico del proyecto 6


.2. El sketch (listado) de cdigo de este proyecto se muestra a continuacin

/* LecturaVoltajeAnalgico
Lee una entrada analogical del pin 0 (A0), convierte a voltaje, e imprime el resultado en el
Monitor Serial.
Coloque el pin central del potencimetro en el pin A0, y los pines extremos a +5V y tierra
(GND) respetivamente. */

// La rutina de configuracin (setup) se ejecuta una sola vez al presionar reset:

void setup()
{
//Inicializa la comunicacin serial a velocidad de 9600 bits por segundo (bps):
Serial.begin(9600);
}

void loop()
{
// Lee la entrada analogical del pin 0:
int valorSensor = analogRead(A0);
// Convierte la lectura analgica (que vas desde 0 - 1023) a un voltaje (0-5V):
float voltaje = valorSensor * (5.0 / 1023.0);

// Imprime en la salida el valor ledo:


Serial.print(Voltaje = );
Serial.println(voltaje);
delay(250); // Retardo de 0.25 seg
}
3. Guarde el sketch con nombre de archivo Voltimetro.ini
4. Cargue el sketch terminado sketch a la tarjeta Arduino haciendo clic en el botn Cargar.
5. Lance el monitor serial (lupa que se encuentra en la posicin derecha superior de la
ventana de Arduino) y comprobar que girando el potencimetro en el sentido de las
agujas del reloj aumentar la tensin desde 0 hasta 5 voltios. Si lo giramos en el
sentido contrario disminuir la tensin desde 0 a 5 voltios.

Docentes: MSc. Alberto E. Cohaila B. / Ing. Katherine Elas Q. 6 T/11/07/2017


UNIVERSIDAD NACIONAL JORGE BASADRE GROHMANN FACULTAD DE INGENIERIAS
ESCUELA PROFESIONAL DE INGENIERA EN INFORMATICA Y SISTEMAS
CURSO : ARQUITECTURA DE COMPUTADORES
AO DE ESTUDIOS : QUINTO CICLO SEMESTRE : I

RETO 2:
Realice un programa que v i s u a l i c e e l m a y o r y e l m e n o r v a l o r d e v o l t a j e a
medida que va girando la perilla del potencimetro.

PROYECTO 03.- Medicin de Temperatura con Sensor Integrado LM335Z

Conocimientos previos al proyecto:


El LM335 es un circuito integrado que acta como un sensor de temperatura calibrado directamente en
grados Farenteigh, que se alimenta entre 2.7V y 5.5V y que por lo tanto es ideal para usarlo con
nuestra placa Arduino.

El LM335 proporciona una salida de voltaje directamente proporcional a la temperatura en grados F


Farenteigh. Algunas caractersticas son:

Rango de temperatura: -40C to 150C / -40F to 302F


Factor de escala 10 mV/C
Precisin de 2C
Linealidad de 0.5
Alimentacin: Entre 2.7 y 5.5V.

La salida de voltaje vs la temperatura se muestra en la figura 19.

Figura 19: Salida de voltaje a temperatura.

Del grfico anterior, la recta b, que hace referencia al sensor TMP36, cuya respuesta es lineal.
Docentes: MSc. Alberto E. Cohaila B. / Ing. Katherine Elas Q. 7 T/11/07/2017
UNIVERSIDAD NACIONAL JORGE BASADRE GROHMANN FACULTAD DE INGENIERIAS
ESCUELA PROFESIONAL DE INGENIERA EN INFORMATICA Y SISTEMAS
CURSO : ARQUITECTURA DE COMPUTADORES
AO DE ESTUDIOS : QUINTO CICLO SEMESTRE : I

Procedimiento:

1. El esquema electrnico del proyecto se muestra en la Figura 16. Tendremos que montar el
siguiente circuito sobre la placa protoboard:

Figura 20: Salida de voltaje a temperatura.

2. Ya sobre la protoboard real, realice el montaje, tal como muestra la figura 21.

Sensor
LM335Z

Figura 21: Montaje en protoboard del sensor de temperatura LM335.

Docentes: MSc. Alberto E. Cohaila B. / Ing. Katherine Elas Q. 8 T/11/07/2017


UNIVERSIDAD NACIONAL JORGE BASADRE GROHMANN FACULTAD DE INGENIERIAS
ESCUELA PROFESIONAL DE INGENIERA EN INFORMATICA Y SISTEMAS
CURSO : ARQUITECTURA Y COMPUTADORAS
AO DE ESTUDIOS : QUINTO CICLO SEMESTRE : I

3. Se debe tener cuidado de poner correctamente cada cable donde corresponda, el azul - el de
seal-, entre la pata del centro del sensor y el pin A0de Arduino, el cable rojo entre la pata que
queda ms a la izquirda y el pin 5V del Arduino y finalmente el cable negro entre la pata que
queda ms a la derecha y el pin GND del Arduino.

Figura 22: Cables de colores del sensor de temperatura, conectados al Arduino.

4. Una vez realizado el montaje, vamos a programar el cdigo sobre la placa Arduino Uno. El
sketch de la aplicacin, a continuacin se muestra en el listado.

/* TEMPERATURA:
Medicin de temperatura con sensor TMP36 o LM35
*/

float temp;
int tempPin=A0; //Entrada analgica 0

void setup()
{
Serial.begin(9600);
}
void loop()
{
temp=analogRead(tempPin);
temp=(5.0*temp*100)/1024.0;
Serial.print(Temperatura : );
Serial.print(temp);
Serial.println(" grados C");
delay(500);
}

5. Compilamos el cdigo para asegurarnos que no hay errores con el botn . Si no hay errores
en la compilacin veremos el siguiente mensaje en la parte inferior del IDE de
Arduino
6. Guarde el sketch con nombre de archivo TemperaturaCenti.ini

7. Luego transferimos el cdigo al microcontrolador mediante el botn cargar . Si


la transferencia al microcontrolador es exitosa veremos el siguiente mensaje: .

Docentes: MSc. Alberto E. Cohaila B. / Ing. Katherine Elas Q. 9 T/11/07/2017


UNIVERSIDAD NACIONAL JORGE BASADRE GROHMANN FACULTAD DE INGENIERIAS
ESCUELA PROFESIONAL DE INGENIERA EN INFORMATICA Y SISTEMAS
CURSO : ARQUITECTURA Y COMPUTADORAS
AO DE ESTUDIOS : QUINTO CICLO SEMESTRE : I

8. Finalmente, ya podemos empezar a medir temperaturas con el botn de Monitor Serial


Veremos una pantalla, que ya nos muestra la temperatura en grados centgrados:

9. Finalmente probar que el sensor funciona, con precaucin podemos acercar una fuente de calor
al sensor y ver como efectivamente la temperatura sube, o simplemente poniendo la mano
cerca. Puede poner para este caso el sensor cerca al ventilador de la laptop.

RETO 3:
Modifique el programa de modo que visualice el registro de temperatura en grados
Farentheth y Kelvin.

Solucin: Remtase al archivo tempereaturaF&K.ini

INFORME FINAL PARA EL LABORATORIO 07:

1. Realice todos los pasos indicados en la presente prctica incluido los Retos.
2. Realice la simulacin en Proteus de los programas respectivos
3. Realizar la programacin y la simulacin en Proteus de un sistema de temperatura que
de una alarma (encienda un LED) a medida que la temperatura aumenta por encima de
30 grados C y encienda otro LED a medida que la temperatura disminuya por debajo de
20 C. En todo momento los datos se debe guardar en una hoja de Excel.
4. Vea el siguiente link y de su opinin:
https://www.youtube.com/watch?v=NaDrt-rH5JY
5. Vea el siguiente link. Donde lo puede aplicar en su carrera de Ing. Inf&Sist (de su
comentario)
https://www.youtube.com/watch?v=xftEjHPU_U4
6. De 4 conclusiones ms importantes del presente laboratorio
7. De 3 observaciones ms importantes del presente laboratorio

NOTA: PRESENTACION DEL INFORME Nro. 08

PROXIMO MARTES 18/09/2017

Docentes: MSc. Alberto E. Cohaila B. / Ing. Katherine Elas Q. 10 T/11/07/2017

Anda mungkin juga menyukai