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.
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
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 mogelijk0x3F. 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:
- Het gebruikt de
sonar.ping_cm()-functie om de afstand te meten en deze op te slaan in de variabeledistance. - Het wist de LCD en print de tekst "Robojax.com" op de eerste regel.
- Vervolgens zet het de cursor op de tweede regel en print "Distance: ".
- 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
- Les 20/31: LCD1602 gebruiken met Arduino om tekst weer te geven | Robojax
- Les 20/31: Temperatuur en luchtvochtigheid van DHT11 weergeven op LCD-scherm
- Les 20/31: Spanning weergeven op LCD1602
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
This code has not been parsed yet. Please return to the admin panel to parse it.
Dingen die je misschien nodig hebt
-
AmazonSunFounder Arduino Learning Kit on AliExpresss.click.aliexpress.com
-
Amazon
-
Amazon
-
Amazon
-
Amazon
Hulpmiddelen en referenties
-
DocumentatieDocumentation for SunFounder 3 in 1 IoT/Smart Car/Learning Kitdocs.sunfounder.com
-
ExternPurchase SunFounder's 3-in-1 Smart car learning kitsunfounder.com
Bestanden📁
Arduino-bibliotheken (zip)
-
SunFounder's 3-in-1 Smart Car learning kit source code
3in1-kit-main-v2.zip12.80 MB
Gebruikershandleiding
-
SunFounder 3-in-1 Arduino Smart Car assembly manualThis document shows step by step assembly of SunFounder 3-in-1 Arduino Smart Car
SunFounder_car_assembly_manual.pdf1.20 MB