Autor Tema: uso basico de ultrasonico con microcode  (Leído 5016 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado jesus flores

  • PIC10
  • *
  • Mensajes: 17
uso basico de ultrasonico con microcode
« en: 05 de Febrero de 2017, 20:22:40 »
buenas tardes, he estado trabajando con el sensor ultrasonico HC_SR04 y un pic 16F877A, el punto es que he buscado y, al pareser entiendo el funcionamiento del este, pero no me responde el programa,la LCD enciende, y digitaliza todo bien, pero la distancia no la marca, esta queda siempre en 0, me pueden ayudar?
uso microcode,y ya intente con pulsout y nada,mes de mucha utilidad expertos :? :(

define osc 4
define LCD_DREG PORTD
DEFINE LCD_BITS 4
DEFINE LCD_DBIT 4
DEFINE LCD_RSREG PORTD
DEFINE LCD_RSBIT 2
DEFINE LCD_EREG PORTD
DEFINE LCD_EBIT 3
SYMBOL TRIG=PORTA.5
SYMBOL ECHO=PORTE.0
distancia var word
tiempo var word
TRISD=0
TRISA=0
TRISE=%111
LCDOUT $FE,1

INICIO:
LOW trig
pauseus 2
high trig
pauseus 10
low trig
pauseus 2
pulsin echo, 1, tiempo
pause 1
LCDOUT $FE,$80,"DISTANCIA: ",DEC tiempo,"  "
GOTO INICIO
END

Desconectado Stban

  • PIC12
  • **
  • Mensajes: 78
Re:uso basico de ultrasonico con microcode
« Respuesta #1 en: 05 de Febrero de 2017, 20:41:56 »
Estas usando puertos que usan comparadores y módulos analógicos, necesitas desactivar esta función porque estás usando entradas digitales. O solo cambia de puerto.

Desconectado Stban

  • PIC12
  • **
  • Mensajes: 78
Re:uso basico de ultrasonico con microcode
« Respuesta #2 en: 05 de Febrero de 2017, 20:48:13 »
O solo agrega cmcon=7 y adcon1=6 al inicio del programa

Desconectado jesus flores

  • PIC10
  • *
  • Mensajes: 17
Re:uso basico de ultrasonico con microcode
« Respuesta #3 en: 05 de Febrero de 2017, 21:00:54 »
O solo agrega cmcon=7 y adcon1=6 al inicio del programa
gracias, lo hare, pero como va, lo pongo despues de los define?
algo asi?
muchas gracias por tu ayuda

define osc 4
define LCD_DREG PORTD
DEFINE LCD_BITS 4
DEFINE LCD_DBIT 4
DEFINE LCD_RSREG PORTD
DEFINE LCD_RSBIT 2
DEFINE LCD_EREG PORTD
DEFINE LCD_EBIT 3

cmcon=7
adcon1=6

SYMBOL TRIG=PORTA.5
SYMBOL ECHO=PORTE.0
distancia var word
tiempo var word
TRISD=0
TRISA=0
TRISE=%111
LCDOUT $FE,1

INICIO:

Desconectado Stban

  • PIC12
  • **
  • Mensajes: 78
Re:uso basico de ultrasonico con microcode
« Respuesta #4 en: 06 de Febrero de 2017, 15:55:02 »
Ahi está bien, otra observación, el dato leido no es la distancia, necesitas hacer una conversión para obtener la distancia real, el cálculo viene en el datasheet del dispositivo.

Desconectado jesus flores

  • PIC10
  • *
  • Mensajes: 17
Re:uso basico de ultrasonico con microcode
« Respuesta #5 en: 07 de Febrero de 2017, 00:48:36 »
muchas gracias,saludos

Desconectado jesus flores

  • PIC10
  • *
  • Mensajes: 17
Re:uso basico de ultrasonico con microcode
« Respuesta #6 en: 07 de Febrero de 2017, 01:12:27 »
muchas gracias por tu aporte,me es de mucha ayuda, igual soy nuevo,estudiante de 2do semerstres de la carrera de electronica, pero me gusta mucho practicar,he estado estudian tus aportes y logre esto:
a pesar de todo sigue sin medirme nada,tenia otra formula que yo habia despejado,(D=tiempo/58) ya que el tiempo medido es el doble,  de ahi se dividia entre la vel. del sonido.en que estoy mal, me podrian mandar un pequeño ejemplo? me seria de mucha ayuda, ya lo realize en arduino, pero le veo mas utilida a un pic.saludos
define osc 4
define LCD_DREG PORTD
DEFINE LCD_BITS 4
DEFINE LCD_DBIT 4
DEFINE LCD_RSREG PORTD
DEFINE LCD_RSBIT 2
DEFINE LCD_EREG PORTD
DEFINE LCD_EBIT 3

SYMBOL TRIG=PORTA.5
SYMBOL ECHO=PORTE.0

distancia var word
tiempo var word

TRISD=0
TRISA=0
TRISE=%111

cmcon=7
adcon1=6

LCDOUT $FE,1

INICIO:
LOW trig
pauseus 2
high trig
pauseus 10
low trig
pauseus 2
pulsin echo,1,tiempo
pause 1
distancia=((tiempo)*(1/29))/2
LCDOUT $FE,$80,"DISTANCIA: ",DEC distancia,"  "
GOTO INICIO
END

Desconectado dogflu66

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 3549
Re:uso basico de ultrasonico con microcode
« Respuesta #7 en: 07 de Febrero de 2017, 11:56:53 »
Saludos desde Granada, España.

Desconectado Stban

  • PIC12
  • **
  • Mensajes: 78
Re:uso basico de ultrasonico con microcode
« Respuesta #8 en: 08 de Febrero de 2017, 00:26:42 »
Prueba este código espero que funcione:
Código: [Seleccionar]
define osc 4
define LCD_DREG PORTD 
DEFINE LCD_DBIT 4
DEFINE LCD_RSREG PORTD
DEFINE LCD_RSBIT 2
DEFINE LCD_EREG PORTD
DEFINE LCD_EBIT 3
DEFINE LCD_BITS 4
CMCON = 7
ADCON1 = 6
TRISA.5 = 0
TRISD = 0
TRISE.0 = 1

SYMBOL TRIG = PORTA.5
SYMBOL ECHO = PORTE.0

distancia var word
tiempo var word
RES con 10         'constante resolución pulsin 4 MHz = 10 us

LCDOUT $FE, 1 :

INICIO:
    LOW trig                                 
    Pulsout trig, 1                           
    PULSin echo, 1, tiempo                         
    distancia = (tiempo * RES) / 58  'en cm                           
    LCDOUT $FE, $80, "DISTANCIA: ", DEC distancia, "  " 
    LCDOUT $FE, $c0, "echo: ", DEC tiempo, "  "   
    pause 100
GOTO INICIO
END

Desconectado jesus flores

  • PIC10
  • *
  • Mensajes: 17
Re:uso basico de ultrasonico con microcode
« Respuesta #9 en: 08 de Febrero de 2017, 01:29:41 »
Prueba este código espero que funcione:

muchas gracias, la verdad no entiendo donde estaba mi error, por que la constante que veo en el codigo, yo lo hice hace  penas una minutos pero asi:
d=(tiempo*10)/58
me podrias explicar, quiero aprender, y muchas gracias por tu tiempo


 

anything