Car Reverse Parking Sensor Circuit med alarm

Prøv Vores Instrument Til At Fjerne Problemer





I dette indlæg skal vi konstruere et alarmkredsløb til omvendt parkeringssensor ved hjælp af arduino, ultralydssensor og 2,4 GHz transceiver-modul. Dette projekt kan være en tilføjelsesfunktion til din bil, hvis den ikke har en indbygget parkeringssensor.

Introduktion

Det foreslåede projekt har samme funktionalitet som den traditionelle parkeringssensor har, såsom afstanden mellem bil og forhindring på et LCD-display og lydbipalarm.



Det foreslåede projekt kan bruges som stationær parkeringssensor, dvs. sensoren placeret på din garage eller mobil parkeringssensor, dvs. sensoren placeret bag på din bil, hvis du er klar til at tage en lille risiko for at koble projektet med bilens elektriske system.

Imidlertid er motivationen for dette projekt at bygge en stationær parkeringssensor som kan bygges med nul risiko.



Parkeringssensoralarmprojektet ved hjælp af Arduino har to dele, senderen, der består af ultralydssensor, arduino, summer og 2,4 GHz transceiver-modul. Dette kredsløb måler afstanden mellem bilen og forhindringen.

Modtageren består af 2,4 GHz transceivermodul, arduino og 16x2 LCD-skærm.

Modtagerkredsløbet placeres inde i bilen med 9V batteri som strømforsyning. Modtageren viser afstanden mellem bilen og forhindringen i meter.

Senderen sender sensordataene til modtageren inde i bilen via 2,4 GHz-link. Kommunikationslinket oprettes ved hjælp af NRF24L01-modulet.

Lad os nu se oversigten over NRF24L01-modulet.

Illustration af NRF24L01:

NRF24L01-modul

Dette modul er designet til at etablere tovejskommunikationsforbindelse mellem to mikrocontrollere. Det fungerer på SPI-kommunikationsprotokol. Den har 125 forskellige kanaler og har en maksimal datahastighed på 2 Mbps. Det har en teoretisk maksimal rækkevidde på 100 meter.

Pin-konfiguration:

Det fungerer på 3,3 V, så 5 volt på Vcc terminal kan dræbe det. Det kan dog acceptere 5V datasignaler fra mikrokontrollere.

Lad os nu gå videre til projektets sender.

Parkeringssensor Alarmtransmitterkreds

Kredsløbet er kablet med NRF24L01-modul med 5 ledninger forbundet til digitale I / O-stifter på arduino og resten af ​​de to til 3,3 V og jordet. Stift nr. 2 er forbundet til bunden af ​​transistoren, som vil drive summeren.

Ultralydssensorens strømterminaler er forbundet til 5V, og GND og A0 er forbundet til udløserstiften, og A1 er forbundet til ekkostiften på sensoren.

Sensorens afstandsdata overføres via NRF24L01-modulet til modtageren.

-------------------------------------------------- ----------------------------------------- Download biblioteksfilen fra følgende link: github.com/nRF24/RF24.git------------------------------------------------- -------------------------------------------------- ---

Program til sender:

//----------Program Developed by R.Girish-------------//
#include
#include
RF24 radio(7,8)
const byte address[][6] = {'00001', '00002'}
const int trigger = A0
const int echo = A1
const int buzzer = 2
float distance
float result
long Time
boolean state = false
boolean dummystate = 0
void setup()
{
pinMode(trigger, OUTPUT)
pinMode(buzzer, OUTPUT)
pinMode(echo, INPUT)
radio.begin()
radio.openWritingPipe(address[1])
radio.openReadingPipe(1, address[0])
radio.setChannel(100)
radio.setDataRate(RF24_250KBPS)
radio.setPALevel(RF24_PA_MAX)
radio.startListening()
while(!radio.available())
radio.read(&dummystate, sizeof(dummystate))
radio.stopListening()
if(dummystate == HIGH)
{
for(int j = 0 j <10 j++)
{
const char text[] = 'Connection:OK !!!'
radio.write(&text, sizeof(text))
delay(100)
}
}
digitalWrite(trigger,HIGH)
delayMicroseconds(10)
digitalWrite(trigger,LOW)
delay(1000)
}
void(* resetFunc) (void) = 0
void loop()
{
digitalWrite(trigger,HIGH)
delayMicroseconds(10)
digitalWrite(trigger,LOW)
Time = pulseIn(echo,HIGH)
distance = Time*0.034
result = distance/200
if(result > 2.00)
{
const char text[] = 'CAR NOT IN RANGE'
radio.write(&text, sizeof(text))
}
if(result 1.90)
{
const char text[] = 'Distance = 2.0 M'
radio.write(&text, sizeof(text))
}
if(result 1.80)
{
const char text[] = 'Distance = 1.9 M'
radio.write(&text, sizeof(text))
}
if(result 1.70)
{
const char text[] = 'Distance = 1.8 M'
radio.write(&text, sizeof(text))
}
if(result 1.60)
{
const char text[] = 'Distance = 1.7 M'
radio.write(&text, sizeof(text))
}
if(result 1.50)
{
const char text[] = 'Distance = 1.6 M'
radio.write(&text, sizeof(text))
}
if(result 1.40)
{
const char text[] = 'Distance = 1.5 M'
radio.write(&text, sizeof(text))
}
if(result 1.30)
{
const char text[] = 'Distance = 1.4 M'
radio.write(&text, sizeof(text))
}
if(result 1.20)
{
const char text[] = 'Distance = 1.3 M'
radio.write(&text, sizeof(text))
}
if(result 1.10)
{
const char text[] = 'Distance = 1.2 M'
radio.write(&text, sizeof(text))
}
if(result 1.00)
{
const char text[] = 'Distance = 1.1 M'
radio.write(&text, sizeof(text))
}
if(result 0.90)
{
state = true
const char text[] = 'Distance = 1.0 M'
radio.write(&text, sizeof(text))
while(state)
{
digitalWrite(buzzer, HIGH)
delay(700)
digitalWrite(buzzer, LOW)
delay(700)
digitalWrite(trigger,HIGH)
delayMicroseconds(10)
digitalWrite(trigger,LOW)
Time = pulseIn(echo,HIGH)
distance = Time*0.034
result = distance/200
if(result 1.0)
{
state = false
}
}
}
if(result 0.80)
{
state = true
const char text[] = 'Distance = 0.9 M'
radio.write(&text, sizeof(text))
while(state)
{
digitalWrite(buzzer, HIGH)
delay(600)
digitalWrite(buzzer, LOW)
delay(600)
digitalWrite(trigger,HIGH)
delayMicroseconds(10)
digitalWrite(trigger,LOW)
Time = pulseIn(echo,HIGH)
distance = Time*0.034
result = distance/200
if(result 0.90)
{
state = false
}
}
}
if(result 0.70)
{
state = true
const char text[] = 'Distance = 0.8 M'
radio.write(&text, sizeof(text))
while(state)
{
digitalWrite(buzzer, HIGH)
delay(500)
digitalWrite(buzzer, LOW)
delay(500)
digitalWrite(trigger,HIGH)
delayMicroseconds(10)
digitalWrite(trigger,LOW)
Time = pulseIn(echo,HIGH)
distance = Time*0.034
result = distance/200
if(result 0.80)
{
state = false
}
}
}
if(result 0.60)
{
state = true
const char text[] = 'Distance = 0.7 M'
radio.write(&text, sizeof(text))
while(state)
{
digitalWrite(buzzer, HIGH)
delay(400)
digitalWrite(buzzer, LOW)
delay(400)
digitalWrite(trigger,HIGH)
delayMicroseconds(10)
digitalWrite(trigger,LOW)
Time = pulseIn(echo,HIGH)
distance = Time*0.034
result = distance/200
if(result 0.70)
{
state = false
}
}
}
if(result 0.50)
{
state = true
const char text[] = 'Distance = 0.6 M'
radio.write(&text, sizeof(text))
while(state)
{
digitalWrite(buzzer, HIGH)
delay(300)
digitalWrite(buzzer, LOW)
delay(300)
digitalWrite(trigger,HIGH)
delayMicroseconds(10)
digitalWrite(trigger,LOW)
Time = pulseIn(echo,HIGH)
distance = Time*0.034
result = distance/200
if(result 0.60)
{
state = false
}
}
}
if(result 0.40)
{
state = true
const char text[] = 'Distance = 0.5M'
radio.write(&text, sizeof(text))
while(state)
{
digitalWrite(buzzer, HIGH)
delay(200)
digitalWrite(buzzer, LOW)
delay(200)
digitalWrite(trigger,HIGH)
delayMicroseconds(10)
digitalWrite(trigger,LOW)
Time = pulseIn(echo,HIGH)
distance = Time*0.034
result = distance/200
if(result 0.50)
{
state = false
}
}
}
if(result 0.30)
{
state = true
const char text[] = 'Distance = 0.4 M'
radio.write(&text, sizeof(text))
while(state)
{
digitalWrite(buzzer, HIGH)
delay(100)
digitalWrite(buzzer, LOW)
delay(100)
digitalWrite(trigger,HIGH)
delayMicroseconds(10)
digitalWrite(trigger,LOW)
Time = pulseIn(echo,HIGH)
distance = Time*0.034
result = distance/200
if(result 0.40)
{
state = false
}
}
}
if(result <= 0.30)
{
const char text[] = ' STOP!!!'
radio.write(&text, sizeof(text))
digitalWrite(buzzer, HIGH)
delay(3000)
digitalWrite(buzzer, LOW)
resetFunc()
}
delay(200)
}
//----------Program Developed by R.Girish-------------//

Det afslutter senderen.

Modtager:

Modtageren har 16x2 LCD-skærm til visning af afstandsmåling. Displayforbindelsen er angivet nedenfor:

Parkeringssensor Alarm LCD display kredsløb

Juster 10K potentiometeret for bedre visningskontrast.

Ovenstående skema er resten af ​​modtager kredsløbet. Der er tilvejebragt en trykknap til nulstilling af arduino, hvis 2,4 GHz-forbindelsen ikke er oprettet.

Modtagerkredsløbet er placeret inde i bilen, det kan være strøm fra et 9V batteri. Modtageren kan placeres i en skraldespand, der kan få din bil til at se godt ud. Affaldskassen kan placeres i din bil over instrumentklyngen eller ethvert praktisk sted, du ønsker.

Program til modtager:

//--------Program Developed by R.Girish-------//
#include
#include
#include
LiquidCrystal lcd(7, 6, 5, 4, 3, 2)
RF24 radio(9,10)
const byte address[][6] = {'00001', '00002'}
const int dummy = A0
boolean dummystate = 0
void setup()
{
Serial.begin(9600)
lcd.begin(16, 2)
pinMode(dummy , INPUT)
digitalWrite(dummy, HIGH)
radio.begin()
radio.openReadingPipe(1, address[1])
radio.openWritingPipe(address[0])
radio.setChannel(100)
radio.setDataRate(RF24_250KBPS)
radio.setPALevel(RF24_PA_MAX)
radio.stopListening()
dummystate = digitalRead(dummystate)
radio.write(&dummystate, sizeof(dummystate))
delay(10)
radio.startListening()
if(!radio.available())
{
lcd.clear()
lcd.setCursor(0,0)
lcd.print('Connection not')
lcd.setCursor(0,1)
lcd.print('established')
delay(50)
}
}
void loop()
{
if(radio.available())
{
char text[32] = ''
radio.read(&text, sizeof(text))
lcd.clear()
lcd.setCursor(0,0)
lcd.print(text)
lcd.setCursor(0,1)
lcd.print('----------------')
}
}
//--------Program Developed by R.Girish-------//

Nu afsluttes modtageren.

Sådan placeres sensoren som stationær parkeringssensor:

Sådan placeres sensoren som mobil parkeringssensor:

I mobil parkeringssensor er transmitterens ultralydssensor placeret på bagsiden af ​​bilen, og strømmen tilføres fra bilens batteri. Det skal være kablet på en sådan måde, at når du slukker for tændingen, skal arduino afbryde strømmen.

Modtageren kan placeres insider som tidligere nævnt.

Sådan betjenes dette parkeringssensorprojekt (stationær type)

• Tænd først for senderen, gå til din bil og tænd for modtageren. Hvis forbindelsen mellem sender og modtager er oprettet, viser den 'Forbindelse: OK' og viser afstanden mellem bilen og sensoren.

• Hvis det viser 'Forbindelse ikke oprettet', skal du trykke på trykknappen på modtageren.

• Det viser muligvis ”Bil ikke inden for rækkevidde”, hvis din dåse er langt væk fra ultralydssensoren.

• Tag din bil forsigtigt baglæns eller fremad til din parkeringsplads.

• Da afstanden mellem bil og sensor bliver mindre end 1,0 meter, bipper summeren.

• Når du nærmer dig sensoren tættere, øges biphastigheden, når bilen når 1 fod eller 0,3 meter, beder displayet om at stoppe bilen, og du skal stoppe.

• Senderen nulstilles og går automatisk i tomgang. Sluk for modtageren i din bil. Hvis du forsynede senderen med batteri, skal du også slukke for den.

Sådan betjenes dette alarmkredsløb til parkeringssensor (mobil parkeringssensor)

• Det er en lignende tidligere anført instruktion, hvis modtageren viser 'Bil ikke inden for rækkevidde', din bil er langt væk fra forhindringen.

• Når du slukker for motoren, skal senderkredsløbet slukke. Sluk modtagerkredsløbet manuelt.

Forfatterens prototype:

Sender:

Modtager:

Parkeringssensor Alarm prototype


Forrige: Universal ESC-kredsløb til BLDC- og generatormotorer Næste: Motorstrømskredsløb med høj strøm ved hjælp af Arduino