1. Maak een parkeersensor waarbij een LED en een buzzer reageren op de afstand van een object.
2. Vanaf 100 cm: LED en buzzer knipperen/piepen langzaam.
3. Hoe dichterbij het object komt, hoe sneller het knipperen en piepen.
4. Tussen 10 cm en 0 cm: LED blijft aan en buzzer geeft een constant geluid.
1 Arduino UNO
1 HC-SR04 ultrasoon sensor
1 LED
1 Weerstand van 220Ω
1 Piëzo buzzer
Jumper wires
Breadboard
1. VCC van de sensor naar 5V op de Arduino.
2. GND van de sensor naar GND op de Arduino.
3. TRIG van de sensor naar pin 2.
4. ECHO van de sensor naar pin 4.
5. Verbind het lange pootje (+) van de LED met pin 12.
6. Verbind het korte pootje (-) van de LED met de GND
7. Verbind het plus (+) pootje van de buzzer met pin 13.
8. Verbind het min pootje (-) van de buzzer met de GND.
Klik op de Code-knop , kopieer en plakt onderstaande code in Tinkercad.
const int trigPin = 2; // TRIG pin van de ultrasone sensor aangesloten op pin 2
const int echoPin = 4; // ECHO pin van de ultrasone sensor aangesloten op pin 4
const int ledPin = 12; // LED aangesloten op pin 12
const int buzzerPin = 13; // Piezo zoemer aangesloten op pin 13
long duration; // Variabele voor de tijd tussen zenden en ontvangen (microseconden)
int distance; // Variabele voor de afstand in centimeters
void setup() {
pinMode(trigPin, OUTPUT); // Zet trigPin als uitgang
pinMode(echoPin, INPUT); // Zet echoPin als ingang
pinMode(ledPin, OUTPUT); // Zet ledPin als uitgang
pinMode(buzzerPin, OUTPUT); // Zet buzzerPin als uitgang
Serial.begin(9600); // Start de seriële monitor voor het weergeven van afstand
}
void loop() {
// Ultrasoon signaal uitzenden
digitalWrite(trigPin, LOW); // Reset de TRIG pin naar LOW
delayMicroseconds(2); // Wacht 2 microseconden
digitalWrite(trigPin, HIGH); // Zet TRIG pin hoog om signaal te starten
delayMicroseconds(10); // Houd TRIG 10 microseconden hoog
digitalWrite(trigPin, LOW); // Zet TRIG weer laag
// Meet de tijd dat het duurt voordat het echo-signaal terug is
duration = pulseIn(echoPin, HIGH);
// Bereken de afstand in centimeters
distance = duration * 0.034 / 2;
// Laat de afstand zien in de seriële monitor
Serial.print("Afstand: ");
Serial.print(distance);
Serial.println(" cm");
if (distance <= 10) {
// Object is heel dichtbij (10 cm of minder)
digitalWrite(ledPin, HIGH); // LED blijft continu aan
tone(buzzerPin, 2000); // Piezo geeft een hoge toon van 2000 Hz
}
else if (distance <= 100) {
// Object is tussen 10 cm en 100 cm
int delayTime = map(distance, 10, 100, 50, 500); // Hoe dichterbij, hoe sneller
digitalWrite(ledPin, HIGH); // LED aan
tone(buzzerPin, 1000); // Piezo geeft een lagere toon van 1000 Hz
delay(delayTime); // Wacht afhankelijk van afstand
digitalWrite(ledPin, LOW); // LED uit
noTone(buzzerPin); // Piezo uit
delay(delayTime); // Wacht afhankelijk van afstand
}
else {
// Object is verder dan 100 cm
digitalWrite(ledPin, LOW); // LED uit
noTone(buzzerPin); // Piezo uit
}
}
Kun jij het systeem zo maken dat de piëzo een andere toonhoogte laat horen naarmate het object dichterbij komt?
Klik op de knop vragen om de vragen te beantwoorden
- Laat het resultaat zien aan je docent.
- Sla je ontwerp op in Tinkercad onder de naam : Les 10: Bouw een parkeersensor met de HC-SR04 ultrasoon afstandsmeter.