Car Reverse Parking Sensor Circuit med larm

Prova Vårt Instrument För Att Eliminera Problem





I det här inlägget ska vi konstruera en larmkrets för omvänd parkeringssensor med hjälp av arduino, ultraljudssensor och 2,4 GHz transceiver-modul. Detta projekt kan vara en tilläggsfunktion för din bil om den inte har en inbyggd parkeringssensor.

Introduktion

Det föreslagna projektet har liknande funktioner som traditionell parkeringssensor har, till exempel avståndet mellan bil och hinder på en LCD-display och ljudsignal.



Det föreslagna projektet kan användas som stationär parkeringssensor, dvs. sensorn placerad på ditt garage eller mobil parkeringssensor, dvs. sensorn placerad på baksidan av din bil om du är redo att ta en liten risk att koppla projektet med bilens elektriska system.

Men motivet som detta projekt är att bygg en stationär parkeringssensor som kan byggas med noll risk.



Parkeringssensorns larmprojekt med Arduino har två delar, sändaren som består av ultraljudssensor, arduino, summer och 2,4 GHz sändtagarmodul. Denna krets mäter avståndet mellan bilen och hindret.

Mottagaren består av 2,4 GHz transceiver-modul, arduino och 16x2 LCD-skärm.

Mottagarkretsen kommer att placeras inuti bilen med 9V batteri som strömförsörjning. Mottagaren visar avståndet mellan bilen och hindret i meter.

Sändaren överför sensordata till mottagaren inuti bilen via 2,4 GHz-länk. Kommunikationslänken upprättas med hjälp av NRF24L01-modulen.

Låt oss nu se översikten över NRF24L01-modulen.

Illustration av NRF24L01:

NRF24L01-modul

Denna modul är utformad för att upprätta dubbelriktad kommunikationslänk mellan två mikrokontroller. Det fungerar på SPI-kommunikationsprotokoll. Den har 125 olika kanaler och har en maximal datahastighet på 2 Mbps. Den har en teoretisk maximal räckvidd på 100 meter.

Stiftkonfiguration:

Den fungerar på 3,3 V, så 5 volt på Vcc-terminalen kan döda den. Det kan dock acceptera 5V datasignaler från mikrokontroller.

Nu går vi vidare till projektets sändare.

Sändarkrets för parkeringssensor

Kretsen är ansluten med NRF24L01-modul med 5 ledningar anslutna till digitala I / O-stift av arduino och resten av de två till 3,3 V och jord. Stift nr 2 är anslutet till basen på transistorn som kommer att driva summern.

Ultraljudssensorns strömanslutningar är anslutna till 5V och GND och A0 är ansluten till avtryckarstiftet och A1 är ansluten till ekonålen på sensorn.

Givarens avståndsdata överförs via NRF24L01-modulen till mottagaren.

-------------------------------------------------- ----------------------------------------- Ladda ner biblioteksfilen från följande länk: github.com/nRF24/RF24.git------------------------------------------------- -------------------------------------------------- ---

Program för sändare:

//----------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 avslutar sändaren.

Mottagare:

Mottagaren har 16x2 LCD-display för att visa avståndsmätningen. Displayanslutningen ges nedan:

Bilparkeringssensor Larm LCD-skärmkrets

Justera 10K potentiometern för bättre visningskontrast.

Ovanstående schema är resten av mottagarkretsen. En tryckknapp tillhandahålls för att återställa arduino om 2,4 GHz-länkanslutningen inte upprättas.

Mottagarkretsen är placerad inne i bilen, den kan drivas från ett 9V batteri. Mottagaren kan placeras i en skräpbox som kan få din bil att se bra ut. Skräpboxen kan placeras i din bil ovanför instrumentgruppen eller någon lämplig plats du önskar.

Program för mottagare:

//--------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 avslutar mottagaren.

Hur man placerar sensorn som stationär parkeringssensor:

Hur man placerar sensorn som mobil parkeringssensor:

I mobil parkeringssensor är sändarens ultraljudssensor placerad på baksidan av bilen, strömmen tillförs från bilens batteri. Den ska kopplas på ett sådant sätt att när du stänger av tändningen måste arduino kopplas bort från strömförsörjningen.

Mottagaren kan placeras insider som nämnts tidigare.

Hur man använder detta parkeringssensorprojekt (stationär typ)

• Slå på sändaren först, gå till din bil och sätt på mottagaren. Om anslutningen mellan sändare och mottagare är upprättad visar den 'Anslutning: OK' och visar avståndet mellan bilen och sensorn.

• Om det visas ”Anslutning inte upprättad”, tryck på tryckknappen på mottagaren.

• Det kan visa att 'Bil inte inom räckhåll' om din burk är långt ifrån ultraljudssensorn.

• Ta din bil försiktigt bakåt eller framåt till din parkeringsplats.

• Eftersom avståndet mellan bil och sensor blir mindre än 1,0 meter piper ljudsignalen.

• När du närmar dig sensorn närmare ökar piphastigheten, när bilen når en fot eller 0,3 meter, uppmanas displayen att stoppa bilen och du måste stanna.

• Sändaren återställs och går i viloläge automatiskt. Stäng av mottagaren i din bil. Om du drivte sändaren med batteri, stäng också av den.

Hur man hanterar denna larmkrets för parkeringssensor (mobil parkeringssensor)

• Det är liknande tidigare angivna instruktioner om mottagaren visar “Bil inte inom räckhåll” är din bil långt ifrån hinder.

• När du stänger av motorn måste sändarkretsen stängas av. Stäng av mottagarkretsen manuellt.

Författarens prototyp:

Sändare:

Mottagare:

Bilparkeringssensor Larmprototyp


Tidigare: Universal ESC-krets för BLDC- och generatormotorer Nästa: Högströms motorstyrkrets med Arduino