Code zoeken

Les 20/31: Afstand via ultrasoon weergeven op LCD1602

Les 20/31: Afstand via ultrasoon weergeven op LCD1602

Dit project demonstreert hoe je een HC-SR04 ultrasone afstandssensor combineert met een I2C-compatibel LCD1602-display om een realtime afstandsmeetsysteem te creëren. Aan het einde van deze handleiding heb je een werkend apparaat dat continu de afstand tot een object in centimeters meet en weergeeft. Dit is een fundamentele vaardigheid in Arduino-elektronica, omdat het sensorinvoer combineert met visuele uitvoer.

Sunfounder 20-LCD1602-ultrasonic

Deze praktische opstelling kan worden gebruikt in verschillende toepassingen in de echte wereld, waaronder:

  • Het creëren van een slimme parkeerassistent die je helpt de afstand tot een muur of een ander voertuig in te schatten.
  • Het bouwen van een eenvoudige vloeistofniveaumonitor voor een tank door de afstand van de bovenkant tot het oppervlak te meten.
  • Het ontwikkelen van een geautomatiseerde handdesinfectiemiddeldoseerder of een contactloze prullenbak die opent wanneer een object in de buurt is.
  • Het construeren van een eenvoudig beveiligingsalarm dat wordt geactiveerd wanneer iemand een specifieke zone betreedt.

Hardware en componenten

Om dit project te bouwen, heb je de volgende componenten nodig:

  • Arduino-board (bijv. Uno)
  • LCD1602-display met een I2C-interfacemodule
  • HC-SR04 ultrasone afstandssensor
  • Jumperdraden
  • Breadboard (optioneel, voor eenvoudigere verbindingen)

De LCD1602 en I2C begrijpen

De LCD1602 is een populair display dat 16 tekens per regel over twee regels kan weergeven. De "I2C"-module op de achterkant is een groot voordeel omdat het het aantal pinnen dat nodig is om het display te besturen vermindert van 6 of meer tot slechts 2 voor communicatie (SDA en SCL) en 2 voor stroom (VCC en GND). Deze vereenvoudiging maakt de bedrading veel overzichtelijker en maakt waardevolle digitale pinnen op je Arduino vrij voor andere sensoren, zoals de ultrasone sensor die in dit project wordt gebruikt. (in video op 01:30)

De I2C-module heeft ook een kleine potentiometer om het contrast van het display aan te passen. Als je het display van stroom voorziet en niets ziet, probeer dan deze schroef te draaien totdat de tekst zichtbaar wordt. (in video op 02:47)

Bedradingshandleiding

LCD1602_wiring_ultrasonic_bb

Het aansluiten van de componenten is eenvoudig. De I2C-module van de LCD heeft vier pinnen die op de Arduino moeten worden aangesloten. De ultrasone sensor heeft ook vier pinnen.

Hier is een overzicht van de verbindingen:

LCD1602 I2C-module naar Arduino:

  • GND naar Arduino GND
  • VCC naar Arduino 5V
  • SDA naar Arduino A4
  • SCL naar Arduino A5

HC-SR04 ultrasone sensor naar Arduino:

  • VCC naar Arduino 5V
  • Trig naar Arduino digitale pin 12
  • Echo naar Arduino digitale pin 11
  • GND naar Arduino GND

Het bedradingsschema voor dit project wordt in de video getoond.

De vereiste bibliotheken installeren

Dit project is afhankelijk van twee cruciale bibliotheken. De eerste, LiquidCrystal_I2C, is nodig om de LCD te besturen en is niet standaard opgenomen in de Arduino IDE. Je kunt deze downloaden via de link in de videobeschrijving of van de Robojax-website. (in video op 06:16)

De tweede bibliotheek, NewPing, wordt gebruikt om met de ultrasone sensor te communiceren. Het vereenvoudigt het proces van het verzenden van een ping en het lezen van de echotijd. Beide bibliotheken kunnen worden geïnstalleerd via de Bibliotheekbeheer van de Arduino IDE door naar Sketch -> Bibliotheek gebruiken -> Bibliotheken beheren te gaan en op hun naam te zoeken.

Uitleg van de code

Deze sketch combineert de functionaliteit van de LCD en de ultrasone sensor. De code is gestructureerd om gemakkelijk configureerbaar te zijn voor jouw specifieke opstelling.

Bovenaan de code vind je de belangrijkste variabelen die je mogelijk moet aanpassen:

// Stel het LCD-adres in op 0x27 voor een display van 16 tekens en 2 regels
LiquidCrystal_I2C lcd(0x27, displayChars, displayRows);

#define TRIGGER_PIN  12  // Arduino-pin gekoppeld aan de triggerpin op de ultrasone sensor.
#define ECHO_PIN     11  // Arduino-pin gekoppeld aan de echopin op de ultrasone sensor.
#define MAX_DISTANCE 190 // Maximale afstand waarvoor we een ping willen sturen (in centimeters).
  • LCD-adres (0x27): Dit is het I2C-adres van je LCD-module. De meeste modules gebruiken 0x27, maar sommige gebruiken mogelijk 0x3F. Als je display niets weergeeft, moet je mogelijk een I2C-scannersketch uitvoeren om het juiste adres te vinden en deze waarde bij te werken. (in video op 08:11)
  • TRIGGER_PIN en ECHO_PIN: Deze definiëren de digitale Arduino-pinnen die zijn verbonden met de Trig- en Echo-pinnen van de ultrasone sensor. Als je andere pinnen gebruikt, wijzig dan deze definities.
  • MAX_DISTANCE: Dit stelt de maximale afstand in centimeters in die de sensor zal meten. De HC-SR04 kan tot 400-500 cm meten, maar het instellen van een lagere waarde kan de nauwkeurigheid en betrouwbaarheid van de metingen verbeteren, vooral voor kortere afstanden.

In de loop()-functie voert de code de volgende stappen uit:

  1. Het gebruikt de sonar.ping_cm()-functie om de afstand te meten en deze op te slaan in de variabele distance.
  2. Het wist de LCD en print de tekst "Robojax.com" op de eerste regel.
  3. Vervolgens zet het de cursor op de tweede regel en print "Distance: ".
  4. Tenslotte verplaatst het de cursor naar positie 10 op de tweede regel om de gemeten distance-waarde te printen, gevolgd door "cm".

De delay(200) aan het einde van de loop bepaalt hoe vaak de sensor een nieuwe meting doet en het display bijwerkt.

Code Demonstratie

Zodra de code naar je Arduino is geüpload, zal de LCD oplichten en beginnen met het weergeven van de afstand. Je kunt de opstelling testen door je hand of een object dichter bij en verder weg van de ultrasone sensor te bewegen. Het getal op het scherm moet in realtime worden bijgewerkt en de afstand in centimeters tonen. (in video op 38:07)

Gerelateerde projecten uit deze video

Hoofdstukken

  • [00:00] Introductie tot de LCD1602 en projectoverzicht
  • [01:30] LCD1602-hardware en I2C-module uitgelegd
  • [03:14] LCD-pinout en I2C-adresconfiguratie
  • [05:28] Bedradingsschema voor de LCD1602
  • [06:16] De vereiste LCD-bibliotheek installeren
  • [07:24] Basiscode om tekst op de LCD te printen
  • [08:11] Het I2C-adres van je LCD vinden
  • [11:10] LCD-voorbeelden: Knipperende cursor en aangepaste tekens
  • [18:51] LCD-voorbeeld: Seriële weergave en scrollende tekst
  • [24:36] DHT11-temperatuur en luchtvochtigheid weergeven op de LCD
  • [33:00] Spanning van een potentiometer weergeven op de LCD
  • [35:56] Ultrasone sensorcode combineren met LCD
  • [38:07] Demonstratie van de ultrasone afstandsweergave

Afbeeldingen

Sunfounder car assembled
Sunfounder car assembled
Sunfounder 20-LCD1602-ultrasonic
Sunfounder 20-LCD1602-ultrasonic
LCD1602_wiring_ultrasonic_bb
LCD1602_wiring_ultrasonic_bb
921-Lesson 20/31: Displaying distance from ultrasonic sensor on LCD1602
Taal: C++
This code has not been parsed yet. Please return to the admin panel to parse it.

Hulpmiddelen en referenties

Bestanden📁

Arduino-bibliotheken (zip)

Gebruikershandleiding