je n'arrive pas à écrire sur le LCD 20x4 i2c autre que par les broches 20 et 21 pouvez vous m'aider ?
Et on est supposé deviner quelle carte tu utilises et quel code tu as mis dans la carte.
C'est une carte Arduino Giga , avec IDE 1.8.16 , code :
// Inclure la bibliothèque TinyGPS++
#include <TinyGPS++.h>
// Inclure la bibliothèque LiquidCrystal_I2C
#include <LiquidCrystal_I2C.h>
// Définir la vitesse de communication série en bauds
#define BAUD_RATE 9600
// Créer un objet TinyGPSPlus
TinyGPSPlus gps;
// Créer un objet LiquidCrystal_I2C avec l'adresse 0x27 et 20 colonnes et 4 lignes
LiquidCrystal_I2C lcd(0x27, 20, 4);
void setup() {
// Initialiser la communication série avec le GPS
Serial2.begin(BAUD_RATE); // Broche RX sur 19 et tx sur 18
// Initialiser l'écran LCD
lcd.init();
// Activer le rétroéclairage de l'écran LCD SCL21 SDA20
lcd.backlight();
}
void loop() {
// Vérifier si le GPS envoie des données
if (Serial2.available()) {
// Lire un caractère de données du GPS
char gpsData = Serial2.read();
// Envoyer le caractère à l'objet gps pour l'analyser
gps.encode(gpsData);
// Vérifier si on a une position valide
if (gps.location.isValid()) {
// Effacer l'écran LCD
lcd.clear();
// Positionner le curseur sur la première ligne et la première colonne
lcd.setCursor(0,0);
// Afficher "Latitude: " sur l'écran LCD
lcd.print("Latitude: ");
// Afficher la latitude avec deux décimales sur l'écran LCD
lcd.print(gps.location.lat(), 2);
// Positionner le curseur sur la deuxième ligne et la première colonne
lcd.setCursor(0,1);
// Afficher "Longitude: " sur l'écran LCD
lcd.print("Longitude: ");
// Afficher la longitude avec deux décimales sur l'écran LCD
lcd.print(gps.location.lng(), 2);
// Positionner le curseur sur la troisième ligne et la première colonne
lcd.setCursor(0,2);
// Afficher "Altitude: " sur l'écran LCD
lcd.print("Altitude: ");
// Afficher l'altitude en mètres avec deux décimales sur l'écran LCD
lcd.print(gps.altitude.meters(),2);
delay(3000); // Attendre 3 secondes avant de répéter le cycle
}
else {
// Pas de position valide encore
Serial.println("Pas de position");
}
}
}
Le LCD est sur SDA et SCL 20 et 21 , mais si je connecte un MBP180 et /ou un MPU6050 lue sur le moniteur série mais il y à conflit , en fait je voudrais pouvoir connecter mon LCD sur broches autres que 20 et 21 . je suis novice , merci pour la réponse .
Eric Brisbois
hello
lire les conditions d'utilisation du forum
il faut poster ton code entre les balises code.
il faut cliquer sur <code>
et mettre ton code dans l'emplacement signalé
merci de le faire
autrement, ta carte semble disposer de 3 couples de broches pour l'I2C
Hello, ok merci ,
mais comment dissocier les différentes broches SDA et SCL ainsi que les broches RX et TX dans le code ? merci .
Les périphériques I2C ont une adresse qui les différencie sur un même port. Tu peux donc avoir l'afficheur et un MPU6050 (que je ne connais pas) ou autre sur le même port. Il faut juste qu'ils aient des adresses différentes. Cette adresse est parfois réglable (jupper ou soudure) parfois pas. Il faut lire les datasheets des constructeurs.
Accessoirement si tu édite tes messages précédents pour les mettre en forme comme demandé, il sera plus aisé de lire ton code et de t'aider.
Merci beaucoup pour votre réponse .
Cordialement :
Eric
This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.