Page 1 sur 1

Récupérer les données d'un capteur en i2c

Posté : mar. 22 févr. 2022 14:27
par Lynda
Bonjour,
je travaille sur un projet pour le développement d'une centrale inertielle, soit la récupération des données d'un capteur 10 DOF et leur affichage au sein d'une IHM.
j'ai réussi a établir la connexion entre mon programme et le capteur mais je ne vois pas comment je pourrais faire pour récupérer les données. Est ce que vous avez des idées de fonctions que je peux utiliser pour ça svp?
Voila a quoi ressemble mon code:
#include "mainwindow.h"
#include <QApplication>
#include <cstdio>
#include <iostream>
#include <unistd.h>
#include <fcntl.h>
#include <sys/ioctl.h>

using namespace std;
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWindow w;

int file_i2c;
int length;
int buffer[4];
char *filename= (char*) "/dev/i2c-1";

if((file_i2c=open(filename, O_RDWR))<0)
{
cout<<"fail to open I2C bus"<<endl;
}
int addr= 0x77;
if(ioctl(file_i2c, 0x0703, addr)<0)
{
cout<<"failed to acquire bus access or talk to the slave"<<endl;
}
length=4;
if(read(file_i2c, buffer,length)!=length)
{
cout<<"Failed to read from the i2c bus"<<endl;

}else {
// int nb=read(file_i2c,buffer,length);
// cout<<"nb"<<nb<<endl;
//je ne sais pas quoi mettre dans cette partie
}

Re: Récupérer les données d'un capteur en i2c

Posté : mer. 23 févr. 2022 00:38
par destroyedlolo
Bonjour,

Et bien, que dire d'autre que d'aller voir le datasheet du composant pour voir quelle(s) adresse(s) lire pour récupérer les donner et surtout, en suivant quel protocole ?

Re: Récupérer les données d'un capteur en i2c

Posté : dim. 27 févr. 2022 03:17
par Artemus24
Salut à tous.

Ca ressemble à du C++, mais à y regarder de plus près, un bloc ne se met pas entre crochet [ ] mais entre accolade { }.

Vous devez faire une boucle infinie et à l'intérieur de celle-ci faire une lecture de votre capteur à intervalle régulier.

Cordialement.
Artemus24.
@+