Zelfbouw Parkeerradar Sensor met Arduino UNO & HC-SR04 Ultrasone Sensoren
Onderdelen en benodigdheden
| Arduino UNO | × | 1 |
| Ultrasone Sensor - HC-SR04 (Generiek) | × | 1 |
| Mini Batterij Displays | × | 1 |
Over dit project
Hallo, dit project gaat over een zelfbouw parkeerradar-sensor, het is heel makkelijk te maken, het is gebaseerd op de HC SR-04 ultrasone sensor, ik gebruik er 3: één voor elke kant en één voor het midden, dan 2 mini-batterijdisplays, die eigenlijk bedoeld zijn om de staat van de batterij te tonen, maar hier gebruik ik ze om de afstand tussen de sensoren en obstakels weer te geven, afhankelijk van welke kant, ook afhankelijk van de maximumafstand die je kunt instellen, boven die afstand wordt het beschouwd als voldoende ruimte altijd, onder die afstand veranderen de displays afhankelijk van die afstand en de richting.

Onderdelen
Dit zijn de onderdelen die ik gebruikte, je kunt nog een paar jumpdraden en een breadboard toevoegen als je wilt. (Het batterijdisplay is gebaseerd op de TM1651-chip)




Werking
Er zijn 3 ultrasone modules: Rechts, Midden en Links, en twee displays: Rechts en LINKS. De middensensor kan beide displays beïnvloeden, maar de twee anderen kunnen alleen hun respectieve kanten beïnvloeden.
Bijvoorbeeld, er zijn twee obstakels, één aan de rechterkant en één in het midden, de code neemt het dichtstbijzijnde om op het display te tonen.
Als de middelste het dichtstbijzijnde is, veranderen beide displays volgens de afstand.
Als de rechterkant het dichtstbijzijnde is, verandert het rechterdisplay en is het lager dan de linkerkant.
Er is een maximale afstand die je in de code kunt instellen, boven die afstand wordt het als veilig beschouwd en brandt het display vol, onder die afstand beginnen de displays te veranderen en is het evenredig aan de maximumafstand.
Voorbeelden
Hier zijn een paar gevallen om het makkelijk uit te leggen:




Het laatste geval kan gebeuren als je obstakels hebt in het midden en rechts (rechter is dichterbij) of aan de linkerkant en de rechterkant (rechterkant dichterbij), of aan alle kanten maar (rechts is dichterbij).
Verbeteringen:
- - Je kunt meer sensoren toevoegen om een groter gebied te dekken
- - Een scherm toevoegen om de afstandswaarde te tonen
- - De sensoren veranderen naar waterdichte zoals JSN SR-04
- - Geluid toevoegen
Code
Parking_sensor_v1.inoArduino
/* Deze code is bedoeld om te werken met HC-SR04 ultrasone modules x3 en TM1651 batterijdisplay x2
* Het project is een parkeersensor die laat zien hoe dicht obstakels zijn en vanaf welke kant
* afhankelijk van de Maxdistance die erboven het display als veilige afstand toont
* erboven begint het te veranderen en het is proportioneel aan de maximumafstand
* Verwijs naar www.SurtrTech.com voor meer details */
#include <TM1651.h>
#define CLK 3 // Rechter display bedrading
#define DIO 2
#define CLK2 5 // Linker display bedrading
#define DIO2 4
#define trigPin 6 // Ultrasone modules bedrading R=Rechts L=Links de andere is het midden
#define echoPin 7
#define trigPinR 8
#define echoPinR 9
#define trigPinL 10
#define echoPinL 11
#define Maxdistance 20 // Maximale afstand 20cm
long duration;
int distance;
TM1651 DisplayR(CLK,DIO); // Display instanties
TM1651 DisplayL(CLK2,DIO2);
void setup() {
pinMode(trigPin, OUTPUT); // Pinmodes van HC-SR04 en displays starten
pinMode(echoPin, INPUT);
pinMode(trigPinR, OUTPUT);
pinMode(echoPinR, INPUT);
pinMode(trigPinL, OUTPUT);
pinMode(echoPinL, INPUT);
DisplayR.init();
DisplayR.set(BRIGHTEST);
DisplayL.init();
DisplayL.set(BRIGHTEST);
}
void loop() {
int distanceM = CDistance(trigPin,echoPin); // Alle afstanden berekenen door functie aan te roepen
int distanceR = CDistance(trigPinR,echoPinR);
int distanceL = CDistance(trigPinL,echoPinL);
int R=min(distanceM,distanceR); // Twee displays R en L, eerst minimum tussen M/R en M/L
int L=min(distanceM,distanceL);
if(R>0 && R < Maxdistance){
// Afstandsbereik
short LevelR=map(R,0,Maxdistance,0,7); // Schalen van afstand 0-20 naar 0-7
DisplayR.displayLevel(LevelR); // 0-7 zijn displayniveaus, elke afstand 0-20cm heeft een niveau, je kunt dat 20 wijzigen
}
if(R> Maxdistance) // We zijn veilig en display toont altijd voldoende ruimte
DisplayR.displayLevel(7);
if(L>0 && L < Maxdistance){
// Hetzelfde als Rechts
short LevelL=map(L,0,Maxdistance,0,7);
DisplayL.displayLevel(LevelL);
}
if(L> Maxdistance)
DisplayL.displayLevel(7);
delay(50);
}
int CDistance(int a, int b){ // Afstand berekenen functie, neemt twee argumenten (Trigger en Echo) en voert het gebruikelijke HC-SR04-proces uit
digitalWrite(a, LOW);
delayMicroseconds(2);
digitalWrite(a, HIGH);
delayMicroseconds(10);
digitalWrite(a, LOW);
duration = pulseIn(b, HIGH);
distance = duration*(0.034/2);
return distance; // Retourneer berekende afstand
}
TM1651 Batterijdisplay bibliotheek
De bibliotheek maakt het werk veel makkelijker
GitHub Repository
Schema's
Productieproces
- Een LED Besturen met een PIR-bewegingssensor op Raspberry Pi
- Een Goedkope Raspberry Pi Grondvochtigheidssensor Bouwen voor Slimme Irrigatie
- Een Raspberry Pi thuistemperatuurmonitor bouwen met MCP9808, InfluxDB & Grafana
- De Acconeer A111 gepulste radar integreren met een Raspberry Pi: Een praktische gids
- Emotiesensor & EEG: Goedkope Hardware voor Real-time Emotiedetectie
- Temperatuur- en vochtigheidsdata overdragen tussen twee Arduinos via Firebase
- De zuurstofsensor (O2) begrijpen: functie, plaatsing en defectherkenning
- Mouser toont geavanceerde sensortechnologieën op Sensors Expo 2019
- Radarsensoren Uitgelegd: Hoe Ze Werken en Hun Moderne Toepassingen
- Hoe Parkeersensoren Werken & Hun Belangrijkste Toepassingen
- Ambarella neemt Oculii over voor $307,5 mln, uitbreidend radar & sensor fusion voor autonome voertuigen