Litar Sensor Tempat Letak Kereta Terbalik dengan Penggera

Cuba Instrumen Kami Untuk Menghapuskan Masalah





Dalam catatan ini kita akan membina litar penggera sensor letak kenderaan terbalik menggunakan arduino, sensor ultrasonik dan modul transceiver 2.4 GHz. Projek ini boleh menjadi ciri tambahan untuk kereta anda jika tidak menggunakan sensor tempat letak kereta terpasang.

Pengenalan

Projek yang dicadangkan mempunyai fungsi yang serupa dengan sensor tempat letak kereta tradisional, seperti jarak antara kereta dan halangan pada paparan LCD dan peringatan bunyi bip.



Projek yang dicadangkan boleh digunakan sebagai sensor parkir pegun iaitu sensor yang diletakkan di garaj anda atau sensor tempat letak kenderaan mudah alih, iaitu sensor yang diletakkan di bahagian belakang kereta anda jika anda bersedia mengambil risiko kecil untuk memasang kabel projek dengan sistem elektrik kereta.

Walau bagaimanapun, motivasi projek ini adalah membina sensor parkir pegun yang boleh dibina dengan risiko sifar.



Projek penggera sensor tempat letak kereta menggunakan Arduino mempunyai dua bahagian, pemancar yang terdiri daripada sensor ultrasonik, arduino, buzzer dan modul transceiver 2.4 GHz. Litar ini akan mengukur jarak antara kereta dan halangan.

Penerima terdiri daripada modul transceiver 2.4 GHz, arduino dan paparan LCD 16x2.

Litar penerima akan diletakkan di dalam kereta dengan bateri 9V sebagai bekalan kuasa. Penerima akan menunjukkan jarak antara kereta dan halangan dalam meter.

Pemancar akan mengirimkan data sensor ke penerima di dalam kereta melalui pautan 2.4 GHz. Pautan komunikasi dibuat menggunakan modul NRF24L01.

Sekarang mari kita lihat gambaran keseluruhan modul NRF24L01.

Ilustrasi NRF24L01:

Modul NRF24L01

Modul ini dirancang untuk mewujudkan hubungan komunikasi dua arah antara dua mikrokontroler. Ia berfungsi pada protokol komunikasi SPI. Ia mempunyai 125 saluran yang berbeza dan mempunyai kadar data maksimum 2Mbps. Ia mempunyai jarak maksimum teori 100 meter.

Konfigurasi pin:

Ia beroperasi pada 3.3V, jadi 5 volt pada terminal Vcc dapat membunuhnya. Walau bagaimanapun, ia dapat menerima isyarat data 5V dari mikrokontroler.

Sekarang mari kita beralih ke pemancar projek.

Litar Pemancar Penggera Sensor Tempat Letak Kereta

Litar berwayar dengan modul NRF24L01 dengan 5 wayar disambungkan ke pin I / O digital arduino dan selebihnya dari dua hingga 3.3V dan arde. Pin # 2 disambungkan ke dasar transistor yang akan menggerakkan buzzer.

Terminal kuasa sensor ultrasonik disambungkan ke 5V dan GND dan A0 disambungkan ke pin pemicu dan A1 disambungkan ke pin echo sensor.

Data jarak sensor dihantar melalui modul NRF24L01 ke penerima.

-------------------------------------------------- ----------------------------------------- Sila muat turun fail perpustakaan dari pautan ikuti: github.com/nRF24/RF24.git----------------------------------------- -------------------------------------------------- ---

Program untuk Pemancar:

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

Itu menyimpulkan pemancar.

Penerima:

Penerima mempunyai paparan LCD 16x2 untuk menampilkan pengukuran jarak. Sambungan paparan diberikan di bawah:

Litar Paparan Penggera Sensor Tempat Letak Kereta

Laraskan potensiometer 10K untuk kontras tontonan yang lebih baik.

Skema di atas adalah litar penerima yang lain. Butang tekan disediakan untuk menetapkan semula arduino sekiranya sambungan pautan 2,4 GHz tidak terjalin.

Litar penerima diletakkan di dalam kereta, ia boleh dikuasakan dari bateri 9V. Penerima boleh diletakkan di dalam kotak sampah yang mungkin menjadikan kereta anda kelihatan baik. Kotak sampah boleh diletakkan di dalam kereta anda di atas kelompok instrumen atau tempat yang sesuai yang anda mahukan.

Program untuk Penerima:

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

Sekarang, itu menyimpulkan penerima.

Cara meletakkan sensor sebagai sensor parkir pegun:

Cara meletakkan sensor sebagai sensor parkir mudah alih:

Di tempat letak kenderaan mudah alih, sensor ultrasonik pemancar diletakkan di bahagian belakang kereta, kuasa diberikan dari bateri kereta. Ia mesti dikabel sedemikian rupa sehingga apabila anda mematikan pencucuhan, arduino mesti terputus dari bekalan.

Penerima boleh diletakkan di dalam seperti yang disebutkan sebelumnya.

Cara mengendalikan projek sensor Tempat Letak Kereta ini (Jenis pegun)

• Hidupkan Pemancar HIDUP terlebih dahulu, pergi ke kereta anda dan hidupkan penerima. Sekiranya hubungan antara pemancar dan penerima dibuat, ia akan memaparkan 'Sambungan: OK' dan menunjukkan jarak antara kereta dan sensor.

• Jika memaparkan 'Sambungan tidak dibuat' tekan butang tekan yang disediakan pada penerima.

• Ia mungkin menampilkan 'Kereta tidak berada dalam jarak jauh' jika kaleng anda jauh dari sensor ultrasonik.

• Perlahan-lahan bawa kereta anda ke belakang atau ke hadapan ke tempat letak kereta anda.

• Oleh kerana jarak antara kereta dan sensor kurang dari 1.0 meter, bel berbunyi.

• Semasa anda mendekati sensor semakin dekat, laju bunyi bip meningkat, apabila kereta mencapai 1 kaki atau 0,3 meter, paparan meminta untuk menghentikan kereta dan anda mesti berhenti.

• Pemancar akan diset semula dan mati secara automatik. Matikan penerima di dalam kereta anda. Sekiranya anda menghidupkan pemancar dengan bateri, matikan juga.

Cara mengendalikan litar penggera sensor tempat letak kereta ini

• Ini adalah arahan yang dinyatakan sebelumnya jika penerima memaparkan 'Car not in range' kereta anda jauh dari halangan.

• Apabila anda mematikan mesin, litar pemancar mesti dimatikan. Matikan litar penerima secara manual.

Prototaip Pengarang:

Pemancar:

Penerima:

Prototaip Pengesan Tempat Letak Kereta


Sebelumnya: Litar ESC Universal untuk motor BLDC dan Alternator Seterusnya: Litar Kawalan Motor Arus Tinggi menggunakan Arduino