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

Photographie ultra-rapide, pilotage d'imprimante 3D ou de CNC, fabrication de bière.... Enfin tout ce que le Raspberry peut gérer trouvera sa place dans cette rubrique

Modérateur : Francois

Répondre
Lynda
Messages : 4
Enregistré le : ven. 24 déc. 2021 20:38

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

Message par Lynda » mar. 22 févr. 2022 14:27

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
}

destroyedlolo
Raspinaute
Messages : 1587
Enregistré le : dim. 10 mai 2015 18:44
Localisation : Dans la campagne à côté d'Annecy
Contact :

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

Message par destroyedlolo » mer. 23 févr. 2022 00:38

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 ?
  • BananaPI : Gentoo, disque SATA de 2 To
  • Domotique : 1-wire, TéléInfo, Tablette passée sous Gentoo, ESP8266
  • Multimedia par DNLA
  • Et pleins d'idées ... et bien sûr, pas assez de temps.
Un descriptif de ma domotique 100% fait maison.

Artemus24
Raspinaute
Messages : 1077
Enregistré le : ven. 15 sept. 2017 19:15

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

Message par Artemus24 » dim. 27 févr. 2022 03:17

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.
@+
RPI4B/8GB + Argon FanHAt
Rpi3A+, Rpi3B+
RPi 2B + Joy-It I2C Serial 20x4 2004 LCD Module
RPi 2B + PIM273 Unicorn HAT HD 16x16 Leds RGB
RPi0v1.3, RPi0W + LibreElec/Kodi, Rpi0WH + Tuner TV HAT
NodeMCU ESP32

Répondre

Retourner vers « Les applications spécialisées du Raspberry Pi »