Você está na página 1de 30

Diseño Electrónico e Instrumentalización Industrial

Máster en Ingeniería Industrial

Sistema electrónico de un paso a nivel

Autores: José María Medianero Martín


Gonzalo Navarro Fernández
Pablo Ramos Rodríguez
Justino Trenas Arbizu
Tutor: Federico Barrero García

Equation Chapter 1 Section 1

Dpto. Ingeniería Electrónica


Escuela Técnica Superior de Ingeniería
Universidad de Sevilla
Sevilla, 2019
Sistema electrónico de un paso a nivel

1
Sistema electrónico de un paso a nivel

Índice de la memoria

I. Descripción física de sistema.


II. Implementación electrónica del sistema.
A. Introducción.
B. Sensores de entrada.
1. Sensor de presión.
2. Sensores LEDs infrarrojos.
C. Actuadores.
1. LEDs indicadores.
2. Zumbador.
3. Servomotor.
D. Launchpad.
1. Descripción.
2. Código de actuación.
E. Diseño de la placa.
1. Esquemático.
2. PCB.
III. Pruebas y desarrollo del trabajo durante el curso y las sesiones prácticas.
A. Primera Parte. Definición, prediseño y pruebas de los circuitos del sistema
electrónico.
B. Segunda Parte. Desarrollo y diseño de la PCB.
C. Tercera Parte. Soldadura e implementación del código de control del sistema
electrónico.
IV. Representación elemental del sistema. Maqueta modelo.
V. Memoria económica.
VI. Anexo I: Datos relevantes de dispositivos para su implementación en el sistema.
VII. Anexo II: Simulaciones realizadas en el software Microcap.
VIII. Anexo III: Código de actuación

2
Sistema electrónico de un paso a nivel

I. Descripción física del sistema


El trabajo de la asignatura va a centrarse en el diseño de un paso a nivel con barreras, tal y
como se muestra en la figura 1.

Figura 1: Esquema del sistema físico y la implementación electrónica

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

II. Implementación electrónica del sistema

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.

Los sensores (señales de entrada) utilizados en el proyecto serán:

➢ 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.

Los actuadores (señales de salida) serán:

➢ 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.

Figura 2: Sensor de presión utilizado y su representación esquemática

Tal y como se muestra en el anexo reservado a la información relevante para la


implementación del sensor de presión (anexo I), la tensión de salida del sensor es un valor
oscilante que depende de la fuerza ejercida y de la resistencia que acompaña al dispositivo, por
lo que para que la señal de tensión que emite el sensor sea tratada por el Launchpad, se ha de
realizar un circuito de adaptación analógico-digital que permita recibir al Launchpad una
tensión entre cero y la de alimentación del mismo (VCC).

En la figura que se presenta a continuación, el circuito utilizado corresponde a un


circuito no inversor, compuesto por un amplificador operacional, tres resistencias (una de ellas
un potenciómetro, es decir, una resistencia variable que permita variar el rango de tensiones de
entrada sin cambiar físicamente el circuito) y un condensador que realice un filtrado de señales
a baja frecuencia para mejorar la recepción de la señal de tensión.

Figura 3: Representación esquemática del circuito de adaptación del sensor de presión

5
Sistema electrónico de un paso a nivel

El procedimiento de cálculo de las variables del circuito de adaptación del sensor de


presión se encuentra disponibles en el anexo I.

2. Sensores LEDs infrarrojos


La otra señal de entrada al sistema electrónico se corresponde con la proporcionado por
un par de sensores LEDs infrarrojos receptor-emisor.

Figura 4: LEDs receptor-emisor de infrarrojos

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.

Los valores de dichas resistencias se encuentran calculados en el apartado


correspondiente del Anexo I.

C. Actuadores

Los actuadores usados son los LEDs indicadores, el zumbador y el servomotor.

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

Figura 5: LEDs indicadores

Los valores de dichas resistencias se encuentran calculados en el apartado


correspondiente del Anexo I.

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

Este dispositivo necesitará de un circuito de adaptación, puesto que el consumo de


intensidad requerida por el zumbador es mayor del que puede suministrar el puerto USB del
ordenador. El circuito constará de un transistor modelo 2N2222, que posibilita la llegada de una
corriente de valor soportable para la capacidad del puerto USB, al que se le acopla una
resistencia, cuyo valor calculado se muestra en el apartado correspondiente del anexo I.

Figura 7: Circuito de adaptación del 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.

Figura 8: Servomotor HD-1160

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.

➢ Marrón: tierra (GND, terminal negativo)


➢ Rojo: alimentación del servomotor (Vservo)
➢ Naranja: señal de control

Figura 9: Conexiones del servomotor

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).

Figura 10: Launchpad MSP-EXP430G-ET de TI

A continuación, se muestra en la imagen el pin-out del Launchpad. El fabricante detalla


el tipo de salida o entrada que se puede utilizar en cada pincho. Una de las ventajas que tenemos
con este Launchpad es que nos proporciona una corriente de 3,3 V y 5 V.

Figura 11: Pin-out del Launchpad

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

sensorValue = analogRead(PinSensor); // Registro analógico de la medición del sensor de


presión
limitValue = 100; // Valor de limitValue

10
Sistema electrónico de un paso a nivel

digitalWrite(PinLEDRojo, LOW); // Valor LOW de los LEDs rojos de salida


digitalWrite(PinLEDVerde, HIGH); // Valor HIGH de los LEDs verdes de salida
digitalWrite(PinLEDAmarillo, LOW); // Valor LOW del LED amarillo de salida
digitalWrite(PinZumbador, LOW); // Valor LOW del zumbador salida
// 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

En lo que respecta en la tercera sección, en la primera parte de la parte loop, se


inicializan las diferentes variables y se lee por primera vez los valores de los sensores
infrarrojos, de cara a comenzar a valorar si se cumple alguno de los casos.
// Caso 1: Tren ENTRANDO y sensor de presión ACTIVADO
if (DI+DD == 1 && sensorValue > limitValue){

while (sensorValue > limitValue)

digitalWrite(PinLEDRojo, HIGH); // Valor HIGH de los LEDs rojos de salida


sensorValue = analogRead(PinSensor);// Lectura del valor del sensor de presión
digitalWrite(PinLEDVerde, LOW); // Valor LOW de los LEDs verdes de salida
digitalWrite(PinLEDAmarillo, HIGH); // Valor HIGH del LED amarillo de salida
digitalWrite(PinZumbador, HIGH); // Valor HIGH del zumbador salida
delay(100);
digitalWrite(PinZumbador, LOW); // Valor HIGH del zumbador salida
delay(100);
digitalWrite(PinZumbador, HIGH); // Valor HIGH del zumbador salida
delay(100);
digitalWrite(PinZumbador, LOW); // Valor HIGH del zumbador salida
delay(500);
for(B = 0; B < 90; B += 1) // Bucle para la bajada de la barrera (de 1º en 1º)
{
myservo.write(B);
}
}
}

En esta sección, se contempla el caso en el que se acerque un tren y el sensor de presión


esté activado, activándose de esta forma los LEDs rojos y amarillo, bajando la barrera y
activando el sensor de presión.
// Caso 2: Tren ENTRANDO y sensor de presión DESACTIVADO
if (DI+DD == 1)
{
digitalWrite(PinLEDRojo, HIGH); // Valor HIGH de los LEDs rojos de salida
digitalWrite(PinLEDVerde, LOW); // Valor LOW de los LEDs verdes de salida
digitalWrite(PinLEDAmarillo, LOW); // Valor LOW del LED amarillo de salida

11
Sistema electrónico de un paso a nivel

digitalWrite(PinZumbador, HIGH); // Valor HIGH del zumbador salida

for(B = 0; B < 90; B += 1) // Bucle para la bajada de la barrera (de 1º en 1º)

{
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

// Caso 2.1: Tren EN MEDIO


if (!DI*!DD + DD*DI == 1) //Primera condición: TREN LARGO, segunda: TREN CORTO
{
enmedio = 1;
//digitalWrite(PinZumbador, HIGH); // Valor HIGH del zumbador salida
//delay(500);
//digitalWrite(PinZumbador, LOW); // Valor HIGH del zumbador salida
//delay(500);
}
// Caso 2.2: Tren SALIENDO
if (DD+DI == 1 && enmedio ==1)
{

saliendo = 1;
//digitalWrite(PinZumbador, HIGH); // Valor HIGH del zumbador salida
//delay(500);
//digitalWrite(PinZumbador, LOW); // Valor HIGH del zumbador salida
//delay(500);

if ( DI+DD==0 && saliendo ==1) {


for(B = 90; B>=1; B-=1) // Bucle para la subida de la barrera (de 1º en 1º)
{
myservo.write(B);
}
flag1=1;
} // Llave del if de subida de barrera
} // Fin del bucle
}
}

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).

Figura 12: Esquemático del sistema

En la figura superior se presenta los distintos circuitos empleados en el desarrollo del


sistema, divididos en circuitos de entradas y salidas, junto con las conexiones (pinchos) que
conecten con los pines del Launchpad.

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.

Figura 13: PCB en Eagle

La elaboración de la PCB se realiza según las directrices recomendadas en clase (por la


cara bottom, diámetros, separaciones, línea de tierra, etcétera).

Finalmente, para obtener la placa físicamente, se generan el Gerber de esta y se manda


a fabricar a una empresa del sector.

Figura 14: PCB física

14
Sistema electrónico de un paso a nivel

Manualmente, se sueldan los elementos de cada circuito a la placa, obteniéndose la


placa final de la figura inferior.

Figura 15: PCB soldada

III. Pruebas y desarrollo del trabajo durante el curso y las


sesiones prácticas
Esta sección es probablemente la más reveladora de la memoria, pues en ella se van a
plantear el trabajo, las dificultades y las soluciones realizadas para el problema propuesto, así
como las actividades realizadas durante las sesiones prácticas de la asignatura, hasta el final del
desarrollo del sistema electrónico.

A. Primera Parte. Definición, prediseño y pruebas de los circuitos


del sistema electrónico.
La primera parte de desarrollo del trabajo del sistema electrónico trató de elaborar los circuitos
electrónicos componentes del paso a nivel. Para ello, se realizó en primer lugar un esquema
inicial de los circuitos de entrada y salida, para tener un primer modelo que probar en las
prácticas de la asignatura.

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

Figura 16: Cálculo de la resistencia asociada al sensor de presión

Una vez conocida, se realizaron las pruebas correspondientes para su comprobación.

Figura 17: Prueba del circuito no inversor

Figura 18: Prueba del circuito del sensor de presión

➢ 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

Figura 19: Prueba de los LEDs infrarrojos (I)

Figura 20: Prueba de los LEDs infrarrojos (II)

➢ Circuito del zumbador: La problemática que presentaba el zumbador era la corriente


demandada por este para su funcionamiento. Demandaba una intensidad superior a la
que podía suministrar el puerto USB del ordenador. Para solucionar este problema, se
incluyó un transistor (junto con una resistencia de bajo valor) a la salida del pincho de
la placa perteneciente al circuito del zumbador, de manera que se suministrara la
corriente requerida por el zumbador (figura 7). Posteriormente, se realizaron las
pruebas correspondientes del circuito.

17
Sistema electrónico de un paso a nivel

Figura 21: Prueba del circuito del zumbador

B. Segunda Parte. Desarrollo y diseño de la PCB.


En lo que respeta a la elaboración de la PCB, una vez definidos los componentes de los
circuitos electrónicos del sistema, lo primero que se realizó fue la elaboración de los circuitos
en el módulo schematic de Eagle. Valiéndonos de las diapositivas de clase y lo impartido en ellas,
se pudo implementar los circuitos de entrada y salida y las conexiones a los pines del Launchpad.

Figura 22: Implementación de los circuitos en el Eagle

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

Figura 23: Elaboración de las conexiones de la placa

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.

Figura 24: Obtención del Gerber de la PCB

19
Sistema electrónico de un paso a nivel

C. Tercera Parte. Soldadura e implementación del código de


control del sistema electrónico.
El último paso para obtener el sistema electrónico consistió en soldar e implementar un
código válido para realizar el control del sistema.

En lo relativo al proceso de soldadura, se realizó de elementos de menor altura a


elementos de mayor altura para facilitar el proceso. Cabe destacar que se adquirió un soldador
para realizar más eficazmente este proceso, sin depender de los servicios de la escuela. El
resultado final se muestra en la figura 15.

En lo tocante al proceso de implementación del código, la dificultad residió en la


magnitud del código a realizar, por lo que la estrategia a seguir fue comprobar el
funcionamiento de los circuitos por separado, y a partir de estos resultados, acoplar las
soluciones encontradas para estos problemas al problema global. Para ello se crearon
subproblemas para los circuitos del sensor de presión, de los LEDs infrarrojos, de los LEDs
indicadores y del zumbador (el servomotor posee una librería separada, junto con un ejemplo
de acción de este).

En lo que respecta al código en sí, las mayores dificultades fueron la implementación


de las acciones del giro del servomotor y las acciones del zumbador.

Figura 25: Utilización de códigos auxiliares para el código del proyecto

IV. Representación elemental del sistema. Maqueta modelo


Para visualizar el diseño de nuestro circuito electrónico se ha llevado a cabo una
maqueta, de manera que pueda entenderse con mayor claridad.

20
Sistema electrónico de un paso a nivel

Figura 26: Maqueta modelo

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

COMPONENTES COSTES UNIDADES TOTAL

Sensor de presión 10,99 € 1 10,99 €

Servomotor 11,99 € 1 11,99 €

Resistencias 0,15 € 8 1,20 €

LEDs Luminosos 0,20 € 5 1,00 €

LEDs Emisor y Receptor 0,35 € 4 1,40 €

Condensador 1,29 € 2 2,58 €

Transistor 1,72 € 1 1,72 €

Launchpad 5,00 € 1 5,00 €

Operacionales 1,00 € 1 1,00 €

Pines y cables 15,10 € 1 15,10 €

PCB 7,00 € 1 7,00 €

Gastos de envío 3,00 € 1 3,00 €

Soldador 7,80 € 1 7,80 €

SUMATORIO TOTAL 69,78 €


Tabla 2: Gasto económico del proyecto

VI. Anexo I: Datos relevantes de dispositivos para su


implementación en el sistema
El objetivo de este anexo consiste en recopilar los cálculos necesarios para obtener las
variables de los elementos presentes en el sistema electrónico, así como de presentar los datos
de algunos de los elementos más complejos utilizados en el mismo.

En primer lugar, se presentan los cálculos utilizados para elaborar los circuitos del sistema
del paso a nivel.

➢ Circuitos LEDs indicadores y receptores-emisores: La principal variable por conocer es el


valor de la resistencia asociada a cada uno de los LEDs. Para ello, se utiliza la siguiente
guía.

22
Sistema electrónico de un paso a nivel

Figura 27: Circuito con LED

𝑉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).

Figura 28: Circuito del sensor de presión

23
Sistema electrónico de un paso a nivel

Para obtener la resistencia asociada al sensor de presión (R3), se utiliza la ecuación


adjunta al datasheet del sensor, llevando a cabo para ello las mediciones necesarias en
el sensor de presión alimentado a 3,6 V (ver figura 16).

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.

Para concluir este anexo, se muestran variables contenidas en el datasheet de los


elementos más relevantes del sistema.

Figura 29: Características del sensor de presión (I)

Figura 30: Características del sensor de presión (II)

24
Sistema electrónico de un paso a nivel

Figura 31: Características del transistor 2N2222

Figura 32: Características del servomotor HD-1160A

25
Sistema electrónico de un paso a nivel

VII. Anexo II: Simulaciones realizadas en el software Microcap


En este anexo se presentan los resultados de las simulaciones realizadas en Microcap del
circuito del sensor de presión.

Figura 33: Simulaciones del circuito del sensor de presión

26
Sistema electrónico de un paso a nivel

Siendo V(Sensor) la tensión recibida en el sensor de presión, V(2) la tensión de salida


del sensor de presión (tensión antes de entrar en el circuito no inversor) y V(Vo) la tensión una
vez tratada por el amplificador operacional (señal suministrada al Launchpad).

VIII. Anexo III: Código de actuación

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

sensorValue = analogRead(PinSensor); // Registro analógico de la medición del sensor de


presión
limitValue = 100; // Valor de limitValue

digitalWrite(PinLEDRojo, LOW); // Valor LOW de los LEDs rojos de salida


digitalWrite(PinLEDVerde, HIGH); // Valor HIGH de los LEDs verdes de salida
digitalWrite(PinLEDAmarillo, LOW); // Valor LOW del LED amarillo de salida
digitalWrite(PinZumbador, LOW); // Valor LOW del zumbador salida

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

// Caso 1: Tren ENTRANDO y sensor de presión ACTIVADO


if (DI+DD == 1 && sensorValue > limitValue){

while (sensorValue > limitValue)

digitalWrite(PinLEDRojo, HIGH); // Valor HIGH de los LEDs rojos de salida


sensorValue = analogRead(PinSensor);// Lectura del valor del sensor de presión
digitalWrite(PinLEDVerde, LOW); // Valor LOW de los LEDs verdes de salida
digitalWrite(PinLEDAmarillo, HIGH); // Valor HIGH del LED amarillo de salida
digitalWrite(PinZumbador, HIGH); // Valor HIGH del zumbador salida
delay(100);
digitalWrite(PinZumbador, LOW); // Valor HIGH del zumbador salida
delay(100);
digitalWrite(PinZumbador, HIGH); // Valor HIGH del zumbador salida
delay(100);
digitalWrite(PinZumbador, LOW); // Valor HIGH del zumbador salida
delay(500);
for(B = 0; B < 90; B += 1) // Bucle para la bajada de la barrera (de 1º en 1º)
{
myservo.write(B);
}
}
}

// Caso 2: Tren ENTRANDO y sensor de presión DESACTIVADO


if (DI+DD == 1)
{
digitalWrite(PinLEDRojo, HIGH); // Valor HIGH de los LEDs rojos de salida
digitalWrite(PinLEDVerde, LOW); // Valor LOW de los LEDs verdes de salida
digitalWrite(PinLEDAmarillo, LOW); // Valor LOW del LED amarillo de salida
digitalWrite(PinZumbador, HIGH); // Valor HIGH del zumbador salida

28
Sistema electrónico de un paso a nivel

for(B = 0; B < 90; B += 1) // Bucle para la bajada de la barrera (de 1º en 1º)

{
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

// Caso 2.1: Tren EN MEDIO


if (!DI*!DD + DD*DI == 1) //Primera condición: TREN LARGO, segunda: TREN CORTO
{
enmedio = 1;
//digitalWrite(PinZumbador, HIGH); // Valor HIGH del zumbador salida
//delay(500);
//digitalWrite(PinZumbador, LOW); // Valor HIGH del zumbador salida
//delay(500);
}
// Caso 2.2: Tren SALIENDO
if (DD+DI == 1 && enmedio ==1)
{

saliendo = 1;
//digitalWrite(PinZumbador, HIGH); // Valor HIGH del zumbador salida
//delay(500);
//digitalWrite(PinZumbador, LOW); // Valor HIGH del zumbador salida
//delay(500);

if ( DI+DD==0 && saliendo ==1) {


for(B = 90; B>=1; B-=1) // Bucle para la subida de la barrera (de 1º en 1º)
{
myservo.write(B);
}
flag1=1;
} // Llave del if de subida de barrera
} // Fin del bucle
}
}

29

Você também pode gostar