[Programmation] communiquer en i2c avec un capteur ultrason
Répondre à la discussion
Affichage des résultats 1 à 5 sur 5

communiquer en i2c avec un capteur ultrason



  1. #1
    docEmmettBrown

    communiquer en i2c avec un capteur ultrason


    ------

    Bonjour,
    voila je veux communiquer avec le capteur SRF08 Ultra sonic range : https://www.robot-electronics.co.uk/htm/srf08tech.html (datasheet), pour cela je dois utiliser le protocole i2c, mais j'ai du mal a comprendre ce qu'il faut faire exactement pour recevoir la distance en cm. Je vous montre mon code (c++) :

    mon professeur m'a donné une class I2C qui gere la transmission de donné avec les méthode read et write.

    Code:
    int dataMSB;
    int dataLSB;
    int distance;
    
    I2C i2c(PF_14, PF_3); //SDA = PF_14 et SDL = PF_3
    
    i2c.write(0xE0);//je veux dialoguer avec le capteur dont l'adresse est 0xE0 (adresse par default du capteur)
    i2c.write(0x00);//je veux envoyer une commande au registre du capteur
    i2c.write(0x51);//j'annonce à mon capteur de me retourner la distance en cm
    
    while(1){
    
    i2c.write(0x02);//je demande de recevoir les bits de poids fort de la distance
    dataMSB = read(0xE0);// je récupere les bits de poids fort de la distance
    
    i2c.write(0x03);//je demande de recevoir les bits de poids faible de la distance (un octet)
    dataLSB = read(0xE0);// je récupere les bits de poids faible de la distance (un octet)
    
    distance = (dataMSB<<8)|(dataLSB);
    
    if(distance < 20)
         //allume led rouge
    else
        //éteind led rouge
    Le code ne fonctionne pas, avez vous une idée du pourquoi ?
    j'ai pas l'habitude de lire des datasheets donc j'ai peut etre mal compris ce qu'il fallait faire pour recevoir les données.

    Merci d'avance pour votre aide

    -----

  2. #2
    jiherve

    Re : communiquer en i2c avec un capteur ultrason

    Bonsoir,
    Il faut fournir d'abord l'adresse avant de sélectionner un registre
    i2c.write(0xE0);//je veux dialoguer avec le capteur dont l'adresse est 0xE0 (adresse par default du capteur)
    i2c.write(0x02);//je demande de recevoir les bits de poids fort de la distance
    dataMSB = read(0xE0);// je récupere les bits de poids fort de la distance
    JR
    l'électronique c'est pas du vaudou!

  3. #3
    docEmmettBrown

    Re : communiquer en i2c avec un capteur ultrason

    merci pour ta réponse jiherve, pourtant lors de l'initialisation je dis:
    i2c.write(0xE0);//je veux dialoguer avec le capteur dont l'adresse est 0xE0 (adresse par default du capteur)
    i2c.write(0x00);//je veux envoyer une commande au registre du capteur
    i2c.write(0x51);//j'annonce à mon capteur de me retourner la distance en cm

    donc je dialogue bien avec le capteur, mais a chaque nouvelle demande je dois toujours dire avec qui je parle ?

  4. #4
    jiherve

    Re : communiquer en i2c avec un capteur ultrason

    RE
    oui!
    JR
    l'électronique c'est pas du vaudou!

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

    Re : communiquer en i2c avec un capteur ultrason

    bonjour,

    Rajouter 1 à l'adresse I2C pour LIRE ...
    je verrai donc plutot ceci ..

    Code:
    I2C.Start();
    i2c.write(0xE0);//je veux dialoguer avec le capteur dont l'adresse est 0xE0 (adresse par default du capteur)
    i2c.write(0x02);//je demande de recevoir les bits de poids fort de la distance
    I2C.restart();
    dataMSB = read(0xE1);// je récupere les bits de poids fort de la distance
    I2C.Stop();
    
    I2C.start();
    i2c.write(0xE0);//je veux dialoguer avec le capteur dont l'adresse est 0xE0 (adresse par default du capteur)
    i2c.write(0x03);//je demande de recevoir les bits de poids faible de la distance (un octet)
    I2C.restart();
    dataLSB = read(0xE1);// je récupere les bits de poids faible de la distance (un octet)
    I2C.stop();

Discussions similaires

  1. Capteur ultrason
    Par kenny54000 dans le forum Électronique
    Réponses: 14
    Dernier message: 30/11/2014, 20h59
  2. Capteur ultrason
    Par Jehudiel dans le forum Électronique
    Réponses: 2
    Dernier message: 31/07/2013, 13h19
  3. Capteur Ultrason
    Par mizzovic dans le forum Électronique
    Réponses: 8
    Dernier message: 03/06/2012, 15h53
  4. recherche capteur ultrason avec sortie analogique
    Par invite59dd9621 dans le forum Électronique
    Réponses: 5
    Dernier message: 18/04/2011, 14h01
  5. capteur a ultrason
    Par invite508cbe4c dans le forum Électronique
    Réponses: 1
    Dernier message: 09/03/2009, 12h11
Découvrez nos comparatifs produits sur l'informatique et les technologies.