Bonjour à tous,
Je souhaite réaliser un système d'affichage de température / humidité. J'ai à ma disposition un DHT11, un Attiny 85 et un afficheur LCD fonctionnant en I2C. La partie DHT11 n'a pas posé de problème mais je butte sur le fait de faire fonctionner le l'afficheur LCD avec l'Attiny.
Concernant l'afficheur en question il s'agit de celui-ci : Grove - 16x2 LCD | Seeed Studio Wiki . Il a théoriquement des résistances de pull-up sur les broches SDA et SCL, chose que j'ai pu confirmer avec une mesure à l'ohmmètre. L'adresse I2C d'après la documentation est 0X3E que j'ai également confirmé avec un programme de scan. L'afficheur fonctionne bien sur un UNO, mais lorsque je souhaite le faire fonctionner sur l'Attiny, j'ai seulement la première ligne qui s'allume en noir (et ma LED qui clignote sur le PIN PB4) .
En cherchant sur google, j'ai pu me rendre compte qu'il y a beaucoup de sujets qui traitent de ce problème et notamment des soucis de librairies. J'ai donc fait différents essais et la seule configuration qui a aboutit est celle-ci :
Le code :
#include <TinyWireM.h>
#include <LiquidCrystal_attiny.h>
LiquidCrystal_I2C lcd(0x3E,16,2);
void setup() {
pinMode(4, OUTPUT);
lcd.init();
lcd.print("Hello");
delay(2000);
}
void loop() {
digitalWrite(4, HIGH);
delay(100);
digitalWrite(4, LOW);
delay(100);
}
Avec les librairies suivantes :
J'utilise un programmer USBasp avec le core suivant : GitHub - vprimachenko/ArduinoTiny: Arduino (^1.6) cores for Atmel ATTiny family et ma version de l'IDE est à jour. Les paramètres de la carte sont bien réglés sur le Attiny85 et l'horloge fixée à 8MHz en interne.
Toutes ces sources proviennent de projet (qui fait du hasard est en français) : https://arduino.stackovernet.com/fr/q/9217
Bref, à ce stade je suis un peu perdu et ne sais plus où chercher le problème. Le code se compile bien et la LED qui clignote montre que téléversement est bien effectué. J'ai noté une chose, lorsque je débranche l'afficheur et que je reset l'Attiny, la LED ne clignote pas tant que l'afficheur n'est pas branché. Ceci me laisse à penser que la fonction lcd.init, bloque le code tant qu'elle n'a pas détecté l'afficheur, ce qui (hypothèse) voudrait dire que l'Attiny détecte bien l'afficheur ?
Si quelqu'un a une idée, ou a alors déjà réalisé ce type de projet avec d'autres librairies je suis prenneur.
Merci d'avance !