Lesson 71: Measure distance and display on LCD screen | Arduino Step By Step Course
This project demonstrates how to combine an HC-SR04 ultrasonic sensor with an LCD1602 display to measure and display distances on the Arduino. This setup is useful for various applications requiring proximity detection and visual feedback.
Practical Applications:
- Robotics: Measuring distances for obstacle avoidance or navigation.
- Parking Assistance: Creating a simple parking distance sensor.
- Home Automation: Building a proximity-based lighting system.
- Industrial Automation: Monitoring distances in manufacturing processes.
Hardware/Components
To build this project, you will need the following components:
- Arduino Uno (or compatible board)
- HC-SR04 Ultrasonic Sensor
- LCD 1602 Display (I2C version recommended)
- Jumper Wires
Wiring Guide
The wiring is described in the video (in video at 00:31). The key connections are:
- Ultrasonic Sensor: VCC to 5V, GND to GND, TRIG to pin 12, ECHO to pin 11.
- LCD 1602: VCC to 5V, GND to GND, SDA to pin A4, SCL to pin A5.
%%WIRING%%
Code Explanation
The code utilizes the NewPing library for ultrasonic distance measurement and the LiquidCrystal_I2C library for LCD control (in video at 02:15). The key configurable parameters are:
#define TRIGGER_PIN 12 // Arduino pin tied to trigger pin on the ultrasonic sensor.
#define ECHO_PIN 11 // Arduino pin tied to echo pin on the ultrasonic sensor.
#define MAX_DISTANCE 200 // Maximum distance we want to ping for (in centimeters).
// Set the LCD address to 0x3F for a 16 chars and 2 line display
LiquidCrystal_I2C lcd(0x3F, 16, 2);
int VCC2 = 2; //extra VCC for LCD
The TRIGGER_PIN and ECHO_PIN define the Arduino pins connected to the ultrasonic sensor. MAX_DISTANCE sets the maximum measurable distance. The LCD address (0x3F) might need adjustment depending on your specific LCD module. The VCC2 pin provides an additional 5V supply for the LCD.
The sonar.ping_cm() and sonar.ping_in() functions are used to obtain distance measurements in centimeters and inches respectively (in video at 05:27 and 06:01).
Live Project/Demonstration
A demonstration of the project is shown in the video (in video at 06:42). The video shows the sensor measuring distances to various objects and displaying the results in centimeters and inches on the LCD screen. The serial monitor displays the same measurements, providing a means to verify the readings.
Chapters
- [00:04] Introduction and Project Overview
- [00:31] Wiring Diagram and Connections
- [02:15] Code Explanation: Ultrasonic Sensor Setup
- [03:19] Code Explanation: LCD1602 Setup
- [04:21] Code Explanation: Arduino Setup
- [04:46] Code Explanation: Main Loop and Display
- [06:42] Live Demonstration
- [07:26] Conclusion
/*
* S08-03
* Utilisation du capteur à ultrasons LCD1602-I2C et HC-SR04 avec Arduino
* Rédigé/mis à jour par Ahmad Shamshiri pour Robojax (Robojax.com)
* le 16 janvier 2019 à 15h51 à Ajax, Ontario, Canada
*
* Ce code est fourni « EN L'ÉTAT » sans garantie ni responsabilité. Son utilisation est libre tant que vous conservez cette note intacte.*
* Ce code a été téléchargé depuis Robojax.com.
* Ce programme est un logiciel libre : vous pouvez le redistribuer et/ou le modifier
* selon les termes de la Licence Publique Générale GNU telle que publiée par la Free Software Foundation, soit la version 3, soit (à votre choix) toute version ultérieure.
*
* Ce programme est distribué dans l'espoir qu'il soit utile,
* mais SANS AUCUNE GARANTIE ; sans même la garantie implicite de
* QUALITÉ MARCHANDE ou d'ADÉQUATION À UN USAGE PARTICULIER. Consultez la Licence publique générale GNU pour plus de détails.
*
* Vous devriez avoir reçu une copie de la Licence publique générale GNU avec ce programme. Sinon, consultez <https://www.gnu.org/licenses/>.
*/
#include <NewPing.h>
#define TRIGGER_PIN 12 // Broche Arduino liée à la broche de déclenchement du capteur à ultrasons.
#define ECHO_PIN 11 // Broche Arduino liée à la broche d'écho sur le capteur à ultrasons.
#define MAX_DISTANCE 200 // Distance maximale à laquelle nous souhaitons envoyer un signal (en centimètres). La distance maximale du capteur est estimée à 400-500 cm.
NewPing sonar(TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE); // Configuration NewPing des broches et distance maximale.
// début des réglages pour LCD1602-I2C
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
// Définissez l'adresse LCD sur 0x3F pour un affichage de 16 caractères et 2 lignes
LiquidCrystal_I2C lcd(0x3F, 16, 2);
int VCC2 = 2;
// fin des réglages pour LCD1602-I2C
void setup() {
Serial.begin(9600); // Ouvrez le moniteur série à 19 600 bauds pour voir les résultats du ping.
pinMode(VCC2, OUTPUT); // VCC supplémentaire pour LCD
digitalWrite(VCC2, HIGH); // le VCC supplémentaire est maintenant HAUT (5 V)
// initialiser l'écran LCD,
lcd.begin();
// Allumez la lumière noire et imprimez un message.
lcd.backlight();
lcd.clear();
lcd.setCursor (0,0);
lcd.print("Robojax LCD1602");
}
void loop() {
delay(50); // Attendez 50 ms entre les pings (environ 20 pings/s). 29 ms devrait être le délai le plus court entre les pings.
lcd.clear(); // effacer les valeurs précédentes de l'écran
lcd.setCursor (0,0); // caractère zéro, ligne 1
lcd.print("LCD1602 HC-SR04"); // imprimer le texte
// distance d'impression en cm
lcd.setCursor (0,1); // caractère 0, ligne 2
lcd.print(sonar.ping_cm()); // distance d'impression en cm
lcd.setCursor (3,1); // caractère 4, ligne 2
lcd.print("cm"); // imprimer « cm » sur l'écran
// distance d'impression en pouces
lcd.setCursor (7,1); // caractère 8, ligne 2
lcd.print(sonar.ping_in()); // distance d'impression en cm
lcd.setCursor (9,1); // caractère 4, ligne 2
lcd.print("inches"); // imprimer « cm » sur l'écran
Serial.print("Ping: ");
Serial.print(sonar.ping_cm()); // Envoyer un ping, obtenir la distance en cm et imprimer le résultat (0 = en dehors de la plage de distance définie)
Serial.print("cm");
Serial.print(", ");
Serial.print(sonar.ping_in());
Serial.println("in");
int distance = sonar.ping_cm();
}
Ce dont vous pourriez avoir besoin
-
eBayAcheter un LCD1602-I2C sur eBayebay.us
-
eBay
-
AliExpressAcheter LCD1602-I2C sur AliExpresss.click.aliexpress.com
-
BanggoodAchetez le capteur ultrason HC-SR04 sur Banggoodbanggood.com
Ressources et références
Aucune ressource pour le moment.
Fichiers📁
Aucun fichier disponible.