Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Manufacturing Technology >> Tecnología Industrial

Sistema de control automático de puertas ferroviarias:circuito y código fuente

Circuito de controlador de puerta de ferrocarril automático de alta velocidad con Arduino y sensores ultrasónicos

En este tutorial, aprenderemos cómo diseñar un sistema de control de puerta de tren de alta velocidad automático simple y eficiente. Este es un enfoque relativamente simple para este proyecto, pero puede tomarlo como un bloque de construcción básico y, en modificaciones posteriores, también podemos rastrear la velocidad del tren con el que pasa y mucho más. Pero antes de pasar directamente al tutorial, debemos tener una idea de qué es la automatización y qué se puede esperar exactamente de ella.

Automatización básicamente significa idear un método para reducir o eliminar los esfuerzos/intervenciones humanas. En este tutorial vamos a explicar cómo automatizar una puerta de tren con Arduino usando un servomotor junto con el software Proteus.

La complejidad de la automatización puede variar desde un control básico de encendido/apagado hasta algoritmos multivariables altamente complejos. Los sistemas de control para fines de automatización pueden ser de bucle abierto o de bucle cerrado, lo que significa que puede funcionar con un solo parámetro de entrada o en respuesta a la salida alimentada como entrada, como en el caso de los sistemas de bucle cerrado. La automatización en la industria ferroviaria es una necesidad importante ya que estamos entrando en la era avanzada y para reducir el riesgo de accidentes debido a errores humanos es muy importante que dejemos que estas tareas sean manejadas por estas máquinas inteligentes.

Como en el caso de toda tecnología, la automatización también tiene sus pros y sus contras:

Ventajas

  1. Aumento de la productividad
  2. Calidad predecible (mejora de la calidad)
  3. Mayor solidez
  4. Excelente consistencia de salida
  5. Reducción de gastos de mano de obra humana
  6. Muy preciso
  7. Reduce los esfuerzos humanos en trabajos monótonos

Contras

  1. Susceptible a amenazas de seguridad
  2. El costo de desarrollo podría exceder la predicción
  3. Alto costo de instalación
  4. Causa del desempleo en muchos sectores

Los pros mencionados superan con creces los contras y es por eso que el mundo entero está entrando en la era de la automatización.

En este tutorial, intentamos automatizar una puerta de ferrocarril para que se abra y se cierre siempre que el circuito detecte un tren en la vía y también activaremos un zumbador o una alarma que indique la velocidad. del tren es más alto que un umbral particular y para lograrlo vamos a utilizar los dos componentes electrónicos muy utilizados, es decir, Arduino y el servomotor.

El sensor que vamos a usar en este tutorial es el sensor ultrasónico, pero no es obligatorio usar este sensor. También podemos hacer una versión diferente de este proyecto usando el sensor IR. módulo y depende de nuestra elección, lo que queremos usar y lo que está disponible para nosotros.

Componentes necesarios para el controlador de puerta de ferrocarril

  1. Arduino UNO
  2. Zumbador
  3. Sensor ultrasónico (HC-SR04)
  4. Servomotor

Software necesario:

  1. IDE de Arduino
  2. Proteo

Diagrama de circuito del controlador de puerta de ferrocarril 

Descripción del componente

Arduino UNO

Arduino es básicamente una placa de desarrollo que es de código abierto y utiliza principalmente el microcontrolador Microchip ATmega328P y es fabricado por Arduino.cc. La placa viene con un conjunto de pines de entrada/salida que comprende digital y analógico que se puede interconectar con diferentes placas de expansión y circuitos externos.

La placa viene con 14 pines digitales junto con 6 pines analógicos que se utilizan o se programan con la ayuda de un IDE (entorno de desarrollo integrado) que viene con Arduino. IDE. La programación se graba a través de un cable USB tipo B. Los métodos de encendido de la placa pueden ser mediante el cable USB o conectando una fuente de alimentación de 9 voltios CC. El rango de voltaje aceptable varía de 7 a 20 voltios. Por el diseño y el punto de vista de trabajo, no es muy diferente de sus otros miembros de la familia, a saber, Arduino Nano y Arduino Leonardo.

STK500 sigue siendo el protocolo original para que Uno se comunique. La principal diferencia con sus predecesores es que no utiliza el chip controlador FTDI USB a serie. Por el contrario, utiliza ATmega 16U2 (Atmega8U2 hasta la versión R2) que está programado como convertidor de USB a serie.

Sensor ultrasónico (HC-SR04)

El sensor ultrasónico es el sensor básico que usamos para determinar la distancia de un objeto. De otra manera podemos decir que se utiliza para medir a qué distancia se encuentra el objeto de un punto de referencia particular. Tiene básicamente 4 pines;

¿Cómo funciona el ultrasonido? El transmisor (trig) envía una señal de sonido de alta frecuencia que luego es reflejada por el objeto y luego la señal reflejada se recibe en el receptor (eco). Por lo tanto, conocemos la velocidad del sonido en el aire, podemos calcular la distancia. Este sensor es extremadamente popular entre los manipuladores de Arduino que lo usan en sus proyectos a diario y para activar este sensor necesitamos un pulso alto de 10 microsegundos o más.

Características del sensor ultrasónico:-

Publicación relacionada:Riego automático de plantas y sistema de riego:circuito, código e informe del proyecto

Servomotor

Estos son un tipo especial de motores que se emplean para un movimiento muy específico en un ángulo particular. Es un actuador rotativo o lineal que permite un control preciso en determinadas posiciones angulares o lineales. El servomotor no es una sola entidad, sino una combinación de un motor adecuado junto con un sensor que proporciona información sobre la posición actual del motor.

Para usar este servomotor, se deben usar varios otros módulos avanzados, ya que no es similar en términos de facilidad de uso al motor de CC. Estos motores se utilizan básicamente en la robótica y las industrias manufactureras a gran escala.

Estos motores tienen un poco de similitud con los motores paso a paso que representan el control de bucle abierto. Los motores paso a paso tienen pasos incorporados en los que giran, pero debido a la falta de un sistema de retroalimentación, su uso se limita a una aplicación específica para la que fueron diseñados y fabricados.

Esta falta de retroalimentación es lo que distingue a un servomotor de estos motores paso a paso y les da una ventaja, ya que son dinámicos y se pueden personalizar de acuerdo con la tarea en cuestión con un poca alteración en la programación. Por lo general, el fabricante proporciona un módulo de controlador dedicado con el servomotor.

Mecanismo – Es básicamente un servomecanismo de circuito cerrado que utiliza el sistema de retroalimentación para actualizar el movimiento y la posición final del rotor. La entrada para el control del motor puede ser analógica o digital.

Un codificador de algún tipo está emparejado con el motor para dar la retroalimentación de posición y velocidad al control, lo que genera una señal de error hasta que no se alcanza la salida deseada. Y para reducir esta señal de error, el motor puede moverse en cualquier dirección para finalmente reducir la señal de error a cero. Cuando se logra esta condición, se logra el resultado deseado. Los servomotores mejorados y sofisticados tienen un codificador giratorio óptico en el eje de salida para medir su velocidad.

Timbre

El zumbador puede ser de naturaleza mecánica, electrónica, electromecánica y piezoeléctrica. Generalmente usamos el electrónico en hornos, programas de juegos y electrodomésticos, etc. Estos zumbadores tienen un circuito interno. El sonido producido se debe al movimiento de un disco. El disco es de naturaleza ferromagnética. Es un dispositivo impulsado por corriente que tiene una fuente de voltaje como entrada.

Funcionamiento del Controlador Automático de Puertas de Ferrocarril

En este circuito hemos utilizado sensores ultrasónicos y servomotores para replicar el funcionamiento de un cruce ferroviario. Ambos sensores se activan con la ayuda de pines de activación conectados a la placa Arduino y se calcula la distancia. El funcionamiento posterior del circuito depende completamente de la distancia medida.

Si la vía está despejada, los servomotores no harán nada, pero si un tren llega a cualquier lado de la vía, la distancia medida por uno de los sensores variará de la distancia anterior. De esta forma, nos informarán sobre la llegada del tren y, en poco tiempo, Arduino configurará sus pines digitales 7 y 8 en ALTO.

Estos pines están conectados con los dos servomotores y luego el servo cubrirá una distancia angular de 90 o y, por lo tanto, la puerta se cerrará para bloquear el paso de los vehículos. Cuando el tren se aleje del otro sensor, se notificará al Arduino sobre la salida del tren y los servomotores volverán a alcanzar su posición anterior para abrir la puerta.

Considerando la seguridad de las personas, hemos agregado una característica más a este circuito y se trata de alertarlos en caso de un tren de alta velocidad. Esto se logra calculando el tiempo entre las transiciones de dos sensores en un ciclo. Si se determina que el tiempo es inferior a un cierto valor, el zumbador emitirá un zumbido para alertar a las personas en las cercanías del cruce.

  • Publicación relacionada:Sistema de riego inteligente:diagrama de circuito y código

Código fuente y explicación del proyecto

En este bosquejo, hemos definido cinco variables de tipo entero y cuatro de tipo largo. Las variables tr1, tr2, eh1 y eh2 se utilizan para enviar pulsos y recibir valores de tiempo en microsegundos, mientras que las variables val1, val2, dis1 y dis2 se utilizan para almacenar valores de tiempo en microsegundos y distancia en cm. La tasa de baudios se establece en 9600 bits/seg y es responsable de la comunicación entre la placa y el monitor serie.

const int tr1 = 13, eh1 = 12, tr2 = 3, eh2 = 2;;
 int bz = 11;
unsigned long val1, dis1, val2, dis2;
#include 
Servo myservo1;
Servo myservo2;
int pos=-1;

Las funciones incluidas en la configuración de vacío () se ejecutarán solo una vez durante la ejecución y su tarea es definir la velocidad en baudios y el modo del pin como entrada o salida.

void setup() {
  // put your setup code here, to run once:
pinMode(tr1, OUTPUT);
pinMode(tr2, OUTPUT);
pinMode(bz, OUTPUT);
 
  pinMode(eh1, INPUT);
  pinMode(eh2, INPUT);
  myservo1.attach(8);
 myservo2.attach(7);

  Serial.begin(9600);
}

Según el funcionamiento requerido, medimos continuamente la distancia activando el sensor ultrasónico y la distancia calculada se establece como el parámetro de la declaración condicional. Si se determina que la condición es verdadera, la variable "pos" incrementa su valor para hacer funcionar los servomotores y cuando se determina que la condición es incorrecta, la variable "pos" disminuye su valor para devolver los servomotores a su posición anterior.

Hay una declaración condicional más que verifica si dos sensores están detectando el objeto rápidamente y luego establecerá el pin 11 en alto para encender el zumbador y alertar a las personas. Todos estos procesos están englobados en void loop() y se repiten hasta que se reinicia el Arduino o se detiene el suministro.

void loop() {
  // put your main code here, to run repeatedly:
 
 digitalWrite(tr1, LOW);
 delayMicroseconds(2);
 digitalWrite(tr1, HIGH);
 delayMicroseconds(10);
 digitalWrite(tr1, LOW);
 val1 = pulseIn(eh1, HIGH);
 dis1 = (val1 * 0.0343) / 2;

 digitalWrite(tr2, LOW);
 delayMicroseconds(2);
 digitalWrite(tr2, HIGH);
 delayMicroseconds(10);
 digitalWrite(tr2, LOW);
 val2 = pulseIn(eh2, HIGH);
 dis2 = (val2 * 0.0343) / 2;
  
  Serial.println("distance is ");
 Serial.println(dis1);
  Serial.println(dis2);
  if(dis1 < 100 || dis2 < 100)
  {
    if(pos==-1){
    for (pos = 0; pos <= 90; pos += 1) { 
    myservo1.write(pos); 
    myservo2.write(pos);            
    delay(15);}
  }
     delay(1000);
    digitalWrite(tr1, LOW);
    delayMicroseconds(2);
    digitalWrite(tr1, HIGH);
    delayMicroseconds(10);
    digitalWrite(tr1, LOW);
    val1 = pulseIn(eh1, HIGH);
    dis1 = (val1 * 0.0343) / 2; 
    
    digitalWrite(tr2, LOW);
    delayMicroseconds(2);
    digitalWrite(tr2, HIGH);
    delayMicroseconds(10);
    digitalWrite(tr2, LOW);
    val2 = pulseIn(eh2, HIGH);
    dis2 = (val2 * 0.0343) / 2;
     
      if(dis1 < 100 || dis2 < 100) {digitalWrite(bz, HIGH); Serial.println("distance2 is "); Serial.println(dis1); Serial.println(dis2);} } else if(dis1 >= 100 && dis2 >= 100)
    { if(pos==91){
      for (pos = 90; pos >= 0; pos -= 1) {
    myservo1.write(pos);   
    myservo2.write(pos);           
    delay(15);  
      
    }                  
  }
  digitalWrite(bz, LOW); 
      delay(200);
      }
}

Interfaz de archivo hexadecimal con Proteus para simulación: En su IDE de Arduino, haga clic en Archivo> Preferencias y luego en "Mostrar salida detallada" verifique las opciones de compilación y carga. Y, tras la compilación del código en la ventana de abajo, seleccione y copie la ubicación del archivo hexadecimal y en Proteus haga doble clic en Arduino y pegue la ubicación del archivo en la opción Archivo de programa y haga clic en Aceptar. Ahora su circuito estará listo para la simulación en Proteus.

Proyectos relacionados:

  • Timbre automático con detección de objetos por Arduino
  • Lámpara de noche automática con Arduino
  • Programación Arduino PWM y sus funciones en Arduino
  • Arduino Serial:comunicación serial por Arduino
  • Lista de ideas de proyectos de fin de carrera de electrónica
  • Ideas de proyectos de ingeniería electrónica para estudiantes de ingeniería
  • Ideas de miniproyectos de electrónica básica y simple para principiantes

Tecnología Industrial

  1. Pestillo S-R de la puerta NOR
  2. Probables fallas en sistemas probados
  3. Puertas TTL NOR y OR
  4. Circuitos de control del motor
  5. Circuito y funcionamiento del sistema de apertura automática de puerta con detección de movimiento
  6. Sistema de control CNC M-TECH
  7. Control automático de trenes
  8. Sistema de alarma Arduino:SERENA
  9. Centro de control de Arduino
  10. Sistema de riego automático de plantas con Arduino
  11. Monitoreo en la nube, un sistema de control remoto