Estoy usando el sensor ping de parallax para medir distancia. Ejemplo: se tiene una distancia de referencia cualquiera (en este caso 50 cm) cuando la distancia sea menor, entonces la salida en un pin del pic sera alta (5v),(para activar un relay o encender un led) y que se mantenga en alto un tiempo (en este caso 5s para probar) caso contrario la salida del pic sera baja(0v), solo eso.
Estoy utilizando el pic16f628a, uso el puerto b.7 como entrada de sensor ping y el puerto a.1 como salida.
El problema es que no obedece al programa del pic, ahí les dejo el código en pbp, haber si estoy haciendo algo mal.
Estoy utilizando el pic16f628a, uso el puerto b.7 como entrada de sensor ping y el puerto a.1 como salida.
El problema es que no obedece al programa del pic, ahí les dejo el código en pbp, haber si estoy haciendo algo mal.
Código:
define OSC 4
Define ONINT_USED 1
trisa.1=0
porta.1=0
ping var porta.0
Scale var word 'raw x 10.00 =uS
Cm var word '1/29.034(ancho**)
Scale = 10
cm = 2257
Dist var word 'raw medida
cem var word
main:
Goto Get_Sonar 'leer el valor del sensor
after_Get_Sonar:
cem =Dist ** Cm 'convertir a centimetros
if cem<=50 then
high porta.1
pause 5000
goto main
else
low porta.1
endif
'pause 500
GOTO main
Get_Sonar:
LOW Ping 'hacer el disparo 0-1-0
PULSOUT Ping, 1 'activar sensor
PULSIN Ping, 1, Dist 'medir el eco del pulso
Dist = Dist * Scale 'convertir a uS
Dist = Dist / 2
goto after_Get_Sonar
Última edición por un moderador: