PIPETA O DOSIFICADORA DE LÍQUIDO AUTOMÁTICA CASERA.


INTRODUCCIÓN
Según Wikipedia La pipeta es un instrumento volumétrico de laboratorio que permite medir la alícuota de líquido con bastante precisión. Suelen ser de vidrio. Está formada por un tubo transparente que termina en una de sus puntas de forma cónica, y tiene una graduación (una serie de marcas grabadas) indicando distintos volúmenes.
En este proyecto obtendremos una pipeta mucho más sofisticada capaz de no solo controlar el volumen, sino la velocidad de inyección es decir una pipeta digital, en el mercado su precio ronda los 300€ y su exactitud se encuentra en el 2%. Nosotros lo conseguiremos con pocos euros. Además con la posibilidad de controlarlo desde el ordenador con un cambio en el programa, no obstante en este proyecto se controlará por pulsadores.
Con este proyecto se abre la posibilidad a nuevos retos como control de mezclado o amasado, valoraciones químicas y otros proyectos biológicos en mente.

COMPONENTES
- 1 PIC 16F628a
- Regulador de tensión 7805.
-4  Resistencia de 470 ohmios.
-3  Resistencia de 4,7k ohmios.
-4 transistores tip41c
-4 diodos 1n4007.
- Un final de carrera de una impresora.
- 2 pulsadores.
-Fuente alimentación de 18voltios ( impresora rota).
-Motor paso a paso (extraído de impresora rota).
-Display LCD 16x2 compatible con controlador Hitachi 44780.


PROGRAMA:
cmcon=7
on interrupt goto inicio
intcon=%10010000
option_reg.6=0
time var word
contador var word
volumen var word
microlitros var word
time = 0
contador = 0
volumen = 0
microlitros = 0
botonmas var portb.1
intro var portb.2
disable
inicio:
time = 0
contador = 0
volumen = 0
microlitros = 0
low portb.7
low portb.6
low portb.5
low portb.4
lcdout $fe,1,"Pipeta"
lcdout $fe,$C0,"Digital"
pause 3000
goto inicio1
inicio1:
lcdout $fe,1,"Introduzca nº"
lcdout $fe,$c0,"microlitros"
pause 2000
goto inicio2
inicio2:
if botonmas=0 then
microlitros =microlitros+70
lcdout $fe,1,"ul=",dec microlitros
endif
if intro=0 then goto tiempo
pause 100
goto inicio2
tiempo:
pause 500
lcdout $fe,1,"Introduzca"
lcdout $fe,$c0,"tº en ms"
pause 2000
goto tiempo1
tiempo1:
if botonmas=0 then
time=time+100
lcdout $fe,1,"ms=",dec time
endif
if intro=0 then goto inyectando
pause 100
goto tiempo1
inyectando:
lcdout $fe,1,"Inyectando"
lcdout $fe,$c0,"gracias"
high portb.7                 '1
pause time
low portb.7
contador = contador +70
if contador = microlitros then final
high portb.6                 '2
pause time
low portb.6
contador = contador +70
if contador = microlitros then final
high portb.5                 '3
pause time
low portb.5
contador = contador +70
if contador = microlitros then final
high portb.4                '4
pause time
low portb.4
contador = contador +70
if contador = microlitros then final
goto inyectando
final:
lcdout $fe,1,"Inyectado"
lcdout $fe,$c0,"terminado"
pause 3000
lcdout $fe,1,"PULSE BOTON"
lcdout $fe,$c0,"LLENADO"
pause 2000
GOTO llenado
llenado:
if botonmas=0 then llenando
lcdout $fe,1,"ESPERANDO"
lcdout $fe,$c0,"LLENADO"
PAUSE 1000
GOTO llenado
llenando:
intcon=%10010000
option_reg.6=0
enable
lcdout $fe,1,"Llenando"
lcdout $fe,$c0,"gracias"
high portb.4                 '1
pause 1000
low portb.4
pause 1000
high portb.5               '2
pause 1000
low portb.5
pause 1000
high portb.6                '3
pause 1000
low portb.6
pause 1000
high portb.7               '4
pause 1000
low portb.7
pause 1000
goto llenando

end
EXPLICACIÓN DEL PROYECTO.                                
Para el proyecto hemos utilizado el PIC 16f628A, un lcd 16x2 y una buena etapa de potencia constituido por 4 transistores tip41c. En el programa de este hemos habilitado la interrupción, con el cual avisamos al pic que ya sea llenado la jeringa con lo cual volvemos a empezar, por lo demás del programa es muy simple. Para la comunicación se utiliza dos pulsadores uno  para poner el valor y el otro actúa como un intro. Una vez seleccionado el volumen se le da intro, aparece el tiempo lo seleccionamos e inyectamos.
Una vez que termina se queda a la espera al llenado, que se realizará cuando pulsemos el botón valor. El motor girara en sentido contrario hasta que alcance el final de carrera.
La calibración es fácil solo hace falta saber el nº de pasos que hace falta para vaciar 10ml, en mi caso se dieron 143 pasos. 70microlitro por paso.
CIRCUITO


FOTOGRAFIAS DEL MONTAJE


PREGUNTAS Y SUGERENCIAS.

Para cualquier pregunta puedes realizármela al correo joliva68@ono.com master@picpc.es