Comment définir les adresses I²C et utiliser un scanner I²C pour les LCD1602 et LCD2004
Dans ce tutoriel, nous allons explorer comment définir les adresses I²C et utiliser un scanner I²C pour les écrans LCD1602 et LCD2004. Comprendre la communication I²C est essentiel pour intégrer ces modules LCD à vos projets Arduino, car cela permet une transmission de données et un contrôle efficaces. À la fin de ce guide, vous serez en mesure d'identifier efficacement les adresses I²C de vos écrans LCD et de vérifier qu'ils fonctionnent correctement.


Nous utiliserons le capteur BMP-180 dans le cadre de ce projet, qui communique via I²C. Le capteur fournit des mesures de température et de pression, qui peuvent être affichées soit sur le LCD1602, soit sur le LCD2004. Ce tutoriel comprendra les instructions de câblage, des extraits de code et une démonstration des résultats attendus. Pour une compréhension plus visuelle, n'oubliez pas de consulter la vidéo associée (à 00:00).
Le matériel expliqué
Les principaux composants de ce projet comprennent le capteur BMP-180, un afficheur LCD1602 ou LCD2004 et une carte Arduino. Le BMP-180 est un capteur de pression numérique qui communique via le protocole I²C, ne nécessitant que deux lignes de données : SDA (ligne de données) et SCL (ligne d'horloge). Les afficheurs LCD sont également compatibles I²C et peuvent être facilement contrôlés en utilisant le même protocole de communication, ce qui permet une configuration propre et efficace.
Le BMP-180 fonctionne avec une tension d'alimentation comprise entre 1,8 V et 3,6 V, ce qui signifie qu'il peut être alimenté via un régulateur de tension si vous utilisez une source de tension plus élevée. Les écrans LCD, en revanche, fonctionnent généralement à 5 V, ce qui facilite leur connexion à une carte Arduino sans composants supplémentaires.
Détails de la fiche technique
| Fabricant | Bosch |
|---|---|
| Numéro de pièce | BMP-180 |
| Tension logique/E/S | 1.8 - 3.6 V |
| Tension d'alimentation | 1,8 - 3,6 V |
| Courant de sortie (par canal) | 3.6 µA |
| Courant de crête (par canal) | 1 mA |
| Conseils sur la fréquence PWM | Non applicable |
| Seuils logiques d'entrée | Sans objet |
| Chute de tension / RDS (en conduction) / saturation | Sans objet |
| Limites thermiques | -40 à +85 °C |
| Paquet | 3,6 × 3,8 mm |
| Notes / variantes | Capteur de température et de pression |
- Veillez à fournir une tension d'alimentation appropriée : 1.8V à 3.6V pour le BMP-180.
- Utilisez des résistances de pull-up sur les lignes SDA et SCL pour une communication I²C stable.
- Gardez les fils courts pour éviter la dégradation du signal.
- Vérifiez que l'adresse I²C est correcte lors du balayage.
- Plage de température : -40 à +85 °C pour le BMP-180.
Instructions de câblage

Pour câbler le capteur BMP-180 et l'écran LCD à votre Arduino, suivez ces étapes :

Commencez par connecter le BMP-180.VnConnectez la broche à la sortie 5 V de l'Arduino. Ensuite, connectez laGNDbroche du BMP-180 à la masse de l'Arduino. LeSDAla broche du BMP-180 doit être reliée à celle de l'Arduino.A4goupille, tandis que leSCLla broche se connecte àA5.
Pour le LCD1602 ou le LCD2004, connectez leVCCbroche au 5V de l'Arduino et leGNDmettre la broche à la masse également. LeSDAla broche de l'écran LCD doit également être connectée àA4 (partagé avec le BMP-180), et leSCLla broche doit se connecter àA5.
Cette configuration permet aux deux appareils de communiquer sur le même bus I²C, garantissant une installation propre et efficace.
Exemples de code et guide pas à pas
Pour scanner les adresses I²C, nous utiliserons un simple extrait de code. L'extrait suivant initialise la communication I²C et prépare le moniteur série :
#include
void setup() {
Wire.begin();
Serial.begin(9600);
while (!Serial); // Leonardo: wait for serial monitor
Serial.println("\nI2C Scanner");
}
Ce code initialise la bibliothèque Wire pour la communication I²C et configure le moniteur série pour la sortie. Il est essentiel pour le débogage et pour s'assurer que les périphériques I²C sont reconnus.
La fonction loop recherche les appareils sur le bus I²C et affiche leurs adresses :
void loop() {
byte error, address;
int nDevices = 0;
Serial.println("Scanning...");
for(address = 1; address < 127; address++) {
Wire.beginTransmission(address);
error = Wire.endTransmission();
if (error == 0) {
Serial.print("I2C device found at address 0x");
Serial.println(address, HEX);
nDevices++;
}
}
if (nDevices == 0) Serial.println("No I2C devices found\n");
delay(5000); // wait 5 seconds for next scan
}
Cette boucle vérifie chaque adresse de 1 à 127, en tentant de communiquer avec les appareils présents. Si un appareil répond, son adresse est affichée sur le moniteur série. C'est une étape cruciale pour identifier l'adresse I²C de votre écran LCD ou d'autres appareils connectés.
Démonstration / À quoi s'attendre
Lorsque le scanner I²C est lancé, vous devriez voir des messages dans le moniteur série indiquant si des périphériques I²C ont été détectés. Si l'opération réussit, la sortie affichera les adresses des périphériques connectés, formatées en valeurs hexadécimales (par exemple, Périphérique I²C trouvé à l'adresse 0x27). Si aucun périphérique n'est trouvé, vous verrez un message correspondant.
Il est important de s'assurer que toutes les connexions sont sécurisées et que les niveaux de tension corrects sont fournis afin d'éviter des problèmes de détection de l'appareil (dans la vidéo à 05:30).
Ce dont vous pourriez avoir besoin
-
Amazon
-
AliExpressAcheter LCD1602-I2C sur AliExpresss.click.aliexpress.com
-
AliExpressAchetez 10 pièces de LCD1602-I2C sur AliExpresss.click.aliexpress.com
Ressources et références
Aucune ressource pour le moment.
Fichiers📁
Bibliothèques Arduino (zip)
-
Bibliothèque LCD1602 pour Arduino de Robojax
robojax-LCD1602-I2C-library-master.zip0.01 MB
Fichier Fritzing
-
LCD2004-I2C
LCD2004-I2C.fzpz0.02 MB