NOMBRE: VICTOR HUGO APELLIDO:SANTOS NAVARRO
LABORATORIO Nro. 2
FECHA: P/06/04/2016
MATERIA: ETN 502 DISEÑO ELECTRÓNICO ASISTIDO POR COMPUTADORA UNIVERSIDAD AUTONOMA TOMAS FRIAS FACULTAD DE INGENIERIA TECNOLÓGICA CARRERA: ING. ELECTRÓNICA “
”
“
”
“
”
OBJETIVO.Familiarizarse con el entorno de programación del programa Proteus y Arduino Nightly para realizar circuitos básicos y complejos. HERRAMIENTAS Y NOMENCLATURA.Las herramientas a usar son: Software: Proteus 7 profesional Schematic capture Arduino Nightly
ARDUINO
Arduino es una compañía de hardware de hardware libre, la libre, la cual desarrolla placas desarrolla placas de desarrollo que integran un microcontrolador un microcontrolador y un entorno un entorno de desarrollo (IDE), diseñado para facilitar el uso de la electrónica en proyectos multidisciplinarios. El hardware El hardware consiste en una placa de circuito impreso con un microcontrolador, usualmente Atmel AVR, y AVR, y puertos digitales y analógicos deentrada/salida, de entrada/salida, los los cuales pueden conectarse a placas de expansión (shields) que expanden las características de funcionamiento de la placa arduino. Por otro lado, el software consiste en un entorno de desarrollo (IDE) basado (IDE) basado en el entorno de Processing de Processing y lenguaje de programación basado en Wiring, así como en el cargador el cargador de arranque (bootloader) que es ejecutado en la placa. El microcontrolador de la placa se programa a través de un computador, haciendo uso de comunicación serial mediante un convertidor de niveles RS-232 a TTL serial.
La primera placa Arduino fue introducida en el 2005, ofreciendo un bajo costo y facilidad de uso para novatos y profesionales buscando desarrollar proyectos interactivos con su entorno mediante actuadores y sensores. A partir de Octubre del año 2012, se incorporaron nuevos modelos de placas de desarrollo que hacen uso de microcontroladores CortexM3, ARM de 32 bits, que coexisten con los originales modelos que integran microcontroladores AVR de 8 bits. ARM y AVR no son plataformas compatibles a nivel binario, pero se pueden programar y compilar bajo el IDE clásico de Arduino sin ningún cambio. Arduino se puede utilizar para desarrollar objetos interactivos autónomos o puede ser conectado a software tal como Adobe Flash, Processing, Max/MSP, Pure Data. Una tendencia tecnológica es utilizar Arduino como tarjeta de adquisición de datos desarrollando interfaces en software como JAVA, Visual Basic y LabVIEW. Las placas se pueden montar a mano o adquirirse. El entorno de desarrollo integrado libre se puede descargar gratuitamente. El proyecto Arduino recibió una mención honorífica en la categoría de Comunidades Digitales en el Prix Ars Electrónica de 2006. EJERCICIO 1.Mediante el programa arduino realizamos un código con el objetivo de variar los leds de izquierda a derecha. Una vez teniendo el código en el CCS diseñamos el circuito en p roteus y grabamos el código en el arduino que escogemos en el proteus. Según el diseño podría ser de derecha a izquierda en este caso es de forma descendente. int led1=13; int led2=12; int led3=11; int led4=10; void setup() { pinMode(led1,OUTPUT); pinMode(led2,OUTPUT); pinMode(led3,OUTPUT); pinMode(led4,OUTPUT); } void loop() { digitalWrite(13, HIGH); delay(200); digitalWrite(13, LOW); delay(200); digitalWrite(12, HIGH); delay(200); digitalWrite(12, LOW); delay(200); digitalWrite(11, HIGH); delay(200); digitalWrite(11, LOW); delay(200); digitalWrite(10, HIGH); delay(200); digitalWrite(10, LOW); delay(200); }
Circuito diseñado en Proteus 7.
EJERCICIO 2.De la misma forma que en el anterior ejercicio hacemos un código pero esta vez será de izquierda a derecha, o de forma ascendente. int led1=13; int led2=12; int led3=11; int led4=10; void setup() { pinMode(led1,OUTPUT); pinMode(led2,OUTPUT); pinMode(led3,OUTPUT); pinMode(led4,OUTPUT); } void loop() { digitalWrite(10, HIGH); delay(200); digitalWrite(10, LOW); delay(200); digitalWrite(11, HIGH); delay(200); digitalWrite(11, LOW); delay(200); digitalWrite(12, HIGH); delay(200); digitalWrite(12, LOW); delay(200); digitalWrite(13, HIGH);
delay(200); digitalWrite(13, LOW); delay(200); } Circuito diseñado en Proteus 7
EJERCICIO 3.En este caso realizamos un código el cual la secuencia de encendido y apagado de los leds debe ser de acuerdo al código BCD respectivamente. int led1=13; int led2=12; int led3=11; int led4=10; void setup() { pinMode(led1,OUTPUT); pinMode(led2,OUTPUT); pinMode(led3,OUTPUT); pinMode(led4,OUTPUT); } void loop() { digitalWrite(13, LOW); digitalWrite(12, LOW); digitalWrite(11, LOW); digitalWrite(10, LOW); delay(200); digitalWrite(13, LOW); digitalWrite(12, LOW); digitalWrite(11, LOW); digitalWrite(10, HIGH); delay(200); digitalWrite(13, LOW);
digitalWrite(12, LOW); digitalWrite(11, HIGH); digitalWrite(10, LOW); delay(200); digitalWrite(13, LOW); digitalWrite(12, LOW); digitalWrite(11, HIGH); digitalWrite(10, HIGH); delay(200); digitalWrite(13, LOW); digitalWrite(12, HIGH); digitalWrite(11, LOW); digitalWrite(10, LOW); delay(200); digitalWrite(13, LOW); digitalWrite(12, HIGH); digitalWrite(11, LOW); digitalWrite(10, HIGH); delay(200); digitalWrite(13, LOW); digitalWrite(12, HIGH); digitalWrite(11, HIGH); digitalWrite(10, LOW); delay(200); digitalWrite(13, LOW); digitalWrite(12, HIGH); digitalWrite(11, HIGH); digitalWrite(10, HIGH); delay(200); digitalWrite(13, HIGH); digitalWrite(12, LOW); digitalWrite(11, LOW); digitalWrite(10, LOW); delay(200); digitalWrite(13, HIGH); digitalWrite(12, LOW); digitalWrite(11, LOW); digitalWrite(10, HIGH); delay(200); digitalWrite(13, HIGH); digitalWrite(12, LOW); digitalWrite(11, HIGH); digitalWrite(10, LOW); delay(200); digitalWrite(13, HIGH); digitalWrite(12, LOW); digitalWrite(11, HIGH); digitalWrite(10, HIGH);
delay(200); digitalWrite(13, HIGH); digitalWrite(12, HIGH); digitalWrite(11, LOW); digitalWrite(10, LOW); delay(200); digitalWrite(13, HIGH); digitalWrite(12, HIGH); digitalWrite(11, LOW); digitalWrite(10, HIGH); delay(200); digitalWrite(13, HIGH); digitalWrite(12, HIGH); digitalWrite(11, HIGH); digitalWrite(10, LOW); delay(200); digitalWrite(13, HIGH); digitalWrite(12, HIGH); digitalWrite(11, HIGH); digitalWrite(10, HIGH); delay(200); } Diseño del circuito en proteus 7
EJERCICIO 4.Diseñamos un código en arduino para que la secuencia de encendido y apagado de los diodo led debe ser cruzado, empezando del primer led y del ultimo led y asi hasta llegar al punto medio medio para que la secuencia de encendido se cruce.
int led1=13; int led2=12; int led3=11; int led4=10; int led5=9; int led6=8; void setup() { pinMode(led1,OUTPUT); pinMode(led2,OUTPUT); pinMode(led3,OUTPUT); pinMode(led4,OUTPUT); pinMode(led5,OUTPUT); pinMode(led6,OUTPUT); } void loop() { digitalWrite(13, HIGH); delay(200); digitalWrite(13, LOW); delay(200); digitalWrite(12, HIGH); delay(200); digitalWrite(12, LOW); delay(200); digitalWrite(11, HIGH); delay(200); digitalWrite(11, LOW); delay(200); digitalWrite(10, HIGH); delay(200); digitalWrite(10, LOW); delay(200); digitalWrite(9, HIGH); delay(200); digitalWrite(9, LOW); delay(200); digitalWrite(8, HIGH); delay(200); digitalWrite(8, LOW); delay(200); digitalWrite(9, HIGH); delay(200); digitalWrite(9, LOW); delay(200); digitalWrite(10, HIGH); delay(200); digitalWrite(10, LOW); delay(200); digitalWrite(11, HIGH);
delay(200); digitalWrite(11, LOW); delay(200); digitalWrite(12, HIGH); delay(200); digitalWrite(12, LOW); delay(200); } Diseño del circuito en proteus 7
Ejercicio 5.Realizamos un código en que la secuencia de encendido y apagado de los leds debe ser la combinación de los ejercicios 1, 2 y 4. int led1=13; int led2=12; int led3=11; int led4=10; int led5=9; int led6=8; void setup() { pinMode(led1,OUTPUT); pinMode(led2,OUTPUT);
pinMode(led3,OUTPUT); pinMode(led4,OUTPUT); pinMode(led5,OUTPUT); pinMode(led6,OUTPUT); } void loop() { digitalWrite(13, HIGH); delay(200); digitalWrite(13, LOW); delay(200); digitalWrite(12, HIGH); delay(200); digitalWrite(12, LOW); delay(200); digitalWrite(11, HIGH); delay(200); digitalWrite(11, LOW); delay(200); digitalWrite(10, HIGH); delay(200); digitalWrite(10, LOW); delay(200); digitalWrite(11, HIGH); delay(200); digitalWrite(11, LOW); delay(200); digitalWrite(12, HIGH); delay(200); digitalWrite(12, LOW); delay(200); digitalWrite(13, HIGH); delay(200); digitalWrite(13, LOW); delay(200); digitalWrite(12, HIGH); delay(200); digitalWrite(12, LOW); delay(200); digitalWrite(11, HIGH); delay(200); digitalWrite(11, LOW); delay(200); digitalWrite(10, HIGH); delay(200); digitalWrite(10, LOW); delay(200); digitalWrite(9, HIGH); delay(200);
digitalWrite(9, LOW); delay(200); digitalWrite(8, HIGH); delay(200); digitalWrite(8, LOW); delay(200); digitalWrite(9, HIGH); delay(200); digitalWrite(9, LOW); delay(200); digitalWrite(10, HIGH); delay(200); digitalWrite(10, LOW); delay(200); digitalWrite(11, HIGH); delay(200); digitalWrite(11, LOW); delay(200); digitalWrite(12, HIGH); delay(200); digitalWrite(12, LOW); delay(200); } Diseño del circuito en proteus 7
CONCLUSIONES.El diseño en ARDUINO no es tan diferente que CCOMPILER puesto que no se contaba con un arduino se simulo en proteus cargándose previamente la librería del arduino, obteniendo un mismo resultado al laboratorio anterior, al usar el ARDUINO NIGHTLY se debe tener en cuenta los espacios ya que a veces puede causar errores inesperados lo que nos da problemas al momento de compilar el programa y cargar el código en el proteus, también que se tiene que cargar el código en el proteus porque cada vez que se cierra este se borra y debe cargarse nuevamente.
DIAGRAMAS DE FLUJO EJERCICIO 1.INICIO pinMode (LED1, OUTPUT) pinMode (LED2, OUTPUT) pinMode (LED3, OUTPUT) pinMode (LED4, OUTPUT) PRENDER LED 1 RETARDO PRENDER LED 2 APAGAR LED 1 RETARDO PRENDER LED 3 APAGAR LED 2 RETARDO PRENDER LED 4 APAGAR LED 3 RETARDO FIN
EJERCICIO 2.INICIO pinMode (LED4, OUTPUT) pinMode (LED3, OUTPUT) pinMode (LED2, OUTPUT) pinMode (LED1, OUTPUT) PRENDER LED 4 RETARDO PRENDER LED 3 APAGAR LED 4 RETARDO PRENDER LED 2 APAGAR LED 3 RETARDO PRENDER LED 1 APAGAR LED 2 RETARDO FIN
Ejercicio 3.Inicio
int LED 1=13 int LED 2=12 int LED 3=10 int LED 4=11 pinMode(LED13, OUTPUT) pinMode(LED 12, OUTPUT) pinMode(LED 11, OUTPUT) pinMode(LED 10, OUTPUT)
LED 1 APAGADO LED 2 APAGADO LED 3 APAGADO LED 4 APAGADO
LED 1 APAGADO LED 2 APAGADO LED 3 APAGADO LED 4 ENCENDIDO
LED 1 APAGADO LED 2 APAGADO LED 3 ENCENDIDO LED 4 APAGADO
LED 1 APAGADO LED 2 APAGADO LED 3 ENCENDIDO LED 4 ENCENDIDO
LED 1 APAGADO LED 2 ENCENDIDO LED 3 APAGADO LED 4 APAGADO
LED 1 APAGADO LED 2 ENCENDIDO LED 3 APAGADO LED 4 ENCENDIDO
LED 1 ENCENDIDO LED 2 APAGADO LED 3 APAGADO LED 4 APAGADO
LED 1 ENCENDIDO LED 2 APAGADO LED 3 APAGADO LED 4 ENCENDIDO
LED 1 ENCENDIDO LED 2 APAGADO LED 3 ENCENDIDO LED 4 APAGADO
LED 1 ENCENDIDO LED 2 APAGADO LED 3 ENCENDIDO LED 4 ENCENDIDO
LED 1 ENCENDIDO LED 2 ENCENDIDO LED 3 APAGADO LED 4 APAGADO
LED 1 ENCENDIDO LED 2 ENCENDIDO LED 3 APAGADO LED 4 ENCENDIDO
LED 1 ENCENDIDO LED 2 ENCENDIDO LED 3 ENCENDIDO LED 4 APAGADO
LED 1 ENCENDIDO LED 2 ENCENDIDO LED 3 ENCENDIDO LED 4 ENCENDIDO
FIN LED 1 APAGADO LED 2 ENCENDIDO LED 3 ENCENDIDO LED 4 APAGADO
EJERCICIO 4.-
Inicio
int LED 1=13 int LED 2=12 int LED 3=11 int LED 4=10 int LED 5=9 int LED 6=8
pinMode(LED13, OUTPUT) pinMode(LED 12, OUTPUT) pinMode(LED 11, OUTPUT) pinMode(LED 10, OUTPUT) pinMode(LED 9, OUTPUT) pinMode(LED 8, OUTPUT)
Enciende LED 13 retardo
Enciende LED 12 retardo
Enciende LED 11 retardo
Enciende LED 10 retardo
Enciende LED 9 retardo
Enciende LED 8 retardo
fin