Haz una pregunta
  Foros de Electrónica » Diseño digital » Interfaces y Programación
Foros Registrarse ¿Olvidaste tu contraseña?

Temas similares

18/11/2012 #1


sensor ultrasonido ping con pic16f628a
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.
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
19/11/2012 #2
Moderador

Avatar de D@rkbytes

koko1 dijo: Ver Mensaje
El problema es que no obedece al programa del pic
Saludos.
Te recomiendo que incluyas la palabra de configuración del PIC en la cabecera del programa.
Puedes usar algo como esto:
Código:
@ DEVICE PIC16F628A    ; Microcontrolador utilizado
; Palabra de configuración
@ DEVICE INTRC_OSC_NOCLKOUT,PROTECT_OFF,CPD_OFF,WDT_OFF,MCLR_OFF,PWRT_ON,BOD_OFF,LVP_OFF
;*******************************************************************************
Recuerda que el PIC16F628A tiene comparadores analógicos en el puerto A, y estas usando RA1 (AN1)
Para hacer el puerto A digital I/O tienes que establecer el registro CMCON con valor 7 (CM<2:0> = 111)
CMCON = 7

Suerte.
21/11/2012 #3


gracias por la respuesta, creo que era lo único que faltaba ahora ya funciona, gracias de nuevo..
Respuesta
¿Tienes una mejor respuesta a este tema? ¿Quieres hacerle una pregunta a nuestra comunidad y sus expertos? Registrate

Buscar más temas sobre:
Lupa Interfaces y Programación

Lenguajes de programación, gestión y manejo de puertos

Cerrar
Foros de Electrónica » Diseño digital » Interfaces y Programación

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO ©2011, Crawlability, Inc.