PORTÓN AUTOMÁTICO (ARDUINO)

Portón automático

El mecanismo para el primer control remoto de puertas de garaje era iguales a una tecnología usada para detonar bombas. En aquel entonces, las puertas de garaje fueron operados utilizando transmisores y Transmisores receptores que envían señales que se desplazará la puerta hacia arriba o hacia abajo dependiendo de sus posiciones. A través de los años, las puertas de garaje y sus sistemas para abrirlas automáticamente han evolucionado para incluir encendido automático, la tecnología de bloqueo a distancia, control remoto llavero, y conexión inalámbrica a teclados, a esto sumémosle la tecnología de sensores.

Nuestro Proyecto de domótica será  un sistema que nos brinde comodidad al momento de guardar un carro  en el garaje de una casa adaptado a la puerta que nos permita abrirla sin la necesidad de bajar del vehículo es importante invertir en un sistema domotico que nos permita abrir la puerta del garaje porque así no tendríamos que salir del carro para abrir la puerta, de esta manera estamos protegidos de las inclemencias meteorológicas, por lo tanto también estamos a salvo de cualquier persona que quiera hacernos daño o robar nuestros vehículo mientras abrimos  la puerta.

EL sistema estará constituido por dos sensor infrarrojo IR de proximidad que nos permitirá, detectar la presencia del vehículo a cierta distancia del garaje, a través de las señales recibidas se activara un servo motor que nos brindara la movilidad de la puerta para que se habrá automáticamente este será nuestro actuador, además de los componentes adicionales como la faja de la puerta hacia al motor. Todo esto estará en controlado por una placa de arduino con un atmega 328p.


El área de gestión en el que se basara nuestro proyecto será el Gestión de confort ya que brindara la facilidad de guardar el vehículo sin la necesidad de bajar del mismo y como anteriormente lo describíamos no estaremos expuestos a riesgos ya sea del clima o de personas mal intencionadas.


Componentes del sistema


No existe ningún sistema de domótica que sea el mejor para todas las situaciones, desde todos los aspectos. Cada uno se los sistemas de domótica tienen sus ventajas e inconvenientes, sin embargo, hoy en día  hay una gran oferta en el mercado y para cada situación hay uno o varios sistemas que se adaptarán a la mayoría de los criterios que se puede exigir de un sistema de domótica.

Para la realización de nuestro sistema de domótica para una vivienda o más bien para el garaje es preciso tener en cuenta los siguientes aspectos o componentes del sistema.

Tipos de señales: Serán las magnitudes del medio físico, que le servirán a nuestro sistema domótico como  entradas que  le permitirá saber la presencia del vehículo estacionado a cierta distancia de la puerta a través de un Sensor IR de proximidad. Que nos dará señales discretas. 

Sensor: Utilizaremos un Sensor Activo que a la vez es digital  este será un Sensor Interruptor IR(Sensor de proximidad)que es un componente electrónico que convertirá la señal del medio físico a una señal electrónica.

Acondicionamiento de Señal: El acondicionamiento de señal, ya lo incluye el sensor que utilizaremos en nuestro sistema domótico por lo cual no nos veremos en la necesidad de construir caso contrario si dicho sensor no lo trajera, ya que este nos servirá de enlace entre la salida del sensor y la entrada de nuestro controlador.

Actuador. Este será el encargado de realizar la acción de levantar o mover la puerta del garaje, Utilizaremos un servomotor que es un dispositivo similar a un motor de corriente continua que tiene la capacidad de ubicarse en cualquier posición dentro de su rango de operación, y mantenerse estable en dicha posición, con la ventaja que consta con la capacidad de ser controlado, tanto en velocidad como en posición

Infraestructura: la infraestructura de nuestro sistema domótico estará gobernada por  la infraestructura centralizada y cableada de los componentes a nuestro controlador.

Unidad de control: para esto Utilizaremos una placa arduino,  que es una plataforma de hardware libre, basada en una placa con un microcontrolador y un entorno de desarrollo, diseñada para facilitar el uso de la electrónica en proyectos multidisciplinares, se programa mediante el lenguaje de programación Arduino (basasdo en Wiring) y el entorno de desarrollo Arduino (basado en Processing). O lenguaje C.

Software de Control: Este es conocido también como el firmware de nuestro sistema domótico que será las instrucciones dadas al arduino para realizar la tarea que deseamos que nuestro sistema domótico desarrolle.


ESQUEMA DE BLOQUE



ESQUEMA DIGITAL



Componentes a Utilizar
1- Arduino Uno
2- Sensores Interruptor IR( sensor de proximidad)
1- Servo Motor
1- Botón o pulsador.
1- eje (lo puede obtener de una impresora vieja)
1- cincha o faja (de la impresora vieja)
2- engranes (lo puede obtener de una impresora vieja)


Proceso de construcción de la maqueta
La Maqueta de la casa queda a creatividad de cada quien bueno de los que desean hacer este proyecto continuación describimos como formamos nuestra maqueta.
Sensores, cables el eje y el arduino que ocuparemos

La base de nuestro porto esta hecho de dos pedazos de madera con un ranura en medio para que el portón no se desvié y tenga la facilidad de ser corredizo
Para que el porto suba lo haremos como una especie de portón cortina para enrollarlo formaremos un cilindro con cartón piedra, el cual fijaremos al eje con los engranes
Al servo de igual manera le anclaremos un engrane, ya teniéndolos en el lugar colocaremos la cincha o faja, para hacer girar simultáneamente los engranes

Construiremos la fachada de la casa donde estará el portón  la cual esta construida de cartón espuma


colocaremos un trozo de cartón de una caja cualquiera, le quitaremos el papel de encima para dejar solo el relieve que utilizaremos como techo y unos arbolitos plásticos como decoración



colocamos el techo y listo

colocamos los sensores que detectaran la presenscia


Luego el arduino en su lugar lo conectamos



Y listo solo cargamos la instrucciones al Arduino


Continuación dejamos las instrucciones y un vídeo para mostrar el funcionamiento.


PROGRAMA O FIRMWARE


// Programa para control de Porton Automatico
//Por: Wilfredo Rosales
//Universidad Tecnologica de El Salvador

#include <Servo.h>
Servo mi_servo;// miservo pa8ra controlar el servomotor
int  but = 8; //pin para el pulsador
int Angulo = 0;// Vriable para el valor inicial del servo
int servo = 9;// variable para leer el valor del pin pwm
//Sensores IR Interructor de Proximidad
int A = 7; 
int B = 4;
//variables para guardar el valor leido por el sensor y el pulsador
int sensorA;
int sensorB; 
int butState;         


void setup()

  mi_servo.attach (9); (mi_servo); // asocia el servo en pin 9 al objeto servo
  pinMode(A,INPUT); 
  pinMode(B,INPUT); 
 pinMode(but, INPUT);  
 digitalWrite(servo,LOW);

  
}

void loop()
{
sensorA=digitalRead(A);//lectura del sensor A
sensorB=digitalRead(B); //lectura del sensor B
mi_servo.write(Angulo);//posicion 0
butState = digitalRead(but);//lectura del pulsador

    if (butState == HIGH) { //si el pulsador esta en alto
  mi_servo.write(Angulo); delay(100); mi_servo.write(5); delay(100);
  mi_servo.write(10); delay(100); mi_servo.write(15); delay(100);
  mi_servo.write(20); delay(100); mi_servo.write(25); delay(100);
  mi_servo.write(30); delay(100); mi_servo.write(35); delay(100);
  mi_servo.write(40); delay(100); mi_servo.write(45); delay(100);
  mi_servo.write(50); delay(100); mi_servo.write(55); delay(100);
  mi_servo.write(60); delay(100); mi_servo.write(65); delay(100);
  mi_servo.write(70); delay(100); mi_servo.write(75); delay(100);
  mi_servo.write(80); delay(100); mi_servo.write(85); delay(100);
  mi_servo.write(90); delay(100); mi_servo.write(95); delay(100);
  mi_servo.write(100); delay(100); mi_servo.write(105); delay(100);
  mi_servo.write(110); delay(100); mi_servo.write(115); delay(100);
  mi_servo.write(120); delay(100); mi_servo.write(125); delay(100);
  mi_servo.write(130); delay(100); mi_servo.write(135); delay(100);
  mi_servo.write(140); delay(100); mi_servo.write(145); delay(100);
  mi_servo.write(150); delay(100); mi_servo.write(155); delay(100);
  mi_servo.write(160); delay(100); mi_servo.write(165); delay(100);
  mi_servo.write(170); delay(100); mi_servo.write(175); delay(100);
  mi_servo.write(180); delay(3000);

  mi_servo.write(180); delay(100);
  mi_servo.write(175); delay(100); mi_servo.write(170); delay(100);
  mi_servo.write(165); delay(100); mi_servo.write(160); delay(100);
  mi_servo.write(155); delay(100); mi_servo.write(150); delay(100);
  mi_servo.write(145); delay(100); mi_servo.write(140); delay(100);
  mi_servo.write(135); delay(100); mi_servo.write(130); delay(100);
  mi_servo.write(130); delay(100); mi_servo.write(125); delay(100);
  mi_servo.write(120); delay(100); mi_servo.write(115); delay(100);
  mi_servo.write(110); delay(100); mi_servo.write(105); delay(100);
  mi_servo.write(100); delay(100); mi_servo.write(95); delay(100);
  mi_servo.write(90); delay(100); mi_servo.write(85); delay(100);
  mi_servo.write(80); delay(100); mi_servo.write(75); delay(100);
  mi_servo.write(70); delay(100); mi_servo.write(65); delay(100);
  mi_servo.write(60); delay(100); mi_servo.write(55); delay(100);
  mi_servo.write(50); delay(100); mi_servo.write(45); delay(100);
  mi_servo.write(40); delay(100); mi_servo.write(35); delay(100);
  mi_servo.write(30); delay(100); mi_servo.write(25); delay(100);
  mi_servo.write(20); delay(100); mi_servo.write(15); delay(100);
  mi_servo.write(10); delay(100); mi_servo.write(5); delay(100);
  mi_servo.write(Angulo);delay(300);  
  }
  
 //si los sensores estan 0 el porto se abrira 
 if(sensorA==0 && sensorB==0){
  mi_servo.write(Angulo); delay(100); mi_servo.write(5); delay(100);
  mi_servo.write(10); delay(100); mi_servo.write(15); delay(100);
  mi_servo.write(20); delay(100); mi_servo.write(25); delay(100);
  mi_servo.write(30); delay(100); mi_servo.write(35); delay(100);
  mi_servo.write(40); delay(100); mi_servo.write(45); delay(100);
  mi_servo.write(50); delay(100); mi_servo.write(55); delay(100);
  mi_servo.write(60); delay(100); mi_servo.write(65); delay(100);
  mi_servo.write(70); delay(100); mi_servo.write(75); delay(100);
  mi_servo.write(80); delay(100); mi_servo.write(85); delay(100);
  mi_servo.write(90); delay(100); mi_servo.write(95); delay(100);
  mi_servo.write(100); delay(100); mi_servo.write(105); delay(100);
  mi_servo.write(110); delay(100); mi_servo.write(115); delay(100);
  mi_servo.write(120); delay(100); mi_servo.write(125); delay(100);
  mi_servo.write(130); delay(100); mi_servo.write(135); delay(100);
  mi_servo.write(140); delay(100); mi_servo.write(145); delay(100);
  mi_servo.write(150); delay(100); mi_servo.write(155); delay(100);
  mi_servo.write(160); delay(100); mi_servo.write(165); delay(100);
  mi_servo.write(170); delay(100); mi_servo.write(175); delay(100);
  mi_servo.write(180); delay(3000);
  
  mi_servo.write(180); delay(100);
  mi_servo.write(175); delay(100); mi_servo.write(170); delay(100);
  mi_servo.write(165); delay(100); mi_servo.write(160); delay(100);
  mi_servo.write(155); delay(100); mi_servo.write(150); delay(100);
  mi_servo.write(145); delay(100); mi_servo.write(140); delay(100);
  mi_servo.write(135); delay(100); mi_servo.write(130); delay(100);
  mi_servo.write(130); delay(100); mi_servo.write(125); delay(100);
  mi_servo.write(120); delay(100); mi_servo.write(115); delay(100);
  mi_servo.write(110); delay(100); mi_servo.write(105); delay(100);
  mi_servo.write(100); delay(100); mi_servo.write(95); delay(100);
  mi_servo.write(90); delay(100); mi_servo.write(85); delay(100);
  mi_servo.write(80); delay(100); mi_servo.write(75); delay(100);
  mi_servo.write(70); delay(100); mi_servo.write(65); delay(100);
  mi_servo.write(60); delay(100); mi_servo.write(55); delay(100);
  mi_servo.write(50); delay(100); mi_servo.write(45); delay(100);
  mi_servo.write(40); delay(100); mi_servo.write(35); delay(100);
  mi_servo.write(30); delay(100); mi_servo.write(25); delay(100);
  mi_servo.write(20); delay(100); mi_servo.write(15); delay(100);
  mi_servo.write(10); delay(100); mi_servo.write(5); delay(100);
  mi_servo.write(Angulo);delay(8000);
  
  }
  
   if(sensorA==0 && sensorB==1){
  mi_servo.write(Angulo); delay(100); mi_servo.write(5); delay(100);
  mi_servo.write(10); delay(100); mi_servo.write(15); delay(100);
  mi_servo.write(20); delay(100); mi_servo.write(25); delay(100);
  mi_servo.write(30); delay(100); mi_servo.write(35); delay(100);
  mi_servo.write(40); delay(100); mi_servo.write(45); delay(100);
  mi_servo.write(50); delay(100); mi_servo.write(55); delay(100);
  mi_servo.write(60); delay(100); mi_servo.write(65); delay(100);
  mi_servo.write(70); delay(100); mi_servo.write(75); delay(100);
  mi_servo.write(80); delay(100); mi_servo.write(85); delay(100);
  mi_servo.write(90); delay(100); mi_servo.write(95); delay(100);
  mi_servo.write(100); delay(100); mi_servo.write(105); delay(100);
  mi_servo.write(110); delay(100); mi_servo.write(115); delay(100);
  mi_servo.write(120); delay(100); mi_servo.write(125); delay(100);
  mi_servo.write(130); delay(100); mi_servo.write(135); delay(100);
  mi_servo.write(140); delay(100); mi_servo.write(145); delay(100);
  mi_servo.write(150); delay(100); mi_servo.write(155); delay(100);
  mi_servo.write(160); delay(100); mi_servo.write(165); delay(100);
  mi_servo.write(170); delay(100); mi_servo.write(175); delay(100);
  mi_servo.write(180); delay(3000);
   }
  
          
 }

//fin del Programa




Continuación dejamos un vídeo como referencia a lo antes dicho y funcionamiento del portón




38 comentarios:

  1. Buena la informacion pero donde puedo conseguir los sensores en Mexico

    ResponderEliminar
  2. utilizaste una bateria externa para el servo o la obtuviste del arduino?

    ResponderEliminar
  3. hola, disculpa podre utilizar arduino UNO con este mismo codigo?

    ResponderEliminar
  4. hola que tienes echo en la vaquelita?, el circuito de arriba es todo lo q se necesita?

    ResponderEliminar
  5. Qué pasó con el video?

    ResponderEliminar
  6. Este comentario ha sido eliminado por el autor.

    ResponderEliminar
  7. como copio o como descargo los codigos directamente de el blog a arduino 1.6.5 r2 ---------------- Help!!!!!...

    ResponderEliminar
  8. Muchas gracias por tan excelente demostración. La verdad que muy ingenioso. ¿Como podriamos introducir la seguridad en la apertura del portón?

    ResponderEliminar
  9. esta muy padre el proyecto pero creo, pero veo mucho problemas ya que esto quiere decir que cualquier carro no autorizado puede abrir la puerta o con el simple hecho de bloquear los sensores estos abrirán, necesitas hacer algun cambio a tarjetas id para mayor seguridad

    ResponderEliminar
  10. esta muy padre el proyecto pero creo, pero veo mucho problemas ya que esto quiere decir que cualquier carro no autorizado puede abrir la puerta o con el simple hecho de bloquear los sensores estos abrirán, necesitas hacer algun cambio a tarjetas id para mayor seguridad

    ResponderEliminar
  11. esta muy padre el proyecto pero creo, pero veo mucho problemas ya que esto quiere decir que cualquier carro no autorizado puede abrir la puerta o con el simple hecho de bloquear los sensores estos abrirán, necesitas hacer algun cambio a tarjetas id para mayor seguridad

    ResponderEliminar
  12. hola,
    En que pines se conectan los cables del modulo de sensor de proximidad?

    ResponderEliminar
  13. hola una pregunta si yo quisiera agregarle mas de 180 grados como deveria ponerle para que gire como unos 360 o mas me pueden como deveria ser

    ResponderEliminar
  14. Maravilloso, ayudo en la adquisicion de informacion para automatizar

    ResponderEliminar
  15. Maravilloso, ayudo en la adquisicion de informacion para automatizar

    ResponderEliminar
  16. Genial👍, eh kapo me podrias pasar la imagen de la plaqueta que esta abajo del arduino?

    ResponderEliminar
  17. Porfavor si me pueden mandar el esquema de las conexiones gracias

    ResponderEliminar
  18. Su esquema no esta muy entendible de las conexiones por favor si me lo pueden emviar gracias

    ResponderEliminar
  19. Su esquema no esta muy entendible de las conexiones por favor si me lo pueden emviar gracias

    ResponderEliminar
  20. Hola que tal, disculpa que modelo es el servo y cuanto mide el engrane

    ResponderEliminar
  21. Hay muchas faltas de ortografía y no consigo leerlo bien, podrías corregirlas. Así, se dudaría menos de sus estudios en informática.

    ResponderEliminar
  22. Respuestas
    1. Fijate en las fotos donde muestran el armado de la maqueta, en la antepenúltima, se ve el pulsador verde y hay un cartel q dice Universidad Tecnológica y dejajo dice Botón p abrir el portón desde dentro de la casa

      Eliminar
  23. me pueden pasar algun video similar del proyecto

    ResponderEliminar
  24. Hola me puedo contactar con el autor necesito ayuda para recrearlo al proyecto

    ResponderEliminar
  25. Y dale dale Matador
    a todas partes voy con vos
    hasta que muera,
    yo siempre te voy seguir
    dejando el alma en el tablon,
    ganes o pierdas.
    Volver a boedo esa es mi ilusion,
    quiero la vuelta quiero verte campeon.
    El sentimiento que hay en mi
    no te lo puedo explicar,
    es algo que se lleva adentro.
    A donde vayas matador
    contigo siempre voy a estar,
    con los colores de este amor.
    Vamos Ciclón, vamo a ganar
    y la Gloriosa va a festejar,
    con la azulgrana voy a morir
    sin el ciclon no se vivir

    ResponderEliminar
  26. tengo una pregunta sobre el porton automatico

    ResponderEliminar
  27. el video no esta disponible o te equivocaste de link??

    ResponderEliminar
  28. excelente, gracias por la info necesito ajustar unos detalles extras.

    ResponderEliminar
  29. Hola, me dejas aceder a tu video es para un proyecto escolar, por favor

    ResponderEliminar
  30. por favor me puede dejar ver el video para un proyecto escolar gracias o regalarme un correo para comunicarme con el autor del proyecto

    ResponderEliminar