boussole électronique
Répondre à la discussion
Affichage des résultats 1 à 7 sur 7

boussole électronique



  1. #1
    nanard

    boussole électronique


    ------

    bonjour

    Je souhaite réaliser un boussole électronique avec le module CMPSO3. J'utilise pour le développement la plaque EASYPICS 3 (http://www.lextronic.fr/mikro/PP2.htm) et pour écrire et compiler mon programme mikroC (version de démo téléchargeable http://www.mikroe.com/en/compilers/mikroc/pic/)
    le microcontroleur est le pic18f252, j'utilise le module en I2C, j'ai créé le programme je le compil, ok, je le charge dans le pic, ok, mais je n'ai rien en retour.
    voilà le programme:

    unsigned char cap_hex;

    void main (void)
    {
    //TRISC = 0;
    TRISC.F2 = 0;
    TRISC.F1 = 0;
    PORTC.F2 = 1;
    PORTC.F1 = 0;
    Lcd_Init(&PORTB); //initialisation du port B pour l'afficheur LCD
    Lcd_Out(1,1,"Cap:"); //ecrire cap sur le LCD ligne 1 colone 1
    I2C_Init(10000); //initialisation du protocole I2C
    while (1)
    {
    I2C_Start(); //début de l'I2C
    I2C_Wr(0xc0); //envoi de l'adresse de la boussole
    I2C_Wr(1); //on dit que l'on veut lire le registre 1
    I2C_Start();
    I2C_Wr(0xc1); //envoi de la commande de lecture
    cap_hex=I2C_Rd(0); //lecture avec un ACK
    I2C_Stop(); //arret du protocole I2C
    if (cap_hex > 127)
    {
    Lcd_Out(1,5,"1000");
    }
    else
    {
    Lcd_OUT(1,5,"56");
    }
    }
    }

    Est ce quelqu'un voit une erreur, un problème?
    merci @+

    -----

  2. #2
    nanard

    Re : boussole électronique

    personne ne peut m'aider? mon programme vous semble t il bon?
    merci @+

  3. #3
    nanard

    Re : boussole électronique

    bonjour

    J'ai toujours mon problème et j'ai remarqué que lorsque j'alimante mon module cmpso3 il émet un son comme une sorte de vibration est ce normal?
    merci @+

  4. #4
    invitef86a6203

    Re : boussole électronique

    Apparement peu de gens connaissent ce circuit...

    Si l'on regarde leur doc;
    http://www.robot-electronics.co.uk/files/cmps03_lcd03.c
    Il y a des temps d'attente assez long au debut deja , ce que ne fait pas ton prog.
    Ensuite entre chaque mesure.

    Après il faut déterminer ce qui fonctionne ou pas ,
    le LCD fonctionne t il ?
    La lecture avec ack est elle bloquante?

  5. A voir en vidéo sur Futura
  6. #5
    nanard

    Re : boussole électronique

    désolé de répondre que maintenant ms avec les fêtes!

    Oui la partie LCD fonctionne très bien, là où je me pose des questions c'est sur la partie I²C je ne sais pas si elle fonctionne. Je ne sais pas si l'ack est bloquante car j'utilise les librairies internes et dans la notice il nous donnes que la manière de les utiliser et pas comment cela fonctionne.
    J'ai toujours ce bruit est ce normal?
    j'ai mis des pauses comme on le voit sur le prog du lien de freepicbasic mais sa ne fonctionne pas.

    unsigned char cap_hex;

    void main (void)
    {
    TRISC.F2 = 0;
    TRISC.F1 = 0;
    PORTC.F2 = 1;
    PORTC.F1 = 0;
    Lcd_Init(&PORTB); //initialisation du port B pour l'afficheur LCD
    Lcd_Out(1,1,"Cap:"); //ecrire cap sur le LCD ligne 1 colone 1
    I2C_Init(100000); //initialisation du protocole I2C
    while (1)
    {
    I2C_Start(); //début de l'I2C
    Delay_ms(1000); //pause de 100 ms
    I2C_Wr(0xc0); //envoi de l'adresse de la boussole
    Delay_ms(1000); //pause de 100 ms
    I2C_Wr(1); //on dit que l'on veut lire le registre 1
    Delay_ms(1000); //pause de 100 ms
    I2C_Start();
    Delay_ms(1000); //pause de 100 ms
    I2C_Wr(0xc1); //envoi de la commande de lecture
    Delay_ms(1000); //pause de 100 ms
    cap_hex=I2C_Rd(0); //lecture avec un ACK
    Delay_ms(1000); //pause de 100 ms
    I2C_Stop(); //arret du protocole I2C
    if (cap_hex > 127)
    {
    Lcd_Out(1,5,"1000");
    }
    else
    {
    Lcd_OUT(1,5,"56");
    }
    }
    }
    @+

  7. #6
    invitef86a6203

    Re : boussole électronique

    tu devrais profiter du LCD comme il fonctionne pour mettre des lignes de debug afin de déterminer ou ça bloque
    Lcd_Out(1,5,"I2CSTART");
    '
    '

    Lcd_Out(1,5,"I2CWR");

    etc...


    Si tes procedures son buggués tu peut utiliser le fichier I2CM.asm de mon compilateur , il est dans le zip

  8. #7
    nanard

    Re : boussole électronique

    j'ai mis des ligne de débug et j'ai vu que sa bloque à l'envoi de l'adresse. Pour l bruit j'ai demandé à une personne qui connais le module et il m'a dit que se n'ai pas normal je vais donc en commander un autre.
    Je vous tiens au courant.
    @+

Discussions similaires

  1. boussole affolée
    Par invitebfa3c074 dans le forum Physique
    Réponses: 1
    Dernier message: 05/06/2007, 20h32
  2. boussole electronique
    Par invite2435c038 dans le forum Électronique
    Réponses: 3
    Dernier message: 13/04/2007, 08h22
  3. Création d'un système lumineux basé sur une boussole electronique.
    Par invite56a8969e dans le forum Électronique
    Réponses: 31
    Dernier message: 13/07/2006, 09h00
  4. Boussole!!!!
    Par invite090afe0d dans le forum Physique
    Réponses: 5
    Dernier message: 25/11/2005, 11h14
  5. Boussole electronique
    Par invite24896ee4 dans le forum Électronique
    Réponses: 2
    Dernier message: 16/05/2003, 17h07
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...