Alarmiga auto tagurpidi parkimisanduri vooluring

Proovige Meie Instrumenti Probleemide Kõrvaldamiseks





Selles postituses ehitame auto tagurpidi parkimisanduri häireahela, kasutades arduino, ultraheli andurit ja 2,4 GHz transiiveri moodulit. See projekt võib olla teie auto lisavõimalus, kui see ei sisesta sisseehitatud parkimisandureid.

Sissejuhatus

Kavandataval projektil on sarnased funktsioonid kui traditsioonilisel parkimisanduril, näiteks auto ja takistuse vaheline kaugus LCD-ekraanil ning helisignaal.



Kavandatavat projekti saab kasutada statsionaarse parkimisandurina, st teie garaaži paigutatud andurina või mobiilse parkimisandurina, st andurina, mis asetatakse teie auto tagaküljele, kui olete valmis võtma väikese riski projekti elektrisüsteemiga juhtmete ühendamiseks.

Kuid selle projekti motivatsioon on ehitada statsionaarne parkimisandur mida saab ehitada nullriskiga.



Arduinot kasutava auto parkimisanduri häireprojektil on kaks osa: saatja, mis koosneb ultraheliandurist, arduinost, summerist ja 2,4 GHz transiiverist. See ring mõõdab auto ja takistuse vahelist kaugust.

Vastuvõtja koosneb 2,4 GHz transiiverimoodulist, arduino ja 16x2 LCD ekraanist.

Vastuvõtja vooluring asetatakse autosse, toiteks 9V aku. Vastuvõtja kuvab auto ja takistuse vahemaa meetrites.

Saatja edastab anduri andmed auto sees olevasse vastuvõtjasse 2,4 GHz ühenduse kaudu. Sideühendus luuakse mooduli NRF24L01 abil.

Vaatame nüüd mooduli NRF24L01 ülevaadet.

NRF24L01 illustratsioon:

NRF24L01 moodul

See moodul on loodud kahesuunalise sideühenduse loomiseks kahe mikrokontrolleri vahel. See töötab SPI sideprotokollil. Sellel on 125 erinevat kanalit ja maksimaalne andmeedastuskiirus on 2Mbps. Selle teoreetiline maksimaalne ulatus on 100 meetrit.

PIN-koodi konfiguratsioon:

See töötab 3,3 V pingel, nii et 5 volti Vcc terminalis saab selle tappa. Kuid see suudab vastu võtta mikrokontrollerite 5V andmesignaale.

Nüüd liigume projekti saatja juurde.

Parkimisanduri alarmi saatja vooluring

Vooluahel on ühendatud 5 mooduliga NRF24L01 mooduliga, mis on ühendatud arduino digitaalsete I / O-tihvtidega ja ülejäänud kaks kuni 3,3 V ja maandatud. Tihvt nr 2 on ühendatud transistori alusega, mis juhib suminat.

Ultrahelianduri toiteklemmid on ühendatud 5V ja GND-ga ning A0 on ühendatud päästikuga ja A1 on ühendatud anduri kajatihvtiga.

Anduri kaugusandmed edastatakse NRF24L01 mooduli kaudu vastuvõtjale.

-------------------------------------------------- ----------------------------------------- Palun laadige raamatukogu fail alla järgmiselt lingilt: github.com/nRF24/RF24.git----------------------------------------- -------------------------------------------------- ---

Saatja programm:

//----------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-------------//

Sellega saatja kokku jõuab.

Vastuvõtja:

Vastuvõtjal on 16x2 LCD ekraan kauguse mõõtmise kuvamiseks. Ekraaniühendus on toodud allpool:

Auto parkimisanduri alarmi LCD-ekraan

Parema kontrastsuse saamiseks reguleerige 10K potentsiomeetrit.

Ülaltoodud skeem on ülejäänud vastuvõtjaahel. Arduino lähtestamiseks on ette nähtud vajutusnupp juhul, kui 2,4 GHz ühenduse loomine puudub.

Vastuvõtja vooluring on paigutatud autosse, see võib olla toiteallikas 9V akust. Vastuvõtja võidakse paigutada rämpskasti, mis võib teie auto hea välja näha. Rämpskasti võib paigutada teie autosse näidikute kasti või mõne muu sobiva koha kohale.

Vastuvõtja programm:

//--------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-------//

Nüüd järeldub vastuvõtja.

Anduri paigutamine statsionaarse parkimisandurina:

Anduri paigutamine mobiilse parkimisandurina:

Liikuvas parkimisanduris on saatja ultraheliandur auto tagaküljel, toide antakse auto akust. See peaks olema juhtmega nii, et süüte väljalülitamisel peab arduino vooluvõrgust lahti ühendama.

Vastuvõtja võib asetada siseringi, nagu eespool mainitud.

Kuidas kasutada seda parkimisanduri projekti (statsionaarset tüüpi)

• Lülitage saatja kõigepealt sisse, minge oma auto juurde ja lülitage vastuvõtja sisse. Kui ühendus saatja ja vastuvõtja vahel on loodud, kuvatakse teade „Connection: OK” ja näidatakse auto ja anduri vahelist kaugust.

• Kui ekraanil kuvatakse teade „Ühendust pole loodud”, vajutage vastuvõtjal olevat nuppu.

• Kui teie purk on ultraheliandurist kaugel, võib kuvada teade „Auto pole vahemikus”.

• Viige auto ettevaatlikult tagurpidi või edasi oma parkimiskohta.

• Kui auto ja anduri vaheline kaugus on väiksem kui 1,0 meetrit, annab helisignaal.

• Kui lähened andurile lähemale, suureneb piiksude kiirus, kui auto jõuab 1 jala või 0,3 meetrini, kuvar palub auto peatada ja peate peatuma.

• Saatja lähtestub ja läheb automaatselt tühikäigule. Lülitage autos vastuvõtja välja. Kui toite saatjat toiteallikaga, lülitage see ka välja.

Kuidas seda parkimisanduri häireahelat kasutada (mobiilne parkimisandur)

• See on sarnane varem öeldud juhistele, kui vastuvõtjal kuvatakse teade „Auto pole vahemikus”, kui teie auto on takistusest kaugel.

• Kui lülitate mootori välja, peab saatja vooluring välja lülituma. Lülitage vastuvõtja vooluring käsitsi välja.

Autori prototüüp:

Saatja:

Vastuvõtja:

Parkimisanduri alarmi prototüüp


Eelmine: BLDC- ja generaatormootorite universaalne ESC-ahel Järgmine: suure vooluga mootori juhtimisahel Arduino abil