26
INSTITUTO TECNOLOGICO DE PABELLÓN DE ARTEAGA MATERIA: Microcontroladores NOMBRE DEL TRABAJO: Portafolio de Evidencias NOMBRE DEL ALUMNO: Marco Alejandro Velázquez Romero NOMBRE DEL PROFESOR: Ing. Diego Jacob Dondiego Jaime FECHA DE ENTREGA: 4 de Septiembre del 2015 TECNOLÓGICO NACIONAL DE MÉXICO

Portafolio de Evidencias Unidad 5 Micro

Embed Size (px)

DESCRIPTION

Practicas de arduino

Citation preview

Page 1: Portafolio de Evidencias Unidad 5 Micro

Unidad de aprendizaje: Puertos y Entradas de Salida Número: V

INSTITUTO TECNOLOGICO DE PABELLÓN DE ARTEAGA

MATERIA:

Microcontroladores NOMBRE DEL TRABAJO:

Portafolio de Evidencias

NOMBRE DEL ALUMNO:

Marco Alejandro Velázquez Romero

NOMBRE DEL PROFESOR:

Ing. Diego Jacob Dondiego Jaime

FECHA DE ENTREGA:

4 de Septiembre del 2015

TECNOLÓGICO NACIONAL DE MÉXICO

Page 2: Portafolio de Evidencias Unidad 5 Micro

Tecnológico Nacional de MéxicoInstituto Tecnológico de Pabellón de Arteaga

Maco Alejandro Velázquez Romero Ingeniería en Mecatrónica

Práctica: Salidas Digitales Número: 1

Propósito de la práctica: Configurar las salidas digitales para encender y apagar un Led en intervalos de tiempo

Escenario: Laboratorio De Electrónica Duración: 1 hrs

Materiales, herramientas, instrumental, maquinaria y equipo Arduino Uno Led Resistencia 100 Ohms IDE Arduino Protoboard

Desempeños

Antes que nada nos dispusimos a elaborar el código en el IDE del arduino, el cual consiste en programar el puerto 13 (puede ser cualquier puerto), en forma de salida, ya que este puerto escribirá un pulso que posteriormente el Led al estar conectado a este puerto se encenderá o apagara dependiendo de lo que se escriba en el programa, y de igual forma también programaremos el tiempo correspondiente a la escritura de este puerto.

Estructura del Programavoid setup() { pinMode(13,OUTPUT); //pin 13 de salida

}

void loop() { digitalWrite(13,LOW); //cero logico delay(1000); //retardo de un segundo digitalWrite(13,HIGH); //uno lógico delay(200); //retardo de un segundo}

Después de haber elaborado y compilado el programa, procedimos a hacer la simulación en el Programa Isis Proteus, cuya finalidad es hacer la práctica de forma segura (virtual) para saber si no hay ningún error o falla, además de tener la certeza de que al realizarlo en físico, funcionará perfectamente.

Al buscar todos los componentes en las librerías del programa y hacer las conexiones correspondientes, procedimos la simulación.

Page 3: Portafolio de Evidencias Unidad 5 Micro

Tecnológico Nacional de MéxicoInstituto Tecnológico de Pabellón de Arteaga

Maco Alejandro Velázquez Romero Ingeniería en Mecatrónica

Conclusiones

Al ser la primera práctica con el arduino, fue relativamente fácil, se puede decir que se hizo el “Hola Mundo” del arduino.En esta práctica aprendimos a configurar las salidas digitales del arduino, las cuales se pueden programar en alto o bajo, high o low, es decir, se puede mandar un pulso de salida a puerto de nuestra conveniencia para nuestro fin, en ese caso, encendimos y apagamos un Led, además de también configurar el tiempo en el que se va a realizar esta orden o línea de código.

Page 4: Portafolio de Evidencias Unidad 5 Micro

Tecnológico Nacional de MéxicoInstituto Tecnológico de Pabellón de Arteaga

Maco Alejandro Velázquez Romero Ingeniería en Mecatrónica

Unidad de aprendizaje: Puertos y Entradas de Salida Número: V

Práctica: Semáforo Número: 2

Propósito de la práctica: Configurar las salidas digitales de tal forma que enciendan y apaguen 3 Led´s simulando un semáforo

Escenario: Laboratorio De Electrónica Duración: 1 hrs

Materiales, herramientas, instrumental, maquinaria y equipo Arduino Uno 1 Led Rojo 1 Led Amarillo Led Verde 3 Resistencias 220 Ohms IDE Arduino Protoboard

Desempeños

La plataforma de Hardware libre Arduino es una herramienta de gran ayuda para la programación de cualquier cosa dependiendo de la imaginación de usuario.En esta ocasión la imaginación nos ha permitido crear o simular la función de un semáforo, mediante el uso de 3 Led´s, rojo, amarillo y verde, y un puerto de salida digital para cada uno, se podrá hacer esta práctica, además de también recordar algunas de los códigos de programación en c.

Estructura del Programaint i=1,verde=13, amarillo=12, rojo=11;void setup (){ pinMode(verde,OUTPUT); pinMode(amarillo,OUTPUT); pinMode(rojo,OUTPUT);}void loop(){ digitalWrite(verde,0); digitalWrite(amarillo,0); digitalWrite(rojo,0); digitalWrite(verde,1); delay(5000); digitalWrite(verde,0); for(i=1; i<=5; i++) { digitalWrite(amarillo,1); delay(500); digitalWrite(amarillo,0); delay(500);} digitalWrite(rojo,1); delay(5000);}

Page 5: Portafolio de Evidencias Unidad 5 Micro

Tecnológico Nacional de MéxicoInstituto Tecnológico de Pabellón de Arteaga

Maco Alejandro Velázquez Romero Ingeniería en Mecatrónica

Page 6: Portafolio de Evidencias Unidad 5 Micro

Tecnológico Nacional de MéxicoInstituto Tecnológico de Pabellón de Arteaga

Maco Alejandro Velázquez Romero Ingeniería en Mecatrónica

Como se muestra en las imágenes se conectó un Led verde al puerto 13, un Led amarillo al puerto 12 y un Led rojo al puerto 11.Posteriormente se les asigno un delay a cada puerto o salida, para que concordara con los tiempos de un semáforo, o más bien dicho con los cambios de colores.

Conclusión

Lo aprendido en esta clase es el uso del ciclo for, el cual utilizamos para el cambio o el parpadeo del Led amarillo, para mí, una cosa tan sencilla, hace cosas geniales. Además también aprendí a usar al mismo tiempo puertos o salidas digitales, y su correspondiente programación.

Page 7: Portafolio de Evidencias Unidad 5 Micro

Tecnológico Nacional de MéxicoInstituto Tecnológico de Pabellón de Arteaga

Maco Alejandro Velázquez Romero Ingeniería en Mecatrónica

Unidad de aprendizaje: Puertos y Entradas de Salida Número: V

Práctica: Cruce de Semáforos Número: 3

Propósito de la práctica: Configurar las salidas digitales de tal forma que enciendan y apaguen 6 Led´s simulando un 2semáforos.

Escenario: Laboratorio De Electrónica Duración: 1 hrs

Materiales, herramientas, instrumental, maquinaria y equipo Arduino Uno 2 Led´s Verdes 2 Led´s Amarillos 2 Led´s Rojos 6 Resistencia 220 Ohms IDE Arduino Protoboard

Desempeños

Ahora en la practica 3, realizaremos un cruce de 2 semáforos, en cual consiste en programar el cambio de las luces de los semáforos dándoles sus debidos tiempos.Por la complejidad del programa solo se podrá entender al 100% cuando se visualice en la simulación en el Isis Proteus.Al finaliza la práctica, se observara que hasta un cruce de semáforos puede ser un tanto fácil, depende de usuario y de su dedicación.

Estructura del Programa// semaforo 1int verde1 = 12;int amarillo1 = 11;int rojo1 = 10;// semaforo 2int verde2 = 9;int amarillo2 = 8;int rojo2 = 7;

void setup(){

pinMode(verde1, OUTPUT);pinMode(amarillo1, OUTPUT);pinMode(rojo1, OUTPUT);pinMode(verde2, OUTPUT);pinMode(amarillo2, OUTPUT);pinMode(rojo2, OUTPUT);}

void loop(){

Page 8: Portafolio de Evidencias Unidad 5 Micro

Tecnológico Nacional de MéxicoInstituto Tecnológico de Pabellón de Arteaga

Maco Alejandro Velázquez Romero Ingeniería en Mecatrónica

digitalWrite(verde1, HIGH);digitalWrite(rojo2, HIGH);delay(3000);

for (int i = 0; i < 3; i++){digitalWrite(verde1, LOW);delay(500);digitalWrite(verde1, HIGH);delay(500);}

digitalWrite(verde1, LOW);digitalWrite(amarillo1, HIGH);// Me espero 1 segundodelay(1000);// Apago amarillo, prendo rojo del semáforo 1 y apago el rojo// y prendo el verde del semáforo 2digitalWrite(amarillo1, LOW);digitalWrite(rojo1, HIGH);digitalWrite(rojo2, LOW);digitalWrite(verde2, HIGH);// Me espero 3 segundos para el verde del semáforo 2delay(3000);// Parpadeo el verde semáforo 2for (int i = 0; i < 3; i++){digitalWrite(verde2, LOW);delay(500);digitalWrite(verde2, HIGH);delay(500);}// El verde se quedó prendido, lo tengo que apagar y prendo el// amarillo del semáforo 2digitalWrite(verde2, LOW);digitalWrite(amarillo2, HIGH);// Me espero 1 segundodelay(1000);// Apago amarillo del semáforo 2 y apago el

Page 9: Portafolio de Evidencias Unidad 5 Micro

Tecnológico Nacional de MéxicoInstituto Tecnológico de Pabellón de Arteaga

Maco Alejandro Velázquez Romero Ingeniería en Mecatrónica

rojo del semáforo 2digitalWrite(amarillo2, LOW);digitalWrite(rojo1, LOW);// No prendo el verde del semáforo 1 y el rojo del semáforo 2}

Después de haber escrito el programa en el IDE de Arduino, se procedió a la simulación. Primeramente se buscaron todo los componentes necesarios para la simulación, y posteriormente se hicieron las conexiones correspondientes, hasta quedar de la forma en la que se muestra en las siguientes imágenes.

Para la mayor compresión del programa vamos a llamar estados al momento en el que se encuentra el código o la simulación. El programa consiste de la siguiente forma:

En este primer estado, el primer semáforo el Led verde se encuentra encendido, y el segundo semáforo el Led rojo se encuentra encendido.

Semáforo 1 Verde = EncendidoSemáforo 2 Rojo = Encendido

En el segundo estado, el semáforo 1 cambia al Led amarillo además de estar parpadeando, y el segundo semáforo se mantiene en el mismo Led

Semáforo 1 Amarillo/parpadea = EncendidoSemáforo 2 Rojo = Encendido

Page 10: Portafolio de Evidencias Unidad 5 Micro

Tecnológico Nacional de MéxicoInstituto Tecnológico de Pabellón de Arteaga

Maco Alejandro Velázquez Romero Ingeniería en Mecatrónica

En el ercer estado, el semáforo 1 cambia al Led Rojo, y el segundo semáforo cambia al Led Verde.

Semáforo 1 Rojo = EncendidoSemáforo 2 Verde = Encendido

En este cuarto estado, l semáforo 1 se mantiene en el mismo Led, pero el semáforo 2 cambia al Led amarillo, que también está parpadeando.

Semáforo 1 Rojo = EncendidoSemáforo 2 AmarilloParpadeo = Encendido

Y para terminar, se vuelve a estado inicial, volviendo a empezar e ciclo.

Semáforo 1 Verde = EncendidoSemáforo 2 Rojo = Encendido

Conclusión

En esta práctica se aprendió a programar al mismo tiempo 2 puertos, suena algo sencillo, pero desde mi punto de vista, es algo un poco complicado.

Page 11: Portafolio de Evidencias Unidad 5 Micro

Tecnológico Nacional de MéxicoInstituto Tecnológico de Pabellón de Arteaga

Maco Alejandro Velázquez Romero Ingeniería en Mecatrónica

Unidad de aprendizaje: Puertos y Entradas de Salida Número: V

Práctica: Display Número: 4

Propósito de la práctica: Desarrollar un circuito contador de 0 – 9 usando un display de 7 segmentos.

Escenario: Laboratorio De Electrónica Duración: 1 hrs

Materiales, herramientas, instrumental, maquinaria y equipo Arduino Uno Display 7 Segmentos Resistencia 220 Ohms IDE Arduino Protoboard

Desempeños

Ahora en la practica 4, utilizaremos un componente nuevo, que es el display de 7 segmentos, el cual está compuesto de siete segmentos o Led´s que se pueden encender o apagar individualmente. Cada segmento tiene la forma de una pequeña línea.En esta práctica utilizaremos el puerto D, que consta de los puertos o salidas digitales 0, 1, 2, 3, 4, 5, 6 y 7, pero en esta ocasión nada más utilizaremos los puertos del 0 hasta el 6, uno para cada Led o segmento del display.La utilización del puerto D, nos ayudara mucho en la elaboración de esta práctica, ya que no es necesario programar de puerto por puerto, sino simplemente asignar con el código hexadecimal el número que queremos que muestre el display, para ello usaremos la siguiente tabla.

Page 12: Portafolio de Evidencias Unidad 5 Micro

Tecnológico Nacional de MéxicoInstituto Tecnológico de Pabellón de Arteaga

Maco Alejandro Velázquez Romero Ingeniería en Mecatrónica

Estructura del Programaint t=500;void setup(){DDRD=B11111111;}void loop(){PORTD=0x40;delay(t);PORTD=0x79;delay(t);PORTD=0x24;delay(t);PORTD=0x30;delay(t);PORTD=0x19;delay(t);PORTD=0x12;delay(t);PORTD=0x02;delay(t);PORTD=0x78;delay(t);PORTD=0x00;delay(t);PORTD=0x18;delay(t);}

Despues de haber creado el codigo en el IDE, gracias a la ayuda de DDRD = puerto D = 0, 1, 2, 3, 4, 5, 6, y 7, y la tabla de los valores hexadecimales, se procedio a la simulacion en Proteus.

Page 13: Portafolio de Evidencias Unidad 5 Micro

Tecnológico Nacional de MéxicoInstituto Tecnológico de Pabellón de Arteaga

Maco Alejandro Velázquez Romero Ingeniería en Mecatrónica

Conclusión

Lo que se aprendio con esta practica, es el funcionamiento del display de 7 segmentos, el uso del puerto DDRD su correspondiente tabla para los numeros que queramos mostrar en el display, fue un poco tediosa, pero de gran valor.

Page 14: Portafolio de Evidencias Unidad 5 Micro

Tecnológico Nacional de MéxicoInstituto Tecnológico de Pabellón de Arteaga

Maco Alejandro Velázquez Romero Ingeniería en Mecatrónica

Unidad de aprendizaje: Puertos y Entradas de Salida Número: V

Práctica: Decodificador Número: 5

Propósito de la práctica: Desarrollar un circuito contador de 0 – 9 usando un display de 7 segmentos y un decodificador.

Escenario: Laboratorio De Electrónica Duración: 1 hrs

Materiales, herramientas, instrumental, maquinaria y equipo Arduino Uno Display de 7 Segmento Decodificador BCD IDE Arduino Protoboard

Desempeños

En esta práctica, se mejorará la anterior mediante el uso de un compnente adicional, un decodificador BCD, además de que ahora solo se utilizaran 4 puertos, que son los necesarios o con los cuales trabaja el decodificador del display.

Estructura del Programavoid setup() { DDRD =B00001111; //NIBLE BAJO SALIDA}void loop() { for(int i=0;i<=9; i++) { PORTD=i; delay(300); }/*int t=500;PORTD=0;delay(t);PORTD=1;delay(t);PORTD=2;delay(t);PORTD=3;delay(t);PORTD=4;delay(t);PORTD=5;delay(t);PORTD=6;delay(t);PORTD=7;delay(t);PORTD=8;delay(t);PORTD=9;delay(t);*/}

Page 15: Portafolio de Evidencias Unidad 5 Micro

Tecnológico Nacional de MéxicoInstituto Tecnológico de Pabellón de Arteaga

Maco Alejandro Velázquez Romero Ingeniería en Mecatrónica

En la elaboración del código del programa, no fue necesaria la tabla de los valores hexadecimales para que se muestren los números deseados, ahora nada más le indicamos al puerto D – DDRD cual número se desea mostrar en el display y en decodificador se encargara de ello.

Conclusión

Al realizar esta práctica, se aprendió que en todas las cosas siempre se puede utilizar una alternativa, en este caso, el uso del decodificador BCD, nos ahorró la elaboración de la tabla que se utilizó en la práctica anterior, además del código es más sencillo, pero la desventaja es que es un componente adicional, y hay que hacer mas conexiones.

Page 16: Portafolio de Evidencias Unidad 5 Micro

Tecnológico Nacional de MéxicoInstituto Tecnológico de Pabellón de Arteaga

Maco Alejandro Velázquez Romero Ingeniería en Mecatrónica

Unidad de aprendizaje: Puertos y Entradas de Salida Número: V

Práctica: Contador de 0 a 99 Número: 6

Propósito de la práctica: Construir y programar un circuito que realice un conteo de 0 a 99 usando los decodificadores 7447 y dos display de 7 segmentos

Escenario: Laboratorio De Electrónica Duración: 1 hrs

Materiales, herramientas, instrumental, maquinaria y equipo Arduino Uno 2 Display´s de 7 Segmentos 2 Decodificadores BCD 7447 IDE Arduino Protoboard

Desempeños

Ahora para volvernos prácticamente expertos en el uso del display, se realizara una práctica en donde se realice un simple conteo de 0 hasta 99, algo tan fácil.Para esto es necesario designar a un display con su correspondiente decodificador como las unidades, y otro el otro como las decenas.También se deberá tener en mente, que mientras el display de las unidades cambie de nuevamente a 0, el display de las decenas avanzara su conteo.

Estructura del Programavoid setup(){ DDRD=B11111111; //0XFF DDRB=B11111111; //0XFF}void loop(){ int x,y;for(x=0; x<=9; x++){PORTB=x;for(y=0; y<=9; y++){PORTD=y;delay(100);}}}

Como se explicó en el principio, las decenas aumentaran hasta que las unidades den una vuelta, para esto es necesario anidar dos ciclos for, el ciclo que se encuentre adentro es el encargado de las unidades, y el ciclo que este afuera, será el correspondiente de las decenas.

Page 17: Portafolio de Evidencias Unidad 5 Micro

Tecnológico Nacional de MéxicoInstituto Tecnológico de Pabellón de Arteaga

Maco Alejandro Velázquez Romero Ingeniería en Mecatrónica

Dos display con sus debidos decodificadores, uno para las unidades y el otro para las decenas.

Conclusión

En esta práctica se aprendió a sintetizar todavía mucho más el código del programa, ya que con el uso del ciclo for, se hizo un conteo para cada uno de los display, y mediante el uso de los puertos DDRD y DDRB y los decodificares se logró minimizar lo más posible el código, ahora tenemos una opción más para programar, además de nuevos conocimientos.

Page 18: Portafolio de Evidencias Unidad 5 Micro

Tecnológico Nacional de MéxicoInstituto Tecnológico de Pabellón de Arteaga

Maco Alejandro Velázquez Romero Ingeniería en Mecatrónica

Unidad de aprendizaje: Puertos y Entradas de Salida Número: V

Práctica: Entradas Digitales Número: 7

Propósito de la práctica: Configurar las dos entradas digitales, para que dependiendo de su estado, HIGH o LOW, activen el tiempo del conteo de 0 a 9.

Escenario: Laboratorio De Electrónica Duración: 1 hrs

Materiales, herramientas, instrumental, maquinaria y equipo Arduino Uno Resistencia 100 Ohms IDE Arduino Protoboard

Desempeños

En esta práctica se realizara conteos diferentes de tiempo, dependiendo del estado lógico de las entradas digitales que se van a programar.

Estructura del Programa

void setup() {pinMode(8, INPUT); //ENTRADA DIGITALpinMode(9, INPUT); //ENTRADA DIGITALDDRD=0XFF; //PUERTO D, SALIDA DIGITAL}void loop() {

int t; //VARIABLE DE TIEMPOint A,B;A=digitalRead(8);B=digitalRead(9);

if(A==0 && B==0)t=50;

if(A==0 && B==1)t=500;

if(A==1 && B==0)t=1000;

if(A==1 && B==1)t=3000;

Page 19: Portafolio de Evidencias Unidad 5 Micro

Tecnológico Nacional de MéxicoInstituto Tecnológico de Pabellón de Arteaga

Maco Alejandro Velázquez Romero Ingeniería en Mecatrónica

PORTD=0x40;delay(t);PORTD=0x79;delay(t);PORTD=0x24;delay(t);PORTD=0x30;delay(t);PORTD=0x19;delay(t);PORTD=0x12;delay(t);PORTD=0x02;delay(t);PORTD=0x78;delay(t);PORTD=0x00;delay(t);PORTD=0x18;delay(t);

}

Estado Lógico Imagen

if(A==0 && B==0)t=50;

Page 20: Portafolio de Evidencias Unidad 5 Micro

Tecnológico Nacional de MéxicoInstituto Tecnológico de Pabellón de Arteaga

Maco Alejandro Velázquez Romero Ingeniería en Mecatrónica

if(A==0 && B==1)t=500;

if(A==1 && B==0)t=1000;

if(A==1 && B==1)t=3000;

Conclusión

Dependiendo del estado lógico que se encuentren la suma de estas dos entradas digitales, designara el tiempo del conteo del display, esto fue un un poco complicado, pero ahora es fácil, ya que se ha adquirido bastante experiencia:

Page 21: Portafolio de Evidencias Unidad 5 Micro

Tecnológico Nacional de MéxicoInstituto Tecnológico de Pabellón de Arteaga

Maco Alejandro Velázquez Romero Ingeniería en Mecatrónica