Escolar Documentos
Profissional Documentos
Cultura Documentos
1
Sistema electrónico de un paso a nivel
Índice de la memoria
2
Sistema electrónico de un paso a nivel
Dicho sistema va a estar constituido por dos barreras (representadas con un servomotor),
una a cada lado de la vía del tren, de forma que cuando sean bajadas evitarán el paso de
cualquier otro vehículo por la vía durante el tiempo que el tren esté pasando por la misma. Dicho
sistema también está constituido por dos sensores (los elegidos para el proyecto han sido
sensores infrarrojos) situados cada uno de ellos en la vía a una distancia considerable de la zona
de tránsito de vehículos, de manera que cuando el tren haya pasado por uno de los dichos
sensores, las barreras se bajen con el tiempo suficiente e impidan el paso de los vehículos a
través de la vía. Además, el sensor situado en el lado opuesto detectará el momento en el que
el tren sale de dicha zona y podrán volverse a subir las barreras y restaurarse la circulación.
Además, también son parte del sistema los semáforos (representados mediante LEDs rojos
y verdes) situados a ambos lados de la vía con la misma función que la barrera (indican que los
vehículos se detengan cuando sea necesario o bien que puedan circular a través de la vía) y una
bocina (representada con un zumbador) que indica que el tren circula entre ambos sensores
infrarrojos durante el tiempo que está sonando. Por último, para contemplar el caso de que un
vehículo, persona o algún determinado obstáculo esté situado en la vía cuando el tren esté
pasando y evitar la colisión, se ha considerado necesario utilizar un dispositivo (en este caso, un
sensor de presión) que informe rápidamente al tren de la existencia del obstáculo para proceder
a su detención inmediata. Dicha detención del tren una vez ha recibido la información
procedente del sensor de presión se simbolizará con un LED amarillo (se encenderá durante el
evento).
3
Sistema electrónico de un paso a nivel
A. Introducción
Como se explicó en el epígrafe anterior, el objetivo final del proyecto es construir un
sistema que represente un paso a nivel para trenes. Para lograrlo desde el punto de vista de la
electrónica, hará falta un trabajo sincronizado y en armonía de los diferentes sensores y
actuadores que forman parte del sistema.
➢ 2 pares de LEDs infrarrojos, uno emisor y otro detector, cuya función será la de
determinar si se aproxima algún tren al lugar donde se encuentra el paso a nivel.
➢ 1 sensor de presión, que se encargará de informar si hay algún obstáculo situado en
mitad de las vías a la altura del paso.
➢ 2 pares de LEDs rojo y verde, que harán las veces de semáforo controlando el paso de
vehículos, y se activarán cuando se el tren pase por lo sensores infrarrojos
➢ 1 LED amarillo que se activará en función de la señal del sensor de presión
➢ Un servomotor, cuya función es la de bajar y subir la barrera, y se activará cuando se
interrumpa la señal entre los LEDs infrarrojos.
➢ Un zumbador, cuya función y modo de activación es similar a los leds rojo y verde.
Entrando o Obstáculo al
Casos Sin tren Pasando tren
saliendo tren paso del tren
Sensores
LEDs infrarrojos Activado Desactivado Activado Desactivado
Sensor de
Desactivado Desactivado Desactivado Activado
presión
Actuadores
LEDs Rojo No Sí Sí Sí
LEDs Verde Sí No No No
LED Amarillo No No No Sí
Servomotor Desactivado Activado Activado Desactivado
Zumbador No Sí Sí Sí
Tabla 1: Situaciones en el control del paso a nivel y respuesta esperada
4
Sistema electrónico de un paso a nivel
B. Sensores de entrada
Los sensores de entrada utilizados son el sensor de presión y los sensores LEDs
infrarrojos.
1. Sensor de presión
El dispositivo empleado para representar la detección de obstáculos en la vía en el tramo
del paso a nivel consiste en un sensor de presión resistivo, el cual proporciona una tensión de
salida proporcional a la fuerza ejercida en él. Su representación esquemática se muestra en la
figura siguiente.
5
Sistema electrónico de un paso a nivel
Dicho par corresponde con una entrada digital, por lo que no requieren de adaptación
al Launchpad, pudiendo ser conectados directamente a él. Su función consiste en “informar” si
la luz entre el emisor y receptor se corta o no (pasa algún obstáculo, en este caso el tren, entre
ellos o no). Hay dos pares de emisores-receptores debido a la descripción física desarrollada
previamente, pues el tren puede entrar en ese tramo de vía de paso por un extremo u otro.
Cada uno de estos LEDs necesitan para funcionar correctamente una resistencia para evitar que
se inutilicen por una sobrecarga de intensidad.
C. Actuadores
1. LEDs indicadores
Los LEDS indicadores forman parte de la salida del sistema electrónico, junto con el
zumbador y el servomotor. Estos elementos indican (como se comentó en la descripción del
sistema) si el paso por la zona de la vía en cuestión está permitido (LED verde) o no (LED rojo),
y en caso de haber un obstáculo en dicho tramo al mismo tiempo que está pasando un tren, se
encenderá el LED indicador amarillo. Al igual que los LEDS infrarrojos, no requieren adaptación,
es decir, van conectados directamente a los pines de salida digitales del Launchpad, junto con
una resistencia cada uno para impedir que se inutilicen por una sobrecarga de intensidad.
6
Sistema electrónico de un paso a nivel
2. Zumbador
La función del zumbador trata de advertir al tráfico por carretera del inminente paso de
un tren por el tramo de cruce. La señal de tensión digital procedente del Launchpad servirá como
Figura 6: Zumbador
7
Sistema electrónico de un paso a nivel
3. Servomotor
Para actuar sobre la barrera del paso a nivel se ha utilizado un servomotor (el modelo
utilizado resulta ser el Power HD Mini Servo HD-1160). Este servomotor posee una tensión de
funcionamiento de entre 4 y 6 V, por lo que será necesario utilizar una fuente de tensión distinta
a la proporcionada por el ordenador.
Con este tipo de actuador el control es muy sencillo (no necesitará de circuito de
adaptación), dado que simplemente habrá que indicarle desde el programa los grados que se
quiera que se mueva el motor. Como se muestra en la figura inmediatamente inferior, el
servomotor tiene tres entradas.
8
Sistema electrónico de un paso a nivel
D. Launchpad
1. Descripción
Se ha utilizado para el proyecto el Launchpad MSP-EXP430G-ET de Texas Instruments
(TI). Dicho Launchpad hace de puente (gracias a su microcontrolador) entre el código
programado para el problema planteado y el sistema creado de sensores y actuadores.
Se usa este tipo de dispositivo debido a las grandes ventajas que presenta, entre ellas,
fácil manejo y programación, robustez, formatos DIP y SMD compatibles y su escaso precio,
perfecto para un proyecto académico. Con esta placa de TI se puede igualmente utilizar el
sistema de desarrollo software Energía (con el que se programa el código).
Para una mayor comprensión de cada puerto y especificaciones del Launchpad se puede
consultar el datasheet (http://www.ti.com/lit/ds/symlink/msp430g2553.pdf).
9
Sistema electrónico de un paso a nivel
2. Código de actuación
En este apartado el objetivo es mostrar y explicar el código de programación que se ha
utilizado para lograr el funcionamiento deseado del sistema, teniendo en cuenta los múltiples
casos que pueden suceder. Estos casos, como ya se mencionó anteriormente dependerán de si
el tren que pasa es largo o corto o de si el sensor de presión está activado o no. Para realizar el
código hemos utilizado el programa Energía, diseñado especialmente para realizar programas
de sistemas electrónicos.
Para tratar de explicar la función de las diferentes secciones del código de la mejor forma
posible, se dividirá el código en las partes fundamentales y se irá comentando la función de cada
una de las mismas. La clave para comprender el programa es que la respuesta del sistema
depende de los sensores de entrada y del estado anterior en el que se encontrase el sistema.
int PinSensor = P1_3; // Se relaciona el pin de entrada con la salida del circuito del sensor de
presión
int sensorValue = 0; // Variable inicial del sensor de presión
int PinDetectorIzq = P2_3; // Se relaciona el pin de entrada con el Detector Izquierda
int PinDetectorDer = P2_4; // Se relaciona el pin de entrada con el Detector Derecha
int PinLEDRojo = P2_1; // Se relaciona el pin de salida con los LEDs Rojos
int PinLEDVerde = P2_0; // Se relaciona el pin de salida con los LEDs Verdes
int PinLEDAmarillo = P1_5; // Se relaciona el pin de salida con el LED Amarillo
int PinZumbador = P1_4; // Se relaciona el pin de salida con el zumbador
#include <Servo.h> // Se incluye la librería para el control del servomotor
Servo myservo; // Se crea variable para controlar el servomotor
En esta primera sección se declaran las diferentes variables y se asocian a los pines
correspondientes del Launchpad. Además de ello, se incluye la librería myservo, necesario para
poder trabajar con el servomotor que mueve las barreras.
void setup()
{
pinMode(PinDetectorIzq,INPUT); // Pin 2_3 para el detector izquierda como entrada
pinMode(PinDetectorDer,INPUT); // Pin 2_4 para el detector derecha como entrada
pinMode(PinSensor,INPUT); // Pin 1_3 para el sensor como entrada
pinMode(PinLEDRojo,OUTPUT); // Pin 2_1 para los LEDs rojos como salida
pinMode(PinLEDVerde,OUTPUT); // Pin 2_0 para los LEDs verdes como salida
pinMode(PinLEDAmarillo,OUTPUT); // Pin 1_5 para el LED amarillo como salida
pinMode(PinZumbador,OUTPUT); // Pin 1_4 para el zumbador como salida
myservo.attach(P2_2); // Pin 2_2 para el servomotor como salida
}
En esta segunda sección, se establece cada una de las variables declaradas en la sección
anterior como entradas o salidas del sistema.
void loop()
{
int limitValue; // Valor límite con el que se considera activado el sensor de presión
10
Sistema electrónico de un paso a nivel
11
Sistema electrónico de un paso a nivel
{
myservo.write(B);
}
while(flag1 == 0 ) {
//digitalWrite(PinZumbador, HIGH); // Valor HIGH del zumbador salida
//delay(500);
//digitalWrite(PinZumbador, LOW); // Valor HIGH del zumbador salida
//delay(500);
DI = digitalRead(PinDetectorIzq); // Valor binario Detector Izquierda
DD = digitalRead(PinDetectorDer); // Valor binario Detector Derecha
saliendo = 1;
//digitalWrite(PinZumbador, HIGH); // Valor HIGH del zumbador salida
//delay(500);
//digitalWrite(PinZumbador, LOW); // Valor HIGH del zumbador salida
//delay(500);
En esta parte final del código se describe el funcionamiento más habitual del tren. En el
momento en que se detecta la entrada de un tren, estando el sensor de presión desactivado, se
activan los actuadores correspondientes. A partir de aquí la clave de esta sección es que la
respuesta del sistema depende, no solo de los diferentes sensores y entradas, sino también del
12
Sistema electrónico de un paso a nivel
estado anterior en el que se encontraba el sistema. De esta forma una vez se detecta que llega
un tren, se entra en el bucle while, cuyo objetivo es que los actuadores correspondientes sigan
activos hasta que el tren salga completamente. Así, una vez se entra en el bucle, se val leyendo
los sensores infrarrojos continuamente, de tal forma que, una vez que los dos sensores vuelven
a conducir debido a que a los receptores les llega la luz infrarroja, se dice que el tren está en
medio, en caso de un tren corto, y si ambos están ‘cortados’, porque el tren sea largo, el sistema
guarde este estado como en medio. Una vez que se ha pasado por el estado ‘en medio’, y solo
uno de los sensores está activo, se pasa al estado ‘saliendo’. Para finalizar una vez que ambos
sensores dejan de estar interrumpidos, y se ha pasado por el estado ‘saliendo’, la barrera se
sube, y se activa la salida del bucle, volviendo al estado inicial de la sección ‘loop’.
E. Diseño de la placa
1. Esquemático
Una vez realizados y comprobado los circuitos pertenecientes al sistema electrónico, el
siguiente paso consiste en integrar estos elementos en una placa para poder implementar la
solución diseñada al problema propuesto.
Para ello, se utiliza el software Eagle, el cual posibilita la realización de los elementos
fundamentales necesarios para que la PCB sea una realidad. El primer paso consiste en plasmar
los circuitos del sistema esquemáticamente (schematic).
13
Sistema electrónico de un paso a nivel
2. PCB
Una vez desarrollado el esquemático, el siguiente paso consiste en la realización de la
PCB en el siguiente módulo de Eagle, el board.
14
Sistema electrónico de un paso a nivel
Los circuitos que más dificultades presentaban en cuanto a su diseño y prueba resultaron ser los
circuitos del sensor de presión, de los LEDs infrarrojos y del zumbador.
➢ Circuito del sensor de presión: La principal dificultad que presentó la definición del
circuito resultó ser el valor de la resistencia previa a la entrada del circuito de
adaptación analógico-digital para la señal de tensión del sensor. Para solucionar este
problema se requirió la utilización de los aparatos de medición presentes en el
laboratorio, definiendo la tensión máxima y mínima y después se utilizó la fórmula que
se detalla a continuación.
15
Sistema electrónico de un paso a nivel
➢ Circuito de los LEDs infrarrojos: A diferencia de los LEDs indicadores, estos LEDs
infrarrojos poseen un funcionamiento un tanto diferente. El LED emisor emite una señal
que capta el LED receptor, emitiendo tensión. Si es cortada, deja de emitir dicha tensión.
Además, para poder comprobar su funcionamiento, se tuvo que medir dicha tensión
del LED receptor, observando que cuando se cortaba el haz de luz, la tensión pasaba a
ser cero.
16
Sistema electrónico de un paso a nivel
17
Sistema electrónico de un paso a nivel
Una vez introducido en el módulo schematic, el siguiente paso consistió en realizar las
conexiones de la PCB dentro del módulo de Eagle Board. La mayor dificultad encontrada resultó
ser establecer las conexiones de los componentes dentro de un espacio y en unas condiciones
estéticas y funcionales adecuadas. Nuevamente nos valimos de las diapositivas de clase y lo
impartido en ellas para realizar este apartado.
18
Sistema electrónico de un paso a nivel
Para finalizar esta sección, se obtuvieron los archivos del Gerber de la PCB para
obtenerla físicamente, siendo mandada a fabricar por en conjunto con varios grupos para
disminuir el precio de adquisición de ésta.
19
Sistema electrónico de un paso a nivel
20
Sistema electrónico de un paso a nivel
Dicha maqueta simula la vía por donde transita el tren y la carretera que se cruza con
dicha vía. Se han dispuesto los LEDs indicadores (rojo y verde) a cada lado de la vía, tal y
como aparece en la figura, de forma que cuando se obstruye el paso de luz entre los LEDs
infrarrojos se apaga el LED verde de cada lado de la vía para encenderse el rojo. El LED
amarillo (que se activa cuando hay un obstáculo en medio de la vía al mismo tiempo que
entra un tren en la misma, simulando un aviso de detención inmediata del tren) está situado
junto con el zumbador, que se activa con la misma condición que los LEDs rojos, con la
particularidad que cuando en la vía se encuentra un vehículo u otro obstáculo al mismo
tiempo que entra el tren pita de forma intermitente, y cuando sólo pasa el tren lo hace de
forma seguida. Además, la maqueta contiene un único servomotor a un lado de la vía,
aunque en realidad debería haber dos, pues simulan las barreras que impiden o permiten el
paso de los vehículos en un paso a nivel, pero como el funcionamiento sería idéntico, por
eso solo se ha dispuesto un único servomotor. Por último, se puede visualizar el sensor de
presión justo en la zona de cruce de la vía con la carretera, de forma que cuando se ejerza
una presión sobre el mismo (simulando la existencia de un obstáculo en dicha zona) se
encienda el LED amarillo si y solo si está pasando un tren en ese instante de tiempo.
V. Memoria económica
A modo de tener una recopilación del gasto económico total, se adjunta una tabla resumen
con los precios y cantidades de los componentes utilizados. Hay que tener en cuenta que,
algunos de los componentes han sido comprados físicamente en tienda, por lo cual han salido
más caros, pero otros, como el Launchpad y la PCB, se han encargado conjuntamente con otros
grupos, reduciéndose considerablemente los precios.
21
Sistema electrónico de un paso a nivel
En primer lugar, se presentan los cálculos utilizados para elaborar los circuitos del sistema
del paso a nivel.
22
Sistema electrónico de un paso a nivel
𝑉1 1,8 𝑉
𝑹𝟏 ≥ = = 𝟑𝟔𝟎 𝛀
𝐼1 0,005 𝐴
La resistencia que acompañe al LED debe poseer un valor superior a la caída de tensión
supuesta en la resistencia (la tensión de alimentación de 3,6 V menos la caída aceptable
en el LED, aproximadamente a 1,8 V, esto es, 1,8 V) entre la intensidad soportada por
el Launchpad (estimada en 5 miliamperios). El valor resultante es de 360 𝛀, utilizándose
finalmente en los circuitos resistencias de 500 𝛀 por razones de logística.
➢ Circuito del sensor de presión: Al igual que en el caso anterior, las variables que necesitan
ser calculadas resultan ser las resistencias (tanto la asociada al sensor como aquellas
presentes en e entramado del amplificador operacional).
23
Sistema electrónico de un paso a nivel
Para el caso de las resistencias del circuito no inversor, el procedimiento llevado a cabo
consistió en fijar el valor de 2 de las resistencias (R4 y R1) y variar una de las resistencias
(R2), utilizando para ello un potenciómetro, y simulando en Microcap y comprobando
en el laboratorio, establecer el valor de esta última para conseguir ese valor de entrada
de tensión al Launchpad de entre 0 y 3,6 V. Para ello, el valor de la ganancia es de 1,16.
Por tanto, los valores finales de resistencia son los mostrados en la figura anterior.
24
Sistema electrónico de un paso a nivel
25
Sistema electrónico de un paso a nivel
26
Sistema electrónico de un paso a nivel
int PinSensor = P1_3; // Se relaciona el pin de entrada con la salida del circuito del sensor de
presión
int sensorValue = 0; // Variable inicial del sensor de presión
int PinDetectorIzq = P2_3; // Se relaciona el pin de entrada con el Detector Izquierda
int PinDetectorDer = P2_4; // Se relaciona el pin de entrada con el Detector Derecha
int PinLEDRojo = P2_1; // Se relaciona el pin de salida con los LEDs Rojos
int PinLEDVerde = P2_0; // Se relaciona el pin de salida con los LEDs Verdes
int PinLEDAmarillo = P1_5; // Se relaciona el pin de salida con el LED Amarillo
int PinZumbador = P1_4; // Se relaciona el pin de salida con el zumbador
#include <Servo.h> // Se incluye la librería para el control del servomotor
Servo myservo; // Se crea variable para controlar el servomotor
void setup()
{
pinMode(PinDetectorIzq,INPUT); // Pin 2_3 para el detector izquierda como entrada
pinMode(PinDetectorDer,INPUT); // Pin 2_4 para el detector derecha como entrada
pinMode(PinSensor,INPUT); // Pin 1_3 para el sensor como entrada
pinMode(PinLEDRojo,OUTPUT); // Pin 2_1 para los LEDs rojos como salida
pinMode(PinLEDVerde,OUTPUT); // Pin 2_0 para los LEDs verdes como salida
pinMode(PinLEDAmarillo,OUTPUT); // Pin 1_5 para el LED amarillo como salida
pinMode(PinZumbador,OUTPUT); // Pin 1_4 para el zumbador como salida
myservo.attach(P2_2); // Pin 2_2 para el servomotor como salida
}
void loop()
{
int limitValue; // Valor límite con el que se considera activado el sensor de presión
27
Sistema electrónico de un paso a nivel
// Variables "flag"
int flag1 = 0;
int enmedio = 0;
int saliendo = 0;
int DI;
int DD;
int B=0;
DI = digitalRead(PinDetectorIzq); // Valor binario Detector Izquierda
DD = digitalRead(PinDetectorDer); // Valor binario Detector Derecha
28
Sistema electrónico de un paso a nivel
{
myservo.write(B);
}
while(flag1 == 0 ) {
//digitalWrite(PinZumbador, HIGH); // Valor HIGH del zumbador salida
//delay(500);
//digitalWrite(PinZumbador, LOW); // Valor HIGH del zumbador salida
//delay(500);
DI = digitalRead(PinDetectorIzq); // Valor binario Detector Izquierda
DD = digitalRead(PinDetectorDer); // Valor binario Detector Derecha
saliendo = 1;
//digitalWrite(PinZumbador, HIGH); // Valor HIGH del zumbador salida
//delay(500);
//digitalWrite(PinZumbador, LOW); // Valor HIGH del zumbador salida
//delay(500);
29