13-12-2017
Practica con Arduino Simulación con Tinkercad
Alexander Aguirre, Diego Pineda AUTOMATISMOS II
Contenido Introducción ...................................................................................................................... 2 Resumen ....................................................................................................................... 2 Abstract ......................................................................................................................... 2 Objetivo General........................................................................................................... 2 Objetivos Específicos ................................................................................................... 2 Metodología de la investigación . .................................................................................. 3 Desarrollo ......................................................................................................................... 3 Practica 01: Semáforo inteligente ................................................................................. 3 Descripción ............................................................................................................... 3 Modelo del circuito. .................................................................................................. 3 Código de programación: ......................................................................................... 4 Listado de componentes ........................................................................................... 7 Practica 02: Parqueadero inteligente ............................................................................ 8 Descripción ............................................................................................................... 8 Modelo del circuito de la valla de ingreso vehicular ................................................ 8 Código de programación: ......................................................................................... 8 Listado de componentes ........................................................................................... 9 Modelo del circuito de la valla de ingreso vehicular .............................................. 10 Código de programación: ....................................................................................... 10 Listado de componentes ......................................................................................... 11 Conclusiones e implicaciones. ........................................................................................ 11
Introducción Resumen Para practicar aplicaciones electrónicas se maneja una placa basada en un microcontrolador, concretamente un ATMEL que es un Arduino, con la primordial función de ser una plataforma de prototipos electrónica de código abierto (open-source) establecida en hardware y software flexibles y fáciles de usar. El microcontrolador de la placa se programa utilizando el Arduino Programming Language (basado en Wiring) y el Arduino Development Environment (basado en Processing). El hardware consiste en una placa de circuito impreso con un microcontrolador, usualmente Atmel AVR, puertos digitales y analógicos de entrada/salida, los cuales pueden conectarse a placas de expansión (shields), que amplían los funcionamientos de la placa.
Abstract To practice electronic applications, a board based on a microcontroller is used, specifically an ATMEL that is an Arduino, with the primary function of being an opensource electronic prototype platform (open-source) established in flexible and easy-touse hardware and software. The microcontroller on the board is programmed using the Arduino Programming Language (based on Wiring) and the Arduino Development Environment (based on Processing). The hardware consists of a printed circuit board with a microcontroller, usually Atmel AVR, digital and analog input / output ports, which can be connected to expansion boards (shields), which expand the operation of the board.
Objetivo General Construir y simular los ejercicios planteados por el docente en el laboratorio a través del programa Tinkercad; enfocados en el uso de Arduino uno, se desarrollará aplicaciones como led intermitente, pulsador, secuencia básica de tres leds y construcción de un indicador led.
Objetivos Específicos •
Desarrollar la practica con Arduino de diversas aplicaciones incidentes.
•
Describir y analizar los componentes y variables en el desarrollo de la práctica.
•
Investigar la esquematización de programación con Arduino.
Metodología de la investigación La metodología que se utilizara en el ensayo es un estudio descriptivo; se justifica la aplicación de este estudio analítico al describir una serie de casos y análisis de prevalencia en varias muestras que se nos presentan para probar hipótesis específicas [1].
Desarrollo Practica 01: Semáforo inteligente Descripción El semáforo funciona normalmente hasta que el peatón presiona el botón para cruzar. Si al presionar el botón existen autos cruzando, el semáforo se pone en rojo luego de 30 segundos. Si al presionar el botón NO existen autos cruzando, el semáforo cambia a amarillo y a rojo inmediatamente. El semáforo funciona con tiempos y en el siguiente orden: Verde: 15 segundos Amarillo: 2 Segundos Rojo: 15 Segundos Los autos son detectados mediante sensor de presencia, escogido de acuerdo a disponibilidad. Modelo del circuito •
•
• • •
Código de programación: // Pines utilizados #define LEDVERDE1 2 #define LEDAMARILLO1 3 #define LEDROJO1 4 #define LEDVERDE2 5 #define LEDAMARILLO2 6 #define LEDROJO2 7 #define PULSADOR1 8 #define PULSADOR2 9 // Variables bool activo1 = true; // Indica si el semáforo 1 está activo, de lo contrario será el semáforo 2 int tiempoCambio = 3000; // Tiempo de espera entre transición de LEDs int tiempoEspera = 3000; // Tiempo de espera hasta comenzar transición void setup() { // Iniciamos el monitor serie Serial.begin(9600); // Modo entrada/salida de los pines pinMode(LEDVERDE1, OUTPUT); pinMode(LEDAMARILLO1, OUTPUT); pinMode(LEDROJO1, OUTPUT); pinMode(LEDVERDE2, OUTPUT); pinMode(LEDAMARILLO2, OUTPUT); pinMode(LEDROJO2, OUTPUT); pinMode(PULSADOR1, INPUT); pinMode(PULSADOR2, INPUT); // Apagamos todos los LEDs digitalWrite(LEDVERDE1, LOW);
digitalWrite(LEDAMARILLO1, LOW); digitalWrite(LEDROJO1, LOW); digitalWrite(LEDVERDE2, LOW); digitalWrite(LEDAMARILLO2, LOW); digitalWrite(LEDROJO2, LOW); // Estado inicial: semáforo 1 abierto, semáforo 2 cerrado digitalWrite(LEDVERDE1, HIGH); digitalWrite(LEDROJO2, HIGH); } void loop() { // Dependiendo del semáforo que tengamos activo if (activo1) { // Está encendido el semáforo 1, comprobamos el pulsador 2 int valor2 = digitalRead(PULSADOR2); // Si hay un coche esperando, pulsador pulsado if (valor2 == HIGH) { // Encender semáforo 2 ecenderSemaforo2(); // Semáforo 2 activo activo1 = false; } } else { // Está encendido el semáforo 1, comprobamos el pulsador 1 int valor1 = digitalRead(PULSADOR1); // Si hay un coche esperando, pulsador pulsado if (valor1 == HIGH) { // Encender semáforo 1 ecenderSemaforo1(); // Semáforo 1 activo activo1 = true; } } } void ecenderSemaforo2() { // Apagamos semáforo 1 // Esperamos delay(tiempoEspera);
// Pasamos a luz amarilla digitalWrite(LEDVERDE1, LOW); digitalWrite(LEDAMARILLO1, HIGH); // Esperamos delay(tiempoCambio); // Pasamos a luz roja digitalWrite(LEDAMARILLO1, LOW); digitalWrite(LEDROJO1, HIGH); // Encendemos semáforo 2 // Esperamos delay(tiempoCambio); // Pasamos a luz amarilla digitalWrite(LEDROJO2, LOW); digitalWrite(LEDVERDE2, HIGH); } void ecenderSemaforo1() { // Apagamos semáforo 2 // Esperamos delay(tiempoEspera); // Pasamos a luz amarilla digitalWrite(LEDVERDE2, LOW); digitalWrite(LEDAMARILLO2, HIGH); // Esperamos delay(tiempoCambio); // Pasamos a luz roja digitalWrite(LEDAMARILLO2, LOW); digitalWrite(LEDROJO2, HIGH); // Encendemos semáforo 1 // Esperamos delay(tiempoCambio); // Pasamos a luz amarilla digitalWrite(LEDROJO1, LOW); digitalWrite(LEDVERDE1, HIGH); }
Listado de componentes En la práctica elaborada se utilizaron los componentes electrónicos descritos en la tabla 01. Tabla 01. Componentes utilizados Nombre Cantidad Componente U1
1
Arduino Uno R3
DLEDROJO1 DLEDROJO2
2
Red LED
2
Yellow LED
2
Green LED
6
220 ohm Resistor
2
Pushbutton
2
10 kohm Resistor
DLEDAMARILLO1 DLEDAMARILLO2 DLEDVERDE1 DLEDVERDE2 R2 R3 R4 R5 R6 R7 SPULSADOR2 SPULSADOR1 R8 R9
Practica 02: Parqueadero inteligente Descripción Al detectar un vehículo, el conductor presiona un pulsador y la barrera controlada mediante un servo motor se levanta hasta 90º. Una vez que el auto cruzó la barrera se coloca en posición inicial 0º. Para la salida es el mismo procedimiento. Dentro del parqueadero que encienden una luz verde, si está disponible. Existen 3 parqueaderos disponibles. Modelo del circuito de la valla de ingreso vehicular
Código de programación: #include Servo servomotor; int angulo = 0; //Variable para el ángulo, inicia en 0° int aumentar = 6; //Pin para el pulsador de aumentar el angulo
int disminuir = 5; //Pin para el pulsador de disminuir el angulo void setup() { servomotor.attach(7); //Pin PWM 6 del Arduino pinMode(disminuir, INPUT); pinMode(aumentar, INPUT); servomotor.write(angulo); //Posiciona el servo inicialmente en la mitad (90°) } void loop() { //Aumenta el angulo mientras se mantenga presionado if (digitalRead(aumentar) == LOW) { angulo++; if (angulo >= 90) { angulo = 90; //El angulo no aumenta mas alla de 180 grados } } //Disminuye el angulo mientras se mantenga presionado if (digitalRead(disminuir) == LOW) { angulo--; if (angulo <= 0) { angulo = 0; //El angulo no disminuye mas alla de 0 grados } } servomotor.write(angulo); //Manda el ángulo al servo dependiendo del pulsador presionado delay(10); } Listado de componentes En la práctica elaborada se utilizaron los componentes electrónicos descritos en la tabla 02. Tabla 02. Componentes utilizados Nombre Cantidad Componente Arduino Uno
U1
1
SERVOservomotor S1 S2 R1
1
Micro Servo
2
Pushbutton
R2
2
R3
18 kohm Resistor
Modelo del circuito de la valla de ingreso vehicular
Código de programación: void setup() { pinMode(13, OUTPUT); } void loop() { digitalWrite(13, HIGH); delay(1000); // Wait for 1000 millisecond(s)
digitalWrite(13, LOW); delay(1000); // Wait for 1000 millisecond(s) } Listado de componentes En la práctica elaborada se utilizaron los componentes electrónicos descritos en la tabla 03. Tabla 03. Componentes utilizados Nombre Cantidad Componente U1 D1 D2 D3 R1 R2 R3 S1 S2
1
Arduino Uno R3
3
Green LED
3
220 ohm Resistor
3
Slideswitch
S3
Conclusiones e implicaciones •
El Arduino Uno R3 utiliza el microcontrolador ATmega328 para el manejo de USB en lugar del 8U2 (o del FTDI encontrado en generaciones previas).
•
La tarjeta Arduino Uno R3 añade pins SDA y SCL cercanos al AREF, hay dos nuevos pines cerca del pin RESET. Uno es el IOREF y el otro pin no se encuentra conectado y está reservado para propósitos futuros.
•
El Arduino es una plataforma computacional física open-source basada en una simple tarjeta de I/O y un entorno de desarrollo que implementa el lenguaje Processing/Wiring.
•
Puede ser utilizado para desarrollar objetos interactivos o puede ser conectado a software de tu computadora (por ejemplo, Flash, Processing, MaxMSP).
Referencias Bibliográfica [1] J. F. I.U.T.A., «Blogspot,» Luoman, 2010. [En línea]. Available: http://metodologia02.blogspot.com/p/operacionalizacion-de-variables.html. [Último acceso: 03 Noviembre 2017].