Benodigdheden
Maak deze schakeling na.
// Bibliotheek voor communicatie met I2C / TWI apparaten
#include <Wire.h>
// Bibliotheek voor het LCD scherm
#include <LiquidCrystal_I2C.h>
/*
* Stel hier in welke chip en foromaat LCD je hebt
* Gebruik 0x27 als je chip PCF8574 hebt van NXP
* Gebruik 0x3F als je chip PCF8574A hebt van Ti (Texas Instruments)
* De laatste twee getallen geven het formaat van je LCD aan
* bijvoorbeeld 20x4 of 16x2
*
*/
LiquidCrystal_I2C lcd(0x27, 20, 4);
//LiquidCrystal_I2C lcd(0x3F, 16, 2);
const int trigPin = 12; // trigger pin
const int echoPin = 8; // echo in
float duration; // variabele voor tijdsduur als kommagetal (float)
float distance; // variabele voor afstand als kommagetal (float)
void setup() {
Serial.begin(9600); // stel de seriële monitor in
// Ultrasoon sensor
pinMode(trigPin, OUTPUT); // stel de trigger pin in als uitvoer
pinMode(echoPin, INPUT); // stel de echo pin in als invoer
// LCD scherm
lcd.init(); // initialiseer het LCD scherm
lcd.backlight(); // zet de backlight aan
}
void loop() {
// Ultrasoon sensor
digitalWrite(trigPin, LOW); // zet de trigPin op LOW
delayMicroseconds(2); // wacht 2ms zodat de trigPin ook daadwerkelijk LOW is
digitalWrite(trigPin, HIGH); // zet de trigPin op HIGH om ultrasoon geluid te zenden
delayMicroseconds(10); // wacht 10ms
digitalWrite(trigPin, LOW); // set de trigPin op LOW om het zenden te stoppen
duration = pulseIn(echoPin, HIGH); // vraag de tijdsduur op van hoe lang de echoPin HIGH was
distance = (duration * 0.0343) / 2; // bereken de afstand aan de hand van de snelheid van het geluid
// dit getal moet door 2 worden gedeeld omdat het geluid heen en terug is gegaan.
Serial.print("Afstand: "); // Toon het resultaat op de seriële monitor
Serial.println(distance);
// LCD scherm
lcd.clear(); // wis het scherm
lcd.setCursor(0, 0); // zet de cursor op positie 1, regel 1
lcd.print(distance); // schrijf op scherm
lcd.print(" cm"); // schrijf op scherm
delay(100); // wacht 100ms tot een volgende meting
}