TODOPIC

Mecatrónica => Robótica => Mensaje iniciado por: yiyeyo en 16 de Febrero de 2011, 14:56:53

Título: Sensor SRF02 y mikroC
Publicado por: yiyeyo en 16 de Febrero de 2011, 14:56:53

Hola a todos,

Compré hace un mes 3 sensores SFR02. Estoy un poco desesperado, porque aun siguiendo las indicaciones del datasheet no consigo realizar una lectura de este sensor.
He probado ya casi todo. El código que he utilizado y que según la hoja de datos debería funcionar es el siguiente:

void main()
{
    unsigned short i;
    char  cadena[20];
    unsigned short dato;

    INTCON.GIE=0;            //DesHabilitar interrupciones general
    usart_init(9600);
   
    Glcd_Init(&PORTB,0,1,2,3,5,4,&PORTD);
    Glcd_Fill(0x00);

    i=0;
    while(1)
    {
      usart_write(0);             //Direccionamos el dispositivo SFR02
      usart_write(0x51);          //Indicamos que queremos realizar una medida en cm.
      delay_ms(120);              //Damos tiempo para que el dispositivo realice dicha medida

      usart_write(0);             //Direccionamos el dispositivo
      usart_write(0x5E);          //Comando para indicar que queremos leer

      while(!usart_data_ready()){} //Esperamos a tener datos que recibir
     
      while(usart_data_ready())     //Mientras tenemos datos que recibir
      {
        dato=usart_read();
        sprintf(cadena,"%d",dato);
        glcd_write_text(cadena,1,i,1);
        i++;
        if(i>6) i=0;
        delay_ms(100);
      }
      delay_ms(1000);
    }
}


El sensor parece que recibe la señal, ya que el led se enciende cuando recibe su dirección (no se enciende cuando le enviamos otra dirección). Pero al recibir datos por el puerto serie y mostrarlos por la pantalla, siempre se recibe lo mismo. He probado a desconectar el sensor y cortocircuitar TX con RX y recibo exactamente lo mismo que cuando tengo el sensor.

Alguien tiene alguna idea? Que estoy haciendo mal? Se me puede haber roto algo?? (He probado con dos sensores sacados del paquete)

He probado a mandar los comandos 81 (Real ranging mode) y luego 94 (Get range). También he probado el codigo 84 (Real ranging mode con respuesta automatica) y siempre obtengo valores fijos.

Muchas gracias
Título: Re: Sensor SRF02 y mikroC
Publicado por: tannke en 20 de Mayo de 2011, 07:54:38
Edito... lo que habia puesto no es correcto.  Voy a ver y vuelvo a contestar.
Has provado por I2C?
Un saludo
Título: Re: Sensor SRF02 y mikroC
Publicado por: alcubo01 en 23 de Mayo de 2011, 10:03:12

 Hola, yo lo he usado en modo I2C y no he tenido problemas, a ver si te podemos echar una mano para que lo hagas andar en modo Serie.

 + ¿Tienes el pin modo a 0V?

 + La lectura que haces del puerto serie parece un poco extraña...