ROCKETRY FRANCE
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
Le Deal du moment : -40%
-40% sur le Pack Gaming Mario PDP Manette filaire + ...
Voir le deal
29.99 €

mon ARDUINO Uno avec le I2C partagé

5 participants

Page 1 sur 2 1, 2  Suivant

Aller en bas

 mon ARDUINO Uno avec le I2C partagé Empty mon ARDUINO Uno avec le I2C partagé

Message par lem75pat Dim 15 Aoû - 15:14

Bonjour

Oui j'ai continué mes achats chez Saint Quentin Radio, et maintenant (bien que tant mieux) je me retrouve
sur les mêmes pins de mon UNo (pins 4 & 5 , SCL SDA) avec :
capteur pression BMP180
accéléromètre triaxes MPU6050
horloge temps réel DS3231

Comment faire pour utiliser 'tout le monde' ?
lem75pat
lem75pat

Messages : 781
Date d'inscription : 08/04/2016
Localisation : Paris

Revenir en haut Aller en bas

 mon ARDUINO Uno avec le I2C partagé Empty Re: mon ARDUINO Uno avec le I2C partagé

Message par Antoine Lun 16 Aoû - 14:08

Le protocole I2C (SCL SDA) est un bus qui permet aux équipements d'être branchés 'ensemble'.
(I2C sur Wikipedia)). Dans certains cas d'utilisation, il faut prendre la précaution d'ajouter une résistance sur les lignes du bas.

Dans le début du code du code, tu dois déclarer tes composants et les librairies associées
Exemple :
Code:
#include <Wire.h> //I2C library
#include "SparkFunMPL3115A2.h"
//capteur de pression
MPL3115A2 myPressure;

et ensuite les lancer :
Code:
void setup()
{
  Wire.begin();  // Init port I2C
  Serial.begin(9600); // Init port série

  myPressure.begin(); // capteur de pression actif
  ...
}

Et cela pour tous tes capteurs.
Antoine
Antoine

Messages : 1068
Date d'inscription : 13/01/2019
Age : 48
Localisation : Chateau Thierry

Revenir en haut Aller en bas

 mon ARDUINO Uno avec le I2C partagé Empty Re: mon ARDUINO Uno avec le I2C partagé

Message par lem75pat Lun 16 Aoû - 16:09

Bonjour

Je viens de copier coller, je te remercie antoine
lem75pat
lem75pat

Messages : 781
Date d'inscription : 08/04/2016
Localisation : Paris

Revenir en haut Aller en bas

 mon ARDUINO Uno avec le I2C partagé Empty Re: mon ARDUINO Uno avec le I2C partagé

Message par runfola jean claude Lun 16 Aoû - 17:12

je suis intéressé PATRICK  ,dès que tu as fait tes tests de bon fonctionnement je suis preneur et a mon tour de faire des montages avec l'arduino
@+RJC

runfola jean claude

Messages : 656
Date d'inscription : 01/04/2016
Age : 80
Localisation : missillac

Revenir en haut Aller en bas

 mon ARDUINO Uno avec le I2C partagé Empty Re: mon ARDUINO Uno avec le I2C partagé

Message par Antoine Lun 16 Aoû - 20:21

Ensuite, il faut dans la boucle "loop" faire appel aux fonctions dédiées pour récupérer les données utiles.
Sur le site d'adafruit qui vend ce type de capteurs, tu trouveras des exemples bien documentés de codes pour les utiliser.
Antoine
Antoine

Messages : 1068
Date d'inscription : 13/01/2019
Age : 48
Localisation : Chateau Thierry

Revenir en haut Aller en bas

 mon ARDUINO Uno avec le I2C partagé Empty Re: mon ARDUINO Uno avec le I2C partagé

Message par bdureau Lun 16 Aoû - 21:21

fais juste un programme simple qui affiche l'altitude ou la pression sur le port serie.
Ensuite tu regcouvre avec une paille le capeur de pression et tu aspires pour simuler un changement d'altitude
bdureau
bdureau

Messages : 5018
Date d'inscription : 28/03/2016
Age : 52
Localisation : 92150 Suresnes (Région parisienne)

http://rocket.payload.free.fr/

Revenir en haut Aller en bas

 mon ARDUINO Uno avec le I2C partagé Empty Re: mon ARDUINO Uno avec le I2C partagé

Message par lem75pat Mar 17 Aoû - 0:13

Bonsoir

Merci
Je vais faire les choses dans l'ordre pour répondre à tous

Voici déjà mon programme d'essai pour le BMP180 :

#include
#include

SFE_BMP180 bmp180;
float Po = 1013.0;

void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
bool success = bmp180.begin();
if (success) {
Serial.println("BMP180 init success");
}
}

void loop() {
// put your main code here, to run repeatedly:
char status;
//int entier;
double T, P, alt;
bool success = false;

status = bmp180.startTemperature();

if (status != 0) {
// entier = status; // 5 pratiquement
http://Serial.println(entier);
delay(1000); // 1000 d'origine 100 voire 50 fonctionne encore
status = bmp180.getTemperature(T);

if (status != 0) {
// entier = status; // 1 pratiquement
http://Serial.println(entier);
status = bmp180.startPressure(3);

if (status != 0) {
//entier = status; // 26 pratiquement
http://Serial.println(entier);
delay(status);
status = bmp180.getPressure(P, T);

if (status != 0) {
//entier = status; // 1 pratiquement
http://Serial.println(entier);
alt = bmp180.altitude(P, Po);

Serial.print("Altitude: ");
Serial.print(alt);
Serial.println(" Meters");
}
}
}
}
}


je les compare avec ce que m'a répondu antoine :

#include //I2C library
#include "SparkFunMPL3115A2.h"
//capteur de pression
MPL3115A2 myPressure;

void setup()
{
Wire.begin(); // Init port I2C
Serial.begin(9600); // Init port série

myPressure.begin(); // capteur de pression actif


A première vue, il faudrait que je trouve puis examine le fichier SFE_BMP180.h
lem75pat
lem75pat

Messages : 781
Date d'inscription : 08/04/2016
Localisation : Paris

Revenir en haut Aller en bas

 mon ARDUINO Uno avec le I2C partagé Empty Re: mon ARDUINO Uno avec le I2C partagé

Message par lem75pat Mar 17 Aoû - 0:15


#include
#include
lem75pat
lem75pat

Messages : 781
Date d'inscription : 08/04/2016
Localisation : Paris

Revenir en haut Aller en bas

 mon ARDUINO Uno avec le I2C partagé Empty Re: mon ARDUINO Uno avec le I2C partagé

Message par lem75pat Mar 17 Aoû - 0:16


#include Wire.h
#include SFE_BMP180.h
lem75pat
lem75pat

Messages : 781
Date d'inscription : 08/04/2016
Localisation : Paris

Revenir en haut Aller en bas

 mon ARDUINO Uno avec le I2C partagé Empty Re: mon ARDUINO Uno avec le I2C partagé

Message par bdureau Mar 17 Aoû - 10:21

http://Serial.println(entier); ???????? je doute que ça fonctionne
bdureau
bdureau

Messages : 5018
Date d'inscription : 28/03/2016
Age : 52
Localisation : 92150 Suresnes (Région parisienne)

http://rocket.payload.free.fr/

Revenir en haut Aller en bas

 mon ARDUINO Uno avec le I2C partagé Empty Re: mon ARDUINO Uno avec le I2C partagé

Message par lem75pat Mar 17 Aoû - 14:31

Bonjour

Oui c'est comme la 2CV de Bourvil après sa 'rencontre' avec louis de Funès
En fait c'est l'éditeur du forum ('câblé' si je puis dire pour le langage html) qui interprète autrement (à sa façon)
les <  >  après include  et les // des commentaires

Le programme que je vous ai plaçé a des instructions endormies suite à mes essais, mais qui fonctionnent très bien
avec le moniteur série
Pour les essais du capteur de pression, j'ai des idées, je vous montrerais cela quand je vous verrais tous

Sinon voilà mon programme net d'origine :

#include Wire.h
#include SFE_BMP180.h

SFE_BMP180 bmp180;
float Po = 1013.0;

void setup() {
 // put your setup code here, to run once:
 Serial.begin(9600);
 bool success = bmp180.begin();
 if (success) {
   Serial.println("BMP180 init success");
 }
}

void loop() {
 // put your main code here, to run repeatedly:        
 char status;
 //int entier;
 double T, P, alt;
 bool success = false;

 status = bmp180.startTemperature();

 if (status != 0) {
         // entier = status;            // 5 pratiquement
           ;Serial.println(entier);
    delay(1000);     // 1000 d'origine   100 voire 50 fonctionne encore
   status = bmp180.getTemperature(T);

   if (status != 0) {
         // entier = status;            // 1 pratiquement
           ;Serial.println(entier);
      status = bmp180.startPressure(3);

     if (status != 0) {
           //entier = status;            // 26 pratiquement
           ;Serial.println(entier);
       delay(status);
       status = bmp180.getPressure(P, T);

       if (status != 0) {
           //entier = status;            // 1 pratiquement
           ;Serial.println(entier);
         alt = bmp180.altitude(P, Po);

         Serial.print("Altitude: ");
         Serial.print(alt);
         Serial.println(" Meters");
       }
     }
   }
 }
}
lem75pat
lem75pat

Messages : 781
Date d'inscription : 08/04/2016
Localisation : Paris

Revenir en haut Aller en bas

 mon ARDUINO Uno avec le I2C partagé Empty Re: mon ARDUINO Uno avec le I2C partagé

Message par lem75pat Mer 25 Aoû - 18:08

Bonjour

Avec un programme simple sur mon ARDUINO Uno, j'ai pu déterminer les adresses I2C pour chacun des éléments
Cela m'a donné
capteur BMP180, adresse 119 (77h)
capteur MPU6050, adresse 104 (68h)
interface PCF8591, adresse 72 (48h)
horloge temps réel, adresses 87 & 104 (57h & 68h)

Il y a une collision pour l'horloge temps réel et le capteur MPU6050, sinon pour les capteurs entre eux, ça va

Voici le programme utilisé :

include

int index;
int reponse;

void setup() {
Serial.begin(9600);
Serial.println("Initialize 1");
Wire.begin(); join i2c bus (address optional for master)
Serial.println("Initialize 2");
delay(1000);
for (index=0; index<128; index++)
{
Serial.print("Envoyé ");
Wire.beginTransmission(index);
Serial.print(index);
delay(100);
Serial.print(" Répondu ");
reponse = Wire.endTransmission();
Serial.println(reponse);
delay(100);
}
}

void loop() { }

0:success
1:data too long to fit in transmit buffer
2:received NACK on transmit of address
3:received NACK on transmit of data
4:other error

lem75pat
lem75pat

Messages : 781
Date d'inscription : 08/04/2016
Localisation : Paris

Antoine aime ce message

Revenir en haut Aller en bas

 mon ARDUINO Uno avec le I2C partagé Empty Re: mon ARDUINO Uno avec le I2C partagé

Message par bdureau Mer 25 Aoû - 22:03

Qu'est ce que tu entend par collision? Ils sont à la même adresse ?
bdureau
bdureau

Messages : 5018
Date d'inscription : 28/03/2016
Age : 52
Localisation : 92150 Suresnes (Région parisienne)

http://rocket.payload.free.fr/

Revenir en haut Aller en bas

 mon ARDUINO Uno avec le I2C partagé Empty Re: mon ARDUINO Uno avec le I2C partagé

Message par Antoine Mer 25 Aoû - 22:16

parfois un cavalier permet de changer l'adresse
Antoine
Antoine

Messages : 1068
Date d'inscription : 13/01/2019
Age : 48
Localisation : Chateau Thierry

Revenir en haut Aller en bas

 mon ARDUINO Uno avec le I2C partagé Empty Re: mon ARDUINO Uno avec le I2C partagé

Message par lem75pat Jeu 26 Aoû - 10:51

Bonjour

Oui Boris, nous avons @68h pour MPU6050 et R T C

J'ai téléchargé les datasheets pour les c i DS3231 et MPU6050

Pour antoine :
"un cavalier dans la nuit (qui s'appelle Z..)"
Oui sur le c i RTC il y a trois straps CMS nommés A0 A1 A2
Mais il y a aussi la bibli téléchargée avec

J'ai une idée, je verrais ça mais d'abord lire ces deux pdf datasheet
lem75pat
lem75pat

Messages : 781
Date d'inscription : 08/04/2016
Localisation : Paris

Revenir en haut Aller en bas

 mon ARDUINO Uno avec le I2C partagé Empty Re: mon ARDUINO Uno avec le I2C partagé

Message par lem75pat Jeu 26 Aoû - 16:17

Bonjour

Pour mon ARDUINO Uno, la taille mémoire programme est de 32256 octets
et suite aux compilations, j'ai obtenu :
programme bmp180, 7810 octets
programme mpu6050, 12214 octets
programme DHT11, 4464 octets
programme PCF8591, 3734 octets
programme DS3231, 5580 octets
Ils devraient donc être tous 'accueillis'

J'ai aussi fait une compilation avec leurs bibliothèques (include)
wire.h
SFE_BMP180.h
Adafruit_MPU6050.h
Adafruit_Sensor.h
dht11.h
DS3231.h
SPI.h
SD.h
Cela donne 5594 octets occupés
lem75pat
lem75pat

Messages : 781
Date d'inscription : 08/04/2016
Localisation : Paris

Revenir en haut Aller en bas

 mon ARDUINO Uno avec le I2C partagé Empty Re: mon ARDUINO Uno avec le I2C partagé

Message par bdureau Jeu 26 Aoû - 21:23

lem75pat a écrit:Bonjour
J'ai une idée, je verrais ça mais d'abord lire ces deux pdf datasheet
Je suis cetain qu'en cherchant sur Google tu trouvera, sinon essaye le forum Arduino
bdureau
bdureau

Messages : 5018
Date d'inscription : 28/03/2016
Age : 52
Localisation : 92150 Suresnes (Région parisienne)

http://rocket.payload.free.fr/

Revenir en haut Aller en bas

 mon ARDUINO Uno avec le I2C partagé Empty Re: mon ARDUINO Uno avec le I2C partagé

Message par lem75pat Lun 30 Aoû - 13:36

Bonjour

J'ai lu hier les quatre datasheets que je garde précieusement
Je vais en fait aiguiller le SDA sur quatre directions avec un ci CD4066 (quadruple switch)
tout en laissant SCK commun
lem75pat
lem75pat

Messages : 781
Date d'inscription : 08/04/2016
Localisation : Paris

Revenir en haut Aller en bas

 mon ARDUINO Uno avec le I2C partagé Empty Re: mon ARDUINO Uno avec le I2C partagé

Message par lem75pat Mer 1 Sep - 18:51

Bonjour

J'ai mesuré hier sur le ARDUINO Uno (non connecté au P C via U S B) et alimenté par une pile 9 volts (pp3)
une intensité de 50mA
En rajoutant interface S D card et R T C, cela monte à 65mA

Voici des données sur les piles (elles ne se rechargent pas, elles sont One Time Life) :
AAA r03 1.5v 11grs 1ah
AA r6 1.5v 23grs 2.7ah
C r14 1.5v 67grs 7.7ah
D r20 1.5v 144grs 18ah
N r1 1.5v 0.83ah
PP3 6lr61 9v 45grs 0.55ah (voire 750mAh)

et sur les accumulateurs (on ne dit pas 'piles rechargeables')
9v PP3 175mAh
1.2v AA   1300--2000maH
1.2V AAA   600--1000mAh
1.2v C 2000--4500mAh
1.2v D 4000--10000mAh 155grs 500cycles
lem75pat
lem75pat

Messages : 781
Date d'inscription : 08/04/2016
Localisation : Paris

Revenir en haut Aller en bas

 mon ARDUINO Uno avec le I2C partagé Empty Re: mon ARDUINO Uno avec le I2C partagé

Message par bdureau Mer 1 Sep - 19:16

pour les piles 9V je prends celles qui font 8,4 volt car c'est en fait une batterie 2S à l'interieur.
Je deconseille les batteries 1,5V que l'on met dans des coupleurs car elles sortent du coupleur lors du vol.
Le mieux aujourd'hui c'est vraiment les batteries 1S ou 2S. ou encore les batteries 18650 si le poids n'est pas un probleme que l'on assemble en pack. A ce propos j'ai acheté une machine que m'avait conseillé Antoine pour faire des packs batterie
bdureau
bdureau

Messages : 5018
Date d'inscription : 28/03/2016
Age : 52
Localisation : 92150 Suresnes (Région parisienne)

http://rocket.payload.free.fr/

Antoine aime ce message

Revenir en haut Aller en bas

 mon ARDUINO Uno avec le I2C partagé Empty Re: mon ARDUINO Uno avec le I2C partagé

Message par lem75pat Mer 1 Sep - 19:35

Ah tu es là et je suis là aussi à cet instant

Oui pour PP3, 'pile' donne 9V car 6*1.5 et 'accu' donne 8.4V car 7*1.2
Je suis d'accord pour les types bien connus AAA AA C D, il faut le coupleur
et avec l'accélération, ça se 'barre'
En prime, le type PP3 est plus léger que l'assemblage des autres types
et contient une énergie suffisante pour le temps du vol et retombée

J'ai voulu donner leur capacité à titre d'information
Précision pour le couple électrochimique de l'élément de base : 1.5V pour pile, 1.2V pour accumulateur

Pour ma part, j'utiliserais le type PP3 ou les accus 1S 2S 18650 que tu conseilles
A la prochaine qui arrive, je ferais fonctionner mon montage au sol et en voiture, et je crois que je vais utiliser
les PP3 pile 9V; Bon c'est moi, je n'ai pas de chargeur ici chez moi
Calculs 750 mAh / 65mA = 11 heures et demi
lem75pat
lem75pat

Messages : 781
Date d'inscription : 08/04/2016
Localisation : Paris

Revenir en haut Aller en bas

 mon ARDUINO Uno avec le I2C partagé Empty Re: mon ARDUINO Uno avec le I2C partagé

Message par bdureau Mer 1 Sep - 19:50

Les accus/ batteries ou piles utilisé c'est important. Il faut prendre en compte que nos fusée restent parfois en rampe plusieurs minutes avec l'electronique allumé et un buzzer qui bip. D'autre part le pic de courant demandé par les ematches peu faire s'ecrouler la tension de la pile si la resitance interne de celle ci est trop elevé. C'est ce que nous avons pu constater avec Philippe en faisant des tests. Cela avait pour concequence un reboot de l'alti
bdureau
bdureau

Messages : 5018
Date d'inscription : 28/03/2016
Age : 52
Localisation : 92150 Suresnes (Région parisienne)

http://rocket.payload.free.fr/

Revenir en haut Aller en bas

 mon ARDUINO Uno avec le I2C partagé Empty Re: mon ARDUINO Uno avec le I2C partagé

Message par bdureau Mer 1 Sep - 19:51

Derniere chose pour ceux qui utilisent la telemetrie il faut des accu costaux!!!
bdureau
bdureau

Messages : 5018
Date d'inscription : 28/03/2016
Age : 52
Localisation : 92150 Suresnes (Région parisienne)

http://rocket.payload.free.fr/

Revenir en haut Aller en bas

 mon ARDUINO Uno avec le I2C partagé Empty Re: mon ARDUINO Uno avec le I2C partagé

Message par lem75pat Jeu 2 Sep - 13:33

Bonjour

Moi pour ma part, je mesure l'intensité de consommation (multimètre en A tout simplement)
'quelques minutes', je prévois 15' (un quart d'heure)
Oui pour la télémétrie, cela peut monter jsq 100mA
lem75pat
lem75pat

Messages : 781
Date d'inscription : 08/04/2016
Localisation : Paris

Revenir en haut Aller en bas

 mon ARDUINO Uno avec le I2C partagé Empty Re: mon ARDUINO Uno avec le I2C partagé

Message par bdureau Ven 3 Sep - 12:05

lem75pat a écrit:Bonjour

Moi pour ma part, je mesure l'intensité de consommation (multimètre en A tout simplement)
'quelques minutes', je prévois 15' (un quart d'heure)
Oui pour la télémétrie, cela peut monter jsq 100mA

Bonne question pour la telemetrie, je n'ai jamais mesuré mais il va falloir que je le fasse de maniere à pouvoir preconiser les bonnes batteries
bdureau
bdureau

Messages : 5018
Date d'inscription : 28/03/2016
Age : 52
Localisation : 92150 Suresnes (Région parisienne)

http://rocket.payload.free.fr/

Revenir en haut Aller en bas

 mon ARDUINO Uno avec le I2C partagé Empty Re: mon ARDUINO Uno avec le I2C partagé

Message par Contenu sponsorisé


Contenu sponsorisé


Revenir en haut Aller en bas

Page 1 sur 2 1, 2  Suivant

Revenir en haut

- Sujets similaires

 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum