lunes, 26 de mayo de 2014

Proyecto Puente levadizo con control automático y paso de vehículos


Este proyecto realizado por alumnos de 2º Bachillerato consiste en automatizar un puente levadizo con barrera.

  






El proyecto consta de:

Un mando a distancia SONY que enviará la señal a un receptor de infrarrojos de fabricación casera, para iniciar todo el proceso de paso del barco. Por tanto el mando simulará al vigilante de la torre de control que visualiza la presencia del barco.

Mando Sony Picaxe



Un semáforo que mediante un juego de luces nos avisará de que inmediatamente va a pasar un barco y se va a abrir el puente.



Una barrera accionada con un servo que permitirá abrir o cerrar el paso de vehículos.



El propio puente que realizará los movimientos de apertura y cierre mediante 2 motorreductores conectados a cada una de las alas del mismo.

Motorreductor 5vMotorreductor 5v



2 conmutadores (Finales de carrera) que serán los encargados de marcar el límite superior e inferior de las alas del puente.


Finales de carrera

 Un sensor de infrarrojos SHARP que será el encargado de determinar que el barco, efectivamente ha pasado ya por debajo del puente y enviará la orden de bajada de las alas del mismo.

Sensor infrarrojos Sharp
Todo esto estará controlado por una placa Picaxe 18M2+ con el driver L293D para el control del sentido de giro de los motorreductores.










Esquema de conexiones en la placa Picaxe:

Picaxe


VÍDEO DEL FUNCIONAMIENTO



Código del programa:

'ENTRADAS
'C.1 Sensor Mando
'C.2 Sensor Barco
'Pin5 Final de carrera Arriba
'Pin6 Final de carrera Abajo

 'SALIDAS
'B.0 Led Rojo
'B.1 Led Verde
'B.4 Servo de barrera
'B.6-B.7 Motor del Puente

'VARIABLES
'b1 Lee valor del mando
'b3 Lee el valor del sensor del barco
'b4 Posición de servo

COMIENZO:  'Definimos condiciones iniciales de variables y salidas. Evitamos activaciones indeseadas


b1=1
b4=185
low B.0
high B.1
low B.3
Servo 4,off  'Desactivamos el comando servo       
low B.6
low B.7

Mando: 'Estamos continuamente valorando la tecla pulsada
irin [200], C.1 ,b1
debug b1
if b1=4 then goto Inicio  'Si pulsamos el boton 5 comienza todo
goto Mando


'%%%%%%%%%%%%%%%%%%%COMIENZA TODO EL CICLO
Inicio:

LedRojo:   'El semáforo se pondrá en rojo tras el sonido del zumbador.
high B.0   'rojo encendido
low B.1    'verde apagado
pause 2000


b4=185
Servo 4,b4  'Activamos el comando servo

BajarBarrera:   'Una vez el semáforo en rojo, la barrera se cerrará poco a poco.
low B.0
b6=b4*2
Servopos 4,b4   'Posicionamos en el punto que deseamos. Esta es la fomra exacta cómo se supone que se debe hacer
debug b4
high B.1
let b4=b4-3
Pause 50
low B.1
pause 50
high B.0
pause 50
if b4=80 then goto AbrirPuente
goto Bajarbarrera


AbrirPuente:  'Finalmente, cuando la barrera este bajada, se abrirá el puente para que pase el barco.
Servo 4,off   'Desactivamos el comando servo para evitar problemas con otros como pwmout
pause 2000
Do            'Repetir lo mismo mientras que el final de carrera de arriba esté sin pulsar
low B.6       ' El motor empieza a funcionar y subir el puente.
high B.7
pause 30
low B.6
low B.7
pause 60
loop While pin5=0


If pin5=1 then goto FinalArriba  'Final de carrera de arriba
FinalArriba: 'Si llega a tocar el final de carrera superior
b6=1
high B.6     'El motor para
high B.7

SensorBarco:  'Valoramos mediante el sensor de presencia, si está pasando el barco
Readadc C.2,b3
Debug b3
pause 200

If b3<100 then goto SensorBarco 'No hay barco
If b3>100 then goto BajarPuente 'El sensor analógico detecta el barco.


BajarPuente:   'Inicia el proceso de bajada.
pause 2000
Bajando:
high B.6       'El motor funciona bajando el puente
low B.7
pause 30
low B.6
low B.7
pause 100

If pin6=1 then goto FinalAbajo   'Final de carrera de abajo
If pin6=0 then goto Bajando  'El puente aún no ha subido


FinalAbajo:    'Si llega a tocar el final de carrera inferior

high B.6       'El motor para
high B.7
b5=1           'Cambiamos la variable que activa de nuevo el proceso para que no lo haga

Servo 4,b4  'Activamos el comando servo
SubirBarrera:'La barrera se abrirá, abriendo nuevamente el tráfico.
low B.0
Servopos 4,b4
debug b4
let b4=b4+3
Pause 50
high B.0
pause 50
low B.1
pause 50
high B.1
if b4=185 then goto LedVerde  'Si termina de subir la barrera
goto SubirBarrera

LedVerde:
Servo 4,off  'Desactivamos el comando servo
high B.1 'Verde encendido
low B.0  'Rojo apagado


Goto COMIENZO  'Volvemos al principio a la espera de volver a pulsar el botón de nuevo.



ENHORABUENA!!!
Jorge González, Alejandro Mateo, Jose y Antonio Serrano.

Ies Valle de Leiva

Valle de leiva