Mạch cảm biến đỗ xe khi lùi xe có báo động

Hãy Thử Công Cụ CủA Chúng Tôi Để LoạI Bỏ Các VấN Đề





Trong bài đăng này, chúng tôi sẽ xây dựng một mạch cảnh báo cảm biến lùi xe ô tô bằng cách sử dụng arduino, cảm biến siêu âm và mô-đun thu phát 2,4 GHz. Dự án này có thể là tính năng bổ sung cho ô tô của bạn nếu nó không có cảm biến đỗ xe tích hợp.

Giới thiệu

Dự án được đề xuất có chức năng tương tự như cảm biến đỗ xe truyền thống, chẳng hạn như khoảng cách giữa xe và chướng ngại vật trên màn hình LCD và cảnh báo bằng âm thanh bíp.



Dự án được đề xuất có thể được sử dụng làm cảm biến đỗ xe tĩnh, tức là cảm biến được đặt trên ga ra của bạn hoặc cảm biến đỗ xe di động, tức là cảm biến được đặt ở phía sau ô tô của bạn nếu bạn sẵn sàng chấp nhận rủi ro nhỏ khi nối dự án với hệ thống điện của ô tô.

Tuy nhiên, động lực của dự án này là xây dựng một cảm biến đỗ xe tĩnh có thể được xây dựng với rủi ro bằng không.



Dự án cảnh báo cảm biến đỗ xe sử dụng Arduino có hai phần, bộ phát bao gồm cảm biến siêu âm, arduino, còi và mô-đun thu phát 2,4 GHz. Mạch này sẽ đo khoảng cách giữa xe và chướng ngại vật.

Bộ thu bao gồm mô-đun thu phát 2,4 GHz, arduino và màn hình LCD 16x2.

Mạch thu sẽ được đặt bên trong xe với pin 9V làm nguồn điện. Bộ thu sẽ hiển thị khoảng cách giữa ô tô và chướng ngại vật bằng mét.

Bộ phát sẽ truyền dữ liệu cảm biến đến bộ thu bên trong xe thông qua liên kết 2,4 GHz. Liên kết giao tiếp được thiết lập bằng mô-đun NRF24L01.

Bây giờ chúng ta hãy xem tổng quan về mô-đun NRF24L01.

Hình minh họa của NRF24L01:

Mô-đun NRF24L01

Mô-đun này được thiết kế để thiết lập liên kết giao tiếp hai chiều giữa hai bộ vi điều khiển. Nó hoạt động trên giao thức truyền thông SPI. Nó có 125 kênh khác nhau và có tốc độ dữ liệu tối đa là 2Mbps. Nó có tầm bắn tối đa lý thuyết là 100 mét.

Cấu hình ghim:

Nó hoạt động trên 3.3V, vì vậy 5 volt trên thiết bị đầu cuối Vcc có thể giết chết nó. Tuy nhiên, nó có thể chấp nhận tín hiệu dữ liệu 5V từ vi điều khiển.

Bây giờ, hãy chuyển sang phần phát của dự án.

Mạch phát báo động cảm biến đỗ xe

Mạch được nối dây với mô-đun NRF24L01 với 5 dây kết nối với các chân I / O kỹ thuật số của arduino và phần còn lại của hai là 3.3V và nối đất. Chân số 2 được kết nối với đế của bóng bán dẫn sẽ cung cấp năng lượng cho bộ rung.

Các cực nguồn của cảm biến siêu âm được kết nối với 5V và GND và A0 được kết nối với chân kích hoạt và A1 được kết nối với chân echo của cảm biến.

Dữ liệu khoảng cách của cảm biến được truyền qua mô-đun NRF24L01 tới bộ thu.

-------------------------------------------------- ----------------------------------------- Vui lòng tải xuống tệp thư viện từ liên kết sau: github.com/nRF24/RF24.git----------------------------------------- -------------------------------------------------- ---

Chương trình cho Máy phát:

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

Điều đó kết luận máy phát.

Người nhận:

Bộ thu có màn hình LCD 16x2 để hiển thị phép đo khoảng cách. Kết nối màn hình được cung cấp bên dưới:

Mạch hiển thị màn hình LCD báo động cảm biến đỗ xe

Điều chỉnh chiết áp 10K để có độ tương phản xem tốt hơn.

Sơ đồ trên là phần còn lại của mạch thu. Một nút ấn được cung cấp để thiết lập lại arduino trong trường hợp kết nối liên kết 2,4 GHz không được thiết lập.

Mạch thu được đặt bên trong ô tô, nó có thể được cấp nguồn từ pin 9V. Bộ thu có thể được đặt trong một hộp rác có thể làm cho xe của bạn trông đẹp. Hộp rác có thể được đặt trong xe của bạn phía trên cụm đồng hồ hoặc bất kỳ nơi nào thuận tiện mà bạn muốn.

Chương trình cho người nhận:

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

Bây giờ, người nhận kết thúc.

Cách đặt cảm biến làm cảm biến đỗ xe tĩnh:

Cách đặt cảm biến làm cảm biến đỗ xe di động:

Trong cảm biến đỗ xe di động, cảm biến siêu âm của máy phát được đặt ở phía sau ô tô, năng lượng được cung cấp từ pin ô tô. Nó phải được nối dây theo cách mà khi bạn tắt máy, arduino phải ngắt kết nối với nguồn cung cấp.

Người nhận có thể được đặt bên trong như đã đề cập trước đây.

Cách vận hành dự án cảm biến Bãi đậu xe ô tô này (Loại cố định)

• Bật nguồn cho máy phát trước, hãy đi đến ô tô của bạn và bật máy thu. Nếu kết nối giữa bộ phát và bộ thu được thiết lập, nó sẽ hiển thị “Kết nối: OK” và hiển thị khoảng cách giữa xe và cảm biến.

• Nếu nó hiển thị 'Kết nối không được thiết lập', hãy nhấn nút ấn được cung cấp trên đầu thu.

• Nó có thể hiển thị 'Xe không trong phạm vi' nếu lon của bạn ở xa cảm biến siêu âm.

• Nhẹ nhàng đưa xe của bạn lùi hoặc tiến tới chỗ đậu xe của bạn.

• Khi khoảng cách giữa xe và cảm biến nhỏ hơn 1,0 mét, còi sẽ phát ra tiếng bíp.

• Khi bạn đến gần cảm biến hơn, tỷ lệ tiếng bíp tăng lên, khi xe đi đến 1 foot hoặc 0,3 mét, màn hình hiển thị thông báo nhắc xe dừng và bạn phải dừng lại.

• Máy phát sẽ tự động thiết lập lại và chuyển sang chế độ không tải. Tắt đầu thu trong ô tô của bạn. Nếu bạn cấp nguồn cho máy phát bằng pin, hãy tắt nó đi.

Cách vận hành mạch báo động cảm biến đỗ xe này (Cảm biến đỗ xe di động)

• Đó là hướng dẫn đã nêu trước đó tương tự nếu bộ thu tín hiệu hiển thị “Xe không trong phạm vi” xe của bạn ở cách xa chướng ngại vật.

• Khi bạn tắt động cơ, mạch máy phát phải tắt. Tắt mạch thu bằng tay.

Nguyên mẫu của Tác giả:

Hệ thống điều khiển:

Người nhận:

Nguyên mẫu cảnh báo cảm biến đỗ xe


Trước: Mạch ESC đa năng cho động cơ BLDC và Máy phát điện Tiếp theo: Mạch điều khiển động cơ dòng cao sử dụng Arduino