Car Reverse Parking Sensor Circuit na may Alarm

Subukan Ang Aming Instrumento Para Sa Pagtanggal Ng Mga Problema





Sa post na ito ay magtatayo kami ng isang car reverse circuit sensor alarm circuit gamit ang arduino, ultrasonic sensor at 2.4 GHz transceiver module. Ang proyektong ito ay maaaring maging tampok na add-on para sa iyong kotse kung hindi ito isport sa isang built-in na mga sensor ng paradahan.

Panimula

Ang iminungkahing proyekto ay may katulad na pag-andar tulad ng tradisyonal na sensor ng paradahan ng kotse, tulad ng distansya sa pagitan ng kotse at balakid sa isang LCD display at audio beep alert.



Ang iminungkahing proyekto ay maaaring magamit bilang nakatigil na sensor ng paradahan ibig sabihin ang sensor na nakalagay sa iyo garahe o mobile parking sensor ibig sabihin sensor na nakalagay sa likuran ng iyong sasakyan kung handa ka nang kumuha ng isang maliit na peligro ng pagkakabit ng proyekto sa sistemang elektrikal ng kotse.

Gayunpaman, ang pagganyak na ang proyektong ito ay upang bumuo ng isang nakatigil na sensor ng paradahan na maaaring maitayo na may zero na peligro.



Ang proyekto ng alarm alarm ng paradahan ng kotse na gumagamit ng Arduino ay may dalawang bahagi, ang transmiter na binubuo ng ultrasonic sensor, arduino, buzzer at 2.4 GHz transceiver module. Susukat ng circuit na ito ang distansya sa pagitan ng kotse at balakid.

Ang tatanggap ay binubuo ng 2.4 GHz transceiver module, arduino at 16x2 LCD display.

Ang receiver circuit ay mailalagay sa loob ng kotse na may 9V na baterya bilang power supply. Ipapakita ng tatanggap ang distansya sa pagitan ng kotse at balakid sa metro.

Ipapadala ng transmiter ang data ng sensor sa tatanggap sa loob ng kotse sa pamamagitan ng link na 2.4 GHz. Ang link sa komunikasyon ay itinatag gamit ang NRF24L01 module.

Tingnan natin ngayon ang pangkalahatang-ideya ng module na NRF24L01.

Paglalarawan ng NRF24L01:

NRF24L01 Modyul

Ang modyul na ito ay idinisenyo upang maitaguyod ang bi-directional na ugnayan sa komunikasyon sa pagitan ng dalawang mga microcontroller. Gumagana ito sa protocol ng komunikasyon ng SPI. Mayroon itong 125 iba't ibang mga channel at may maximum na rate ng data na 2Mbps. Mayroon itong teoretikal na maximum na saklaw na 100 metro.

I-configure ang pin:

Ito ay nagpapatakbo sa 3.3V, kaya 5 volt sa Vcc terminal ang maaaring pumatay dito. Gayunpaman, maaari itong tanggapin ang mga signal ng 5V data mula sa mga microcontroller.

Ngayon, magpatuloy tayo sa nagpapadala ng proyekto.

Car Parking Sensor Alarm Transmitter Circuit

Ang circuit ay wired gamit ang NRF24L01 module na may 5 wires na konektado sa digital I / O mga pin ng arduino at natitirang dalawa hanggang 3.3V at ground. Ang Pin # 2 ay konektado sa base ng transistor na magpapagana sa buzzer.

Ang mga terminal ng kuryente ng ultrasonic sensor ay konektado sa 5V at GND at A0 ay konektado upang ma-trigger ang pin at ang A1 ay konektado sa echo pin ng sensor.

Ang data ng distansya ng sensor ay ipinapadala sa pamamagitan ng NRF24L01 module sa tatanggap.

---- ----------------- Mangyaring i-download ang file ng library mula sa sundin ang link: github.com/nRF24/RF24.git --------------------- ---- ---

Programa para sa Transmitter:

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

Tinapos nito ang transmiter.

Tatanggap:

Ang Receiver ay may 16x2 LCD display para sa pagpapakita ng pagsukat ng distansya. Ang koneksyon sa display ay ibinibigay sa ibaba:

Car Parking Sensor Alarm LCD Display Circuit

Ayusin ang 10K potentiometer para sa mas mahusay na pagkakaiba sa pagtingin.

Ang iskematikong nasa itaas ay natitirang bahagi ng circuit ng tatanggap. Ang isang pindutan ng push ay ibinigay para sa pag-reset ng arduino sa kaso ng 2.4 GHz na koneksyon sa link ay hindi naitatag.

Ang receiver circuit ay inilalagay sa loob ng kotse maaari itong maging lakas mula sa isang 9V na baterya. Ang tagatanggap ay maaaring mailagay sa isang junk box na maaaring magpaganda ng hitsura ng iyong sasakyan. Ang junk box ay maaaring ilagay sa iyong kotse sa itaas ng instrumento cluster o anumang maginhawang lugar na nais mo.

Programa para sa Tagatanggap:

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

Ngayon, natapos na ang tatanggap.

Paano maglagay ng sensor bilang hindi gumagalaw na sensor ng paradahan:

Paano mailagay ang sensor bilang mobile parking sensor:

Sa sensor ng mobile parking ay inilalagay ang sensor ng ultrasonic ng transmiter sa likurang bahagi ng kotse, ang lakas ay ibinibigay mula sa baterya ng kotse. Dapat itong i-wire sa isang paraan na kapag pinatay mo ang pag-aapoy dapat na mag-disconnect ang arduino mula sa supply.

Ang tagatanggap ay maaaring mailagay sa loob ng tao tulad ng nabanggit na dati.

Paano patakbuhin ang proyekto ng sensor ng Car Parking na ito (uri ng Stationary)

• Patayin muna ang Transmitter, pumunta sa iyong kotse at i-on ang receiver. Kung ang koneksyon sa pagitan ng transmitter at receiver ay naitatag ay ipapakita nito ang 'Koneksyon: OK' at ipinapakita ang distansya sa pagitan ng kotse at sensor.

• Kung ipinakita nito ang 'Hindi naitaguyod ang koneksyon' pindutin ang pindutan ng push na ibinigay sa tatanggap.

• Maaari itong ipakita ang 'Kotse wala sa saklaw' kung ang iyong lata ay malayo mula sa ultrasonic sensor.

• Dahan-dahang ibalik ang iyong sasakyan o ipasa sa iyong paradahan ng paradahan.

• Habang ang distansya sa pagitan ng kotse at sensor ay nakakakuha ng mas mababa sa 1.0 metro ang mga buzzer beep.

• Habang papalapit ka sa sensor nang malapit sa pagtaas ng rate ng beep, kapag umabot na sa 1 talampakan o 0.3 metro ang kotse, ang prompt ng display upang ihinto ang kotse at dapat mong ihinto.

• Ang transmitter ay i-reset at awtomatikong pupunta sa idle. Patayin ang receiver sa iyong kotse. Kung pinapagana mo ang transmitter sa pamamagitan ng baterya, patayin din ito.

Paano patakbuhin ang circuit ng alarm ng sensor ng paradahan ng kotse na ito (Mobile Parking sensor)

• Ito ay katulad ng dati nang nakasaad na tagubilin kung ang tumatanggap ay nagpapakita ng 'Kotse wala sa saklaw' ang iyong sasakyan ay malayo sa balakid.

• Kapag pinatay mo ang makina, dapat na patayin ang circuit ng transmitter. Manu-manong patayin ang circuit ng receiver.

Prototype ng May-akda:

Transmitter:

Tatanggap:

Prototype ng Sensor ng Paradahan ng Kotse


Nakaraan: Universal ESC Circuit para sa BLDC at Alternator motors Susunod: Mataas na Kasalukuyang Motor Control Circuit gamit ang Arduino