Bonjour
Je viens de faire l'essai de mon afficheur mais il ne veut rien savoir.
Mais j'ai avant d'aller plus loin 2 questions, en I2C j'utilise déjà la carte miniBoard avec la DS1307.
Pour l'utiliser j'utilise la bibliothèque fourni, cela marche trés bien mais je suppose que l'adresse de la carte sur l'I2C est réglé dans la bibliothèque car on ne fait rien du tout comme réglage. En tout cas j'arrive à récupérer l'heures.
Par contre j'ai connecté mon Afficheur I2C sur le réseaux I2C et j'arrive à rien, l'afficheur boot j'essaie de communiquer avec lui mais rien ne se passe il boot et reboot continuellement. Par contre à chaque fois qu'il reboot on vois que l'I2C est arrêté car je récupère plus l'heures pendant 1 à 2 lectures.
Autre info l'afficheur est alimenté en 12V, il a donc 4 fils, le 12V, la masse et le SCl et SDA. En interne il possède un 7805 pour avoir du 5v. Du coup j'ai ajouté une alimentation 12V et relier la masse de l'arduino à la masse du 12V par contre les résistance de pull up (2.2K) sont sur le 5V de l'arduino.
J'ose pas tenter de mettre les pull up sur le 12V pour 2 raisons c'est que la petite carte DS1307 possède déjà des pull up qui sont donc sur le 5V mais il y a des cavaliers qui apparemment permettent de les enlever. Ensuite pour le moment j'ai pas de résistance plus grosse sous la main et 2.2K sous 12v est peut être pas assez élevé.
Autre souci le micro contrôleur de l'afficheur attend surement quelque chose pour arrêter de booter en permanence. Je sais pas si c'est dés que la connections est établi. Lors du boot on vois la version su soft embarqué, puis le clignotement du 1er caractère et le clignotement alternatif des 2 LED. A un moment assez court, environ 1 seconde les Leds et l'afficheur s'arrêtent de clignoter et c'est a ce moment que je récupère plus les informations de la DS1307
Voici le tout petit bout de code pour essayer de communiquer avec lui.
#include <WProgram.h>
#include <Wire.h>
#include <DS1307.h> // written by mattt on the Arduino forum and modified by D. Sjunnesson
void setup()
{
Serial.begin(9600);
RTC.stop();
RTC.set(DS1307_SEC,1); //set the seconds
RTC.set(DS1307_MIN,23); //set the minutes
RTC.set(DS1307_HR,12); //set the hours
RTC.set(DS1307_DOW,4); //set the day of the week
RTC.set(DS1307_DATE,5); //set the date
RTC.set(DS1307_MTH,3); //set the month
RTC.set(DS1307_YR,9); //set the year
RTC.start();
Wire.begin();
}
void loop()
{
Serial.print(RTC.get(DS1307_HR,true)); //read the hour and also update all the values by pushing in true
Serial.print(":");
Serial.print(RTC.get(DS1307_MIN,false));//read minutes without update (false)
Serial.print(":");
Serial.print(RTC.get(DS1307_SEC,false));//read seconds
Serial.print(" "); // some space for a more happy life
Serial.print(RTC.get(DS1307_DATE,false));//read date
Serial.print("/");
Serial.print(RTC.get(DS1307_MTH,false));//read month
Serial.print("/");
Serial.print(RTC.get(DS1307_YR,false)); //read year
Serial.println();
delay(1000);
//Pour l'afficheur
Wire.beginTransmission(0x38); //Adresse de l'afficheur
Wire.send(0x20); //Registre pour le rétroéclairage
Wire.send(1); //Allumage du rétroéclairage
Wire.endTransmission();
}
je précise que j'ai essayé d'autre registre mais aucun ne provoque quelque chose.
Autre chose quelle est le symptôme lorsque si l'on inverse le SDA et le SCL car j'ai un doute sur mon schéma car l'alim était inversé, sans gravité car il y a une diode en entrée.
Merci