Automašīnas reversās stāvvietas sensora shēma ar trauksmi

Izmēģiniet Mūsu Instrumentu Problēmu Novēršanai





Šajā amatā mēs izveidosim automašīnas reversās stāvvietas sensora trauksmes shēmu, izmantojot arduino, ultraskaņas sensoru un 2,4 GHz raiduztvērēja moduli. Šis projekts var būt jūsu automašīnas papildfunkcija, ja tajā nav iebūvētu stāvēšanas sensoru.

Ievads

Piedāvātajam projektam ir līdzīga funkcionalitāte kā tradicionālajam autostāvvietas sensoram, piemēram, attālums starp automašīnu un šķērsli LCD displejā un audio signāls.



Piedāvāto projektu var izmantot kā stacionāru autostāvvietas sensoru, t.i., sensoru, kas novietots garāžā, vai mobilo autostāvvietas sensoru, t.i., sensoru, kas novietots automašīnas aizmugurē, ja esat gatavs uzņemties nelielu risku, vadot projektu ar automašīnas elektrisko sistēmu.

Tomēr šī projekta motivācija ir uzbūvējiet stacionāru stāvvietas sensoru ko var uzbūvēt ar nulles risku.



Autostāvvietas sensora trauksmes projektam, kurā izmanto Arduino, ir divas daļas, raidītājs, kas sastāv no ultraskaņas sensora, arduino, skaņas signāla un 2,4 GHz raiduztvērēja moduļa. Šī ķēde izmērīs attālumu starp automašīnu un šķērsli.

Uztvērējs sastāv no 2,4 GHz raiduztvērēja moduļa, arduino un 16x2 LCD displeja.

Uztvērēja ķēde tiks ievietota automašīnas iekšpusē ar 9 V akumulatoru kā barošanas avotu. Uztvērējs parādīs attālumu starp automašīnu un šķērsli metros.

Raidītājs nosūta sensora datus uz uztvērēju automašīnas iekšpusē, izmantojot 2,4 GHz saiti. Sakaru saite tiek izveidota, izmantojot moduli NRF24L01.

Tagad apskatīsim NRF24L01 moduļa pārskatu.

NRF24L01 ilustrācija:

NRF24L01 modulis

Šis modulis ir paredzēts, lai izveidotu divvirzienu sakaru saiti starp diviem mikrokontrolleriem. Tas darbojas uz SPI sakaru protokola. Tam ir 125 dažādi kanāli, un tā maksimālais datu pārraides ātrums ir 2Mbps. Tā teorētiskais maksimālais diapazons ir 100 metri.

Piespraudes konfigurācija:

Tas darbojas ar 3,3 V, tāpēc 5 volti uz Vcc termināla to var nogalināt. Tomēr tas var pieņemt 5V datu signālus no mikrokontrolleriem.

Tagad pāriesim pie projekta raidītāja.

Autostāvvietas sensora trauksmes raidītāja ķēde

Ķēde ir vadīta ar NRF24L01 moduli ar 5 vadiem, kas savienoti arduino digitālajām I / O tapām un pārējiem diviem līdz 3.3V un zemei. 2. kontakts ir savienots ar tranzistora pamatni, kas darbina skaņas signālu.

Ultraskaņas sensora barošanas spailes ir savienotas ar 5 V un GND, un A0 ir savienots ar sprūda tapu, un A1 ir savienots ar sensora atbalss tapu.

Sensora attāluma dati tiek nosūtīti uztvērējam, izmantojot NRF24L01 moduli.

-------------------------------------------------- ---------------------------------------- Lūdzu, lejupielādējiet bibliotēkas failu no saites: github.com/nRF24/RF24.git----------------------------------------- -------------------------------------------------- ---

Raidītāja programma:

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

Ar to raidītājs secina.

Uztvērējs:

Uztvērējam ir 16x2 LCD displejs, lai parādītu attāluma mērījumus. Displeja savienojums ir norādīts zemāk:

Autostāvvietas sensora trauksmes LCD displeja shēma

Pielāgojiet 10K potenciometru, lai iegūtu labāku kontrastu.

Iepriekš minētā shēma ir pārējā uztvērēja ķēde. Arduino atiestatīšanai ir paredzēta spiedpoga, ja 2,4 GHz saites savienojums nav izveidots.

Uztvērēja ķēde ir ievietota automašīnas iekšpusē. To var darbināt ar 9 V akumulatoru. Uztvērēju var ievietot atkritumu kastē, kas var padarīt jūsu automašīnu labu. Nevajadzīgo kastīti var ievietot automašīnā virs instrumentu kopas vai jebkuras citas ērtas vietas, kuru vēlaties.

Uztvērēja programma:

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

Tagad uztvērējs ir noslēdzies.

Kā novietot sensoru kā stacionāru stāvvietas sensoru:

Kā novietot sensoru kā mobilo stāvvietu sensoru:

Mobilajā autostāvvietas sensorā raidītāja ultraskaņas sensors tiek novietots automašīnas aizmugurē, strāvu nodrošina no automašīnas akumulatora. Tam jābūt pieslēgtam tā, lai, izslēdzot aizdedzi, arduino būtu jāatvieno no barošanas avota.

Uztvērēju var ievietot iekšpusē, kā minēts iepriekš.

Kā vadīt šo automašīnas stāvvietas sensora projektu (stacionārs tips)

• Vispirms ieslēdziet raidītāju, dodieties uz savu automašīnu un ieslēdziet uztvērēju. Ja savienojums starp raidītāju un uztvērēju ir izveidots, tas parādīs “Connection: OK” un parādīs attālumu starp automašīnu un sensoru.

• Ja tajā parādās uzraksts “Savienojums nav izveidots”, nospiediet uztvērējā esošo pogu.

• Ja jūsu kārba atrodas tālu no ultraskaņas sensora, tā var parādīt “Automašīna nav diapazonā”.

• Viegli nogādājiet automašīnu atpakaļgaitā vai uz priekšu līdz stāvvietai.

• Kad attālums starp automašīnu un sensoru kļūst mazāks par 1,0 metru, skaņas signāls iepīkstas.

• Tuvojoties sensoram tuvāk, pīkstienu skaits palielinās, kad automašīna sasniedz 1 pēdu vai 0,3 metrus, displejā tiek parādīts aicinājums apturēt automašīnu un jums jāpārtrauc.

• Raidītājs tiks atiestatīts un automātiski dīkstāvē. Izslēdziet uztvērēju automašīnā. Ja raidītāju darbinājāt ar akumulatoru, arī to izslēdziet.

Kā vadīt šo automašīnas stāvvietas sensora trauksmes shēmu (mobilais stāvēšanas sensors)

• Iepriekš aprakstītā instrukcija ir līdzīga, ja uztvērējs uzrāda “Automašīna nav diapazonā”, un jūsu automašīna atrodas tālu no šķēršļa.

• Izslēdzot motoru, jāizslēdzas raidītāja ķēde. Izslēdziet uztvērēja ķēdi manuāli.

Autora prototips:

Raidītājs:

Uztvērējs:

Automašīnas novietošanas sensora trauksmes prototips


Pāri: Universāla ESC ķēde BLDC un ģeneratora motoriem Nākamais: Augstas strāvas motora vadības ķēde, izmantojot Arduino