You are on page 1of 7

Exemple de code HC-SR04 avec I2C

LCD et Arduino
Pour afficher la distance mesurée sur un  LCD 2004 ou 1602 I2C , il vous suffit d’effectuer les
connexions suivantes et de télécharger le code ci-dessous. Le capteur HC-SR04 est connecté de
la même manière que précédemment.

HC-SR04 avec schéma de câblage LCD Arduino et I2C.


Connexions LCD I2C
LCD I2C Arduino

Terre Terre

VCC 5V

SDA A4

SCL A5

Si vous n’utilisez pas d’Arduino Uno, les broches SDA et SCL peuvent se trouver à un
emplacement différent. Un Arduino UNO avec la disposition R3 (brochage 1.0), a également les
en-têtes de broche SDA (ligne de données) et SCL (ligne d’horloge) près de la broche AREF.
Consultez le tableau ci-dessous pour plus de détails.

Planche SDA

Arduino Uno A4

Arduino Nano A4

Micro-Arduino 2

Arduino Méga 2560 20

Arduino Léonard 2

Arduino dû 20

Emplacements des broches I2C pour différentes cartes Arduino


Le code utilise la  bibliothèque LiquidCrystal_I2C  , que vous pouvez télécharger  ici sur
GitHub . Assurez-vous que vous avez installé cette bibliothèque exacte ! Il comprend également
la  bibliothèque Wire.h  , qui vous permet de communiquer avec des appareils I2C. Cette
bibliothèque devrait être pré-installée avec l’IDE Arduino.
LiquidCrystal_I2C-master.zip
Si vous souhaitez en savoir plus sur la façon de contrôler un écran LCD I2C avec Arduino, vous
pouvez consulter le didacticiel complet ici.

 Comment contrôler un LCD I2C de caractères avec Arduino

/*
Capteur de distance à ultrasons HC-SR04 avec exemple de code Arduino et
I2C LCD.
Plus d'infos : https://www.makerguides.com
*/

// Inclure les bibliothèques :


#include <Fil.h>
#include <LiquidCrystal_I2C.h>

// Définir la broche Trig et Echo :


#define trigPin 2
#define echoPin 3

// Définir les broches SDA et SCL pour LCD :


#define SDAPin A4 // Broche de données
#define SCLPin A5 // Broche d'horloge

// Connexion à LCD via I2C, adresse par défaut 0x27 (A0-A2 non ponté) :
LiquidCrystal_I2C lcd = LiquidCrystal_I2C(0x27,20,4); //Changer en
(0x27,16,2) pour 1602 LCD

// Définir les variables :


longue durée;
distance entière ;

void setup() {
// Définissez les entrées et les sorties :
pinMode(trigPin, SORTIE);
pinMode(echoPin, INPUT);

// Lancer le LCD :
lcd.init();
LCD rétro-éclairage();
}

boucle vide() {
// Effacez le trigPin en le définissant sur LOW :
digitalWrite(trigPin, LOW);
retardMicrosecondes(5);

// Déclenchez le capteur en réglant le trigPin haut pendant


10 microsecondes :
digitalWrite(trigPin, HIGH);
retardMicrosecondes(10);
digitalWrite(trigPin, LOW);

// Lit l'echoPin. Cela renvoie la durée (longueur de l'impulsion) en


microsecondes :
durée = pulseIn(echoPin, HIGH);

// Calcule la distance :
distance = durée*0,034/2 ;

// Affiche la distance sur le LCD :


lcd.setCursor(0,0); // Positionne le curseur sur la colonne 1, ligne 1
(le comptage commence à zéro)
lcd.print("Distance = "); // Imprime la chaîne "Display = " sur
l'écran LCD
lcd.print(distance); // Imprime la distance mesurée
lcd.print(" cm "); // Imprime "cm" sur l'écran LCD, des espaces
supplémentaires sont nécessaires pour effacer les caractères
précédemment affichés

retard(50);
}

You might also like