/* Nomi Gijsen - 03/12-2024
* Ultrasone sensor voor push-ups
* met LCD
* Originele code van:
* https://create.arduino.cc/projecthub/Isaac100/getting-started-with-the-hc-sr04-ultrasonic-sensor-036380
* PIN AANSLUITINGEN
*
* Vcc --> 5V
* Trig --> 12
* Echo --> 8
* GND --> GND
*
*/
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,16,2); // set the LCD address to 0x27 for a 16 chars and 2 line display
const int trigPin = 12; // trigger pin
const int echoPin = 8; // echo in
int teller = 0; //declareer teller
float duration; // variabele voor tijdsduur als kommagetal (float)
float distance; // variabele voor afstand als kommagetal (float)
void setup()
{
lcd.init();
// Print a message to the LCD.
lcd.backlight();
lcd.setCursor(0,0);
lcd.print("Nomi"); // jouw naam *******************************
Serial.begin(9600); // stel de seriële monitor in op 9600 bits per seconde
pinMode(trigPin, OUTPUT); // stel de trigger pin in als uitvoer
pinMode(echoPin, INPUT); // stel de echo pin in als invoer
}
void loop()
{
digitalWrite(trigPin, LOW); // zet de trigPin op LOW
delayMicroseconds(2); // wacht 2 microseconden zodat de trigPin ook daadwerkelijk LOW is
digitalWrite(trigPin, HIGH); // zet de trigPin op HIGH om ultrasoon geluid te zenden
delayMicroseconds(10); // wacht 10 microseconden
digitalWrite(trigPin, LOW); // set de trigPin op LOW om het zenden te stoppen
duration = pulseIn(echoPin, HIGH); // vraag de tijdsduur op van hoe lang het duurde tot de echoPin HIGH was.
// Let op dat pulseIn het programma voor pauseert totdat er een signaal terug is ontvangen
// standaard is de timeout 1 seconden. Dus het programma staat maximaal 1 seconde stil.
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("20,80,"); // Toon de minimale en maximale waarde (vaste waarden)
if (distance > 200)
{
distance = 110;
}
Serial.println(distance);
if (distance < 15) //afstand instellen in cm *********************
{
lcd.setCursor(0,1);
lcd.print("Aantal:");
lcd.print(teller);
lcd.print(" ");
teller++;
delay(500); // tijd hoelang je op 15 cm van sensor blijft ********************
}
delay(100); // wacht 100ms tot een volgende meting
}