jean81
September 25, 2018, 7:36pm
1
Bonjour,
J'ai un souci avec un montage.
J'ai un module RTC , sonde température DS18B20, carte sd.
Je relève bien la température avec l'heure et je l'enregistre sur la carte SD sans aucune difficulté.
Mais lorsque je branche un écran oled en I2C mon code se bloque au moment de l'enregistrement sur la
SD ! Je suis perdu !
Je travaille sur un arduino nano.
J'utilise la librairie Adafruit pour l’écran.
Merci pour votre aide.
lesept
September 25, 2018, 7:57pm
2
Poste ton code, lis les messages épinglés pour savoir comment le poster correctement. Merci
jean81
September 26, 2018, 7:22pm
3
Je précise, j'ai deux écrans oled en i2c, deux sondes DS18B20, une rtc en i2c et un lecteur de carte sd en spi.
Lorsque j’inscris ces deux lignes de commandes :
Adafruit_SSD1306 display1( OLED_RESET );
Adafruit_SSD1306 display2( OLED_RESET );
impossible d’écrire dans la sd !
J'ai l'impression d'un conflit entre i2c et spi !
lesept
September 26, 2018, 7:44pm
4
Quelles broches utilises tu pour chacun de tes périphériques ?
jean81
September 27, 2018, 6:45am
5
arduino nano
I2C broche D4, D5 module RTC , deux écrans oled
SPI connecteur 6 broches sur le arduino nano carte SD
broche D9 pour les deux sondes DS18B20
Librairie utilisé :
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#include <OneWire.h> //Librairie du bus OneWire
#include <DallasTemperature.h> //Librairie du capteur
#include <SPI.h>
#include <SD.h>
#include "RTClib.h"
Encore merci pour votre aide.
lesept
September 27, 2018, 7:39am
6
Est-ce que ça se passe bien avec seulement les périphériques I2C ? Il pourrait y avoir un conflit avec deux écrans ayant la même adresse.
Salut
lesept a certainement mis le doigt sur la cause du problème.
Les deux écrans sont-ils vraiment I2C ? Il y a des SSD1306 I2C mais aussi SPI.
Ont-ils des straps (ponts de soudure) permettant de changer l'adresse I2C ?
De toutes façon avec deux écrans il faudra bien qu'ils aient deux adresses différentes.
Si tu ne connais pas l'adresse, utilise un logiciel i2c_scanner .
@+
jean81
September 27, 2018, 9:23am
8
les écrans ont bien deux adresse différentes
0x3d
0x3c
j'ai bien modifier l'adresse d'un des deux ecrans en déplacent la résistance de 4k7 ohms .
lesept
September 27, 2018, 10:02am
9
Est-ce que ça se passe bien avec seulement les périphériques I2C ?
Et i2c_scanner, tu as essayé ?
jean81
September 27, 2018, 2:15pm
11
en écriture seule sur sd ok (sans aucun périphérique i2c)
affichage sur les deux écrans des températures respective des sondes ok
lecture du module rtc ok
mais des que je demande l'ecriture des données sur la sd, blocage de l'arduino !
I2c scanner voit bien les adresses de tout les modules I2c (5 au total).
lesept
September 27, 2018, 2:29pm
12
I2C broche D4, D5 module RTC , deux écrans oled
C'est A4 & A5 pour l'I2C. Faute de frappe ou faute de branchement ?
SDA -> A4
SCL -> A5
jean81
September 27, 2018, 3:13pm
13
faute de frappe ! pardon
je suis bien branché sur le i2c
lesept
September 27, 2018, 3:37pm
16
Je ne trouve nulle part de mention d'un conflit entre SPI et I2C, on trouve des gens qui utilisent les deux sans problème. Tu dois donc avoir un problème dans ton code. Poste le...
PBZOOM
September 27, 2018, 7:25pm
17
bonsoir ,
toujours dans la recherche de solution hardware
vous n ' avez pas palé de la valeur de la résistances de rappel
de la ligne i2c
cela est bien expliqué (mieux que j 'aurais pu )
dans un précédant post RESOLU
https://forum.arduino.cc/index.php?topic=439525.15
pour la solus software comme vous préconise lesept
avec le code c' est mieux.