Este documento describe dos proyectos de Arduino que deben construirse en parejas para la clase de Ingeniería Mecánica. El primer proyecto es un semáforo inteligente que cambia los tiempos de luz dependiendo de si hay peatones o autos presentes. El segundo proyecto es un parqueadero inteligente con una barrera controlada por servo motor y luces indicadoras para mostrar disponibilidad.
0 calificaciones0% encontró este documento útil (0 votos)
79 vistas7 páginas
Este documento describe dos proyectos de Arduino que deben construirse en parejas para la clase de Ingeniería Mecánica. El primer proyecto es un semáforo inteligente que cambia los tiempos de luz dependiendo de si hay peatones o autos presentes. El segundo proyecto es un parqueadero inteligente con una barrera controlada por servo motor y luces indicadoras para mostrar disponibilidad.
Este documento describe dos proyectos de Arduino que deben construirse en parejas para la clase de Ingeniería Mecánica. El primer proyecto es un semáforo inteligente que cambia los tiempos de luz dependiendo de si hay peatones o autos presentes. El segundo proyecto es un parqueadero inteligente con una barrera controlada por servo motor y luces indicadoras para mostrar disponibilidad.
Este documento describe dos proyectos de Arduino que deben construirse en parejas para la clase de Ingeniería Mecánica. El primer proyecto es un semáforo inteligente que cambia los tiempos de luz dependiendo de si hay peatones o autos presentes. El segundo proyecto es un parqueadero inteligente con una barrera controlada por servo motor y luces indicadoras para mostrar disponibilidad.
Descargue como PDF, TXT o lea en línea desde Scribd
Descargar como pdf o txt
Está en la página 1de 7
Universidad Politécnica Salesiana.
Ingeniería Mecánica. Nombre: Erick Chávez Nivel: 10mo “A” Fecha: 31 de mayo del 2018
Trabajo en Clase ARDUINO
Construir en parejas 2 aplicaciones de ARDUINO mediante la plataforma TINKERCAD. APLICACIÓN 1. Semáforo inteligente. 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. Código: // Práctica semáforo. const int LEDR =13; const int LEDA =12; const int LEDV =8; const int BOTON =7; int value; const int PIR = 4; int sen; void setup() { pinMode(LEDR,OUTPUT); pinMode(LEDA,OUTPUT); pinMode(LEDV,OUTPUT);// establecer que el pin digital es una señal de salida pinMode(BOTON,INPUT); pinMode(PIR,INPUT); } void loop() { int value= digitalRead(BOTON);//lee el botón int sen= digitalRead(PIR);//lee el sensor if (value==HIGH && sen==LOW) { // si el sensor no detecta nada y el botón está encendido digitalWrite(LEDA,HIGH);//realizar las siguientes ordenes delay(2000); digitalWrite(LEDA,LOW); digitalWrite(LEDV,LOW); digitalWrite(LEDR,HIGH); delay(15000); digitalWrite(LEDR,LOW); delay(15000); } if (value==LOW){ // si el botón está apagado realizar las ordenes normales digitalWrite(LEDR,HIGH); delay(15000); digitalWrite(LEDR,LOW); digitalWrite(LEDA,HIGH); delay(2000); digitalWrite(LEDA,LOW); digitalWrite(LEDV,HIGH); delay(15000); digitalWrite(LEDV,LOW); } if (value==HIGH && sen==HIGH){//si el botón y el sensor están activados realizar las siguientes ordenes digitalWrite(LEDR,LOW); delay(15000); digitalWrite(LEDR,HIGH); delay(15000); } } APLICACIÓN 2. Parqueadero inteligente 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. Código: #include <Servo.h> // incluyo la librería servo.h Servo miservo; // Definimos “miservo” para controlar un servomotor int pulsador = 12; // utilizo el pin 12 como botón de entrada de los vehículos int pulsadorA = 8;//este se utilizará como el sensor de los vehículos mientras este apagado la barrera no bajará cuando en vehículo pase y lo active la barrera bajará int pulsadorB = 2;//están tres pulsadores en paralelo si los tres están desactivados quiere decir que los vehículos están ocupando los tres lugares si una de ellas o los tres se activan se encenderá el foco de disponible int led = 7;
int pos = 0; // variable para almacenar la posición del servo
int ESTADOpulsador = 0; // variable para almacenar la lectura del estado del pulsador int ESTADOpulsadorA = 0; int ESTADOpulsadorB = 0; void setup() { miservo.attach(13); // Convierte el pin 13 en el controlador (driver) del servo denominado “miservo” pinMode(pulsador, INPUT); pinMode(pulsadorA, INPUT);//EN ESTE CASO este botón actuará como sensor de los vehículos pinMode(pulsadorB, INPUT); pinMode(led, OUTPUT); miservo.write(0); // Fija en el servo la posición 0 grados y hace que inicialmente la barrera esté baja } void loop() { ESTADOpulsador = digitalRead(pulsador); // leo el estado del botón del pulsador y lo guardo en la variable ESTADOpulsador ESTADOpulsadorA = digitalRead(pulsadorA); ESTADOpulsadorB = digitalRead(pulsadorB); if (ESTADOpulsadorB == HIGH) { digitalWrite(led,HIGH); } if (ESTADOpulsadorB == LOW) { digitalWrite(led,LOW); } if (ESTADOpulsador == HIGH) { // Si ESTADOpulsador está activo (HIGH) comienza a levantar la barrera for(pos = 0; pos < 90; pos += 1) // La variable “pos” se incrementa desde 0 a 90 grados { // en pasos de 1 grado miservo.write(pos); // indica al servo que vaya la posición almacenada en la variable “pos” delay(20); // espera 20ms hasta que el servo alcance la posición } } if (ESTADOpulsadorA == HIGH && ESTADOpulsador == LOW) { for(pos = 90; pos>=1; pos-=1) // comienza a bajar la barrera desde la posición 90 hasta 0 grados { miservo.write(pos); // indica al servo que vaya a la posición almacenada en la variable delay(20); // espera 20ms para que el servo alcance la posición } } }