PIPETA MEJORADA O LASTRE DE SUBMARINO AUTOMÁTICA CASERA.
INTRODUCCIÓN
Este proyecto tiene como fin crear un sistema para dosificar volumen de líquidos, si en el anterior proyecto de pipeta empleábamos un motor paso a paso, en este utilizaremos un simple motor DC, permitiéndome aumentar el volumen de liquido hasta los 60ml, necesarios para los proyectos nuevos que tengo entre mano, como mezcladora de hormigones refractarios inteligente y el lastre de un submarino con cámara de foto incorporada.
COMPONENTES Y CIRCUITO
PROGRAMAS:
PROGRAMA PRUEBA PUENTE H
cmcon = 7
trisb=0
derecha var porta.1
izquierda var porta.2
mder var portb.1
mizq var portb.2
ok var portb.3
gosub todobien
inicio:
if derecha = 0 then giraderecha
if izquierda = 0 then giraizquierda
goto inicio
giraderecha:
high mder
pause 500
low mder
gosub todobien
goto inicio
giraizquierda
high mizq
pause 500
low mizq
gosub todobien
goto inicio
todobien:
high ok
pause 1000
low ok
return
end
PROGRAMA CUENTA MICROLITROS
INCLUDE "modedefs.bas"
cmcon=7
pulsos var word
define lcd_dreg portb
define lcd_dbit 4
define lcd_rsreg portb
define lcd_rsbit 1
define lcd_ereg portb
define lcd_ebit 2
microlitros var word
cuenta var word
entrada var porta.0
botonmas var porta.1
intro var porta.2
ok var portb.0
cuenta = 0
microlitros =0
low porta.3
inicio:
if intro=0 then goto inicio1
lcdout $fe,1,"nº=",dec cuenta
pause 1000
goto inicio
inicio1:
cuenta=-600
microlitros=0
lcdout $fe,1,"Introduzca nº"
lcdout $fe,$c0,"microlitros"
pause 2000
goto inicio2
inicio2:
if botonmas=0 then
microlitros =microlitros+100
lcdout $fe,1,"ul=",dec microlitros
endif
if intro=0 then goto inyectando
pause 100
goto inicio2
inyectando:
lcdout $fe,1,"Inyectando"
lcdout $fe,$c0,"gracias"
serout portb.3,n2400,["1"]
goto arrancar
arrancar:
lcdout $fe,1,"nº=",dec cuenta
if entrada = 1 then contar
goto arrancar
contar:
if entrada = 1 then contar
pause 50
cuenta = cuenta +100
if cuenta= microlitros then inter
goto arrancar
inter:
high porta.3
pause 1000
low porta.3
goto inicio
end
PROGRAMA CONTROL DEL MOTOR
INCLUDE "modedefs.bas"
cmcon = 7
derecha var porta.1
izquierda var porta.2
mder var portb.1
mizq var portb.2
ok var portb.3
start var byte
high ok
pause 1000
low ok
on interrupt goto esperallenado
intcon=%10010000
option_reg.6=1
disable
inicio:
serin porta.3,n2400,start
if start = "1" then giraderecha
goto inicio
giraderecha:
intcon=%10010000
option_reg.6=1
enable
high mder
pause 1000
low mder
goto giraderecha
disable
esperallenado:
low mder
if portb.6 = 0 then llenando
pause 200
goto esperallenado
llenando:
if portb.4 = 0 then inicio
high mizq
pause 1000
low mizq
goto llenando
end
EXPLICACIÓN DEL PROYECTO.
Para el mecanismo de accionamiento del embolo, se empleo el movimiento rectilíneo de una tuerca sobre un tornillo en giro. O lo que es lo mismo un husillo. Para controlar el volumen se utilizó un optoacoplador colocado sobre un disco dividido en 4 partes para que me diera una resolución de 0,1ml.
El motor con su engranaje se extrajo del mecanismo de una impresora rota.
FOTOGRAFIAS DEL MONTAJE
ver video.
PREGUNTAS Y SUGERENCIAS.
Para cualquier pregunta puedes realizármela al correo joliva68@ono.com master@picpc.es