วงจรเซ็นเซอร์ถอยจอดรถพร้อมสัญญาณเตือน

ลองใช้เครื่องมือของเราเพื่อกำจัดปัญหา





ในโพสต์นี้เราจะสร้างวงจรเตือนภัยเซ็นเซอร์ถอยจอดรถโดยใช้ arduino เซ็นเซอร์อัลตราโซนิกและโมดูลตัวรับส่งสัญญาณ 2.4 GHz โปรเจ็กต์นี้อาจเป็นฟีเจอร์เสริมสำหรับรถของคุณหากไม่ได้ติดตั้งเซ็นเซอร์จอดรถในตัว

บทนำ

โครงการที่นำเสนอนี้มีฟังก์ชันการทำงานที่คล้ายคลึงกับเซ็นเซอร์จอดรถแบบเดิมเช่นระยะห่างระหว่างรถและสิ่งกีดขวางบนจอ LCD และเสียงบี๊บเตือน



โครงการที่เสนอสามารถใช้เป็นเซ็นเซอร์จอดนิ่งได้เช่นเซ็นเซอร์ที่วางอยู่บนโรงรถหรือเซ็นเซอร์จอดรถเคลื่อนที่เช่นเซ็นเซอร์ที่วางไว้ที่ด้านหลังรถหากคุณพร้อมที่จะเสี่ยงเล็กน้อยในการเดินสายไฟในโครงการด้วยระบบไฟฟ้าของรถยนต์

อย่างไรก็ตามแรงจูงใจของโครงการนี้คือ สร้างเซ็นเซอร์จอดนิ่ง ซึ่งสามารถสร้างขึ้นโดยไม่มีความเสี่ยง



โครงการแจ้งเตือนเซ็นเซอร์ที่จอดรถโดยใช้ Arduino มีสองส่วนคือตัวส่งสัญญาณซึ่งประกอบด้วยเซ็นเซอร์อัลตราโซนิก arduino กริ่งและโมดูลตัวรับส่งสัญญาณ 2.4 GHz วงจรนี้จะวัดระยะห่างระหว่างรถและสิ่งกีดขวาง

ตัวรับประกอบด้วยโมดูลตัวรับส่งสัญญาณ 2.4 GHz, arduino และจอ LCD 16x2

วงจรรับสัญญาณจะถูกวางไว้ภายในรถโดยมีแบตเตอรี่ 9V เป็นแหล่งจ่ายไฟ เครื่องรับจะแสดงระยะห่างระหว่างรถและสิ่งกีดขวางเป็นเมตร

เครื่องส่งจะส่งข้อมูลเซ็นเซอร์ไปยังเครื่องรับภายในรถผ่านลิงค์ 2.4 GHz ลิงก์การสื่อสารถูกสร้างขึ้นโดยใช้โมดูล NRF24L01

ตอนนี้เรามาดูภาพรวมของโมดูล NRF24L01

ภาพประกอบของ NRF24L01:

NRF24L01 โมดูล

โมดูลนี้ออกแบบมาเพื่อสร้างการเชื่อมโยงการสื่อสารแบบสองทิศทางระหว่างไมโครคอนโทรลเลอร์สองตัว ทำงานบนโปรโตคอลการสื่อสาร SPI มี 125 ช่องสัญญาณที่แตกต่างกันและมีอัตราข้อมูลสูงสุด 2Mbps มีช่วงสูงสุดตามทฤษฎีที่ 100 เมตร

การกำหนดค่าพิน:

มันทำงานบน 3.3V ดังนั้น 5 โวลต์บนขั้ว Vcc สามารถฆ่ามันได้ อย่างไรก็ตามสามารถรับสัญญาณข้อมูล 5V จากไมโครคอนโทรลเลอร์

ตอนนี้เรามาดูเครื่องส่งของโครงการกัน

วงจรสัญญาณเตือนเซ็นเซอร์ที่จอดรถ

วงจรต่อสายด้วยโมดูล NRF24L01 โดยมีสายไฟ 5 เส้นเชื่อมต่อกับพิน I / O ดิจิทัลของ arduino และส่วนที่เหลือของอีกสองถึง 3.3V และกราวด์ พิน # 2 เชื่อมต่อกับฐานของทรานซิสเตอร์ซึ่งจะจ่ายไฟให้กับออด

ขั้วไฟของเซ็นเซอร์อัลตราโซนิกเชื่อมต่อกับ 5V และ GND และ A0 เชื่อมต่อกับขาทริกเกอร์และ A1 เชื่อมต่อกับขาสะท้อนของเซ็นเซอร์

ข้อมูลระยะทางของเซ็นเซอร์จะถูกส่งผ่านโมดูล NRF24L01 ไปยังเครื่องรับ

-------------------------------------------------- ----------------------------------------- โปรดดาวน์โหลดไฟล์ห้องสมุดจากลิงค์ต่อไปนี้: github.com/nRF24/RF24.git----------------------------------------- -------------------------------------------------- ---

โปรแกรมสำหรับเครื่องส่ง:

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

นั่นสรุปเครื่องส่ง

ผู้รับ:

เครื่องรับมีจอ LCD 16x2 สำหรับแสดงการวัดระยะทาง การเชื่อมต่อจอแสดงผลได้รับด้านล่าง:

วงจรแสดงสัญญาณเตือนเซ็นเซอร์ที่จอดรถ LCD

ปรับโพเทนชิออมิเตอร์ 10K เพื่อความคมชัดในการรับชมที่ดีขึ้น

แผนผังข้างต้นเป็นส่วนที่เหลือของวงจรรับ ปุ่มกดมีไว้สำหรับการรีเซ็ต arduino ในกรณีที่ไม่ได้สร้างการเชื่อมต่อลิงค์ 2.4 GHz

วงจรรับสัญญาณจะอยู่ในรถซึ่งสามารถใช้พลังงานจากแบตเตอรี่ 9V เครื่องรับอาจอยู่ในกล่องขยะซึ่งอาจทำให้รถของคุณดูดี กล่องขยะอาจวางไว้ในรถของคุณเหนือแผงหน้าปัดหรือที่ ๆ คุณต้องการ

โปรแกรมสำหรับผู้รับ:

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

ตอนนี้สรุปว่าผู้รับ

วิธีวางเซ็นเซอร์เป็นเซ็นเซอร์จอดนิ่ง:

วิธีวางเซ็นเซอร์เป็นเซ็นเซอร์จอดรถเคลื่อนที่:

ในเซ็นเซอร์จอดรถเคลื่อนที่เซ็นเซอร์อัลตราโซนิกของเครื่องส่งสัญญาณจะวางไว้ที่ด้านหลังของรถพลังงานจะมาจากแบตเตอรี่ของรถยนต์ ควรต่อสายในลักษณะที่เมื่อคุณปิดสวิตช์กุญแจ arduino จะต้องตัดการเชื่อมต่อจากแหล่งจ่ายไฟ

ผู้รับอาจถูกวางไว้ภายในตามที่กล่าวไว้ก่อนหน้านี้

วิธีการใช้งานโครงการเซ็นเซอร์ที่จอดรถ (ประเภทเครื่องเขียน)

•เปิดเครื่องส่งสัญญาณก่อนไปที่รถของคุณและเปิดเครื่องรับ หากสร้างการเชื่อมต่อระหว่างเครื่องส่งและเครื่องรับสัญญาณจะแสดง“ Connection: OK” และแสดงระยะห่างระหว่างรถและเซ็นเซอร์

•หากแสดงข้อความ 'Connection not created' ให้กดปุ่มกดที่มีให้บนเครื่องรับ

•อาจแสดงข้อความ 'รถไม่อยู่ในระยะ' หากคุณสามารถอยู่ห่างจากเซ็นเซอร์อัลตราโซนิก

•ค่อยๆถอยรถของคุณหรือเดินหน้าไปยังที่จอดรถของคุณ

•เนื่องจากระยะห่างระหว่างรถและเซ็นเซอร์น้อยกว่า 1.0 เมตรเสียงกริ่งจะดังขึ้น

•เมื่อคุณเข้าใกล้เซ็นเซอร์มากขึ้นอัตราการเพิ่มขึ้นของเสียงเตือนเมื่อรถเข้าใกล้ 1 ฟุตหรือ 0.3 เมตรจอแสดงผลจะแจ้งให้หยุดรถและคุณต้องหยุด

•เครื่องส่งจะรีเซ็ตและเข้าสู่โหมดว่างโดยอัตโนมัติ ปิดเครื่องรับในรถของคุณ หากคุณขับเคลื่อนเครื่องส่งด้วยแบตเตอรี่ให้ปิดเครื่องด้วย

วิธีการใช้งานวงจรเตือนเซ็นเซอร์ที่จอดรถ (เซ็นเซอร์จอดรถมือถือ)

•เป็นคำสั่งที่ระบุไว้ก่อนหน้านี้คล้ายกันหากเครื่องรับแสดงข้อความ“ รถไม่อยู่ในระยะ” รถของคุณอยู่ห่างจากสิ่งกีดขวาง

•เมื่อคุณดับเครื่องยนต์วงจรเครื่องส่งสัญญาณจะต้องดับลง ปิดวงจรเครื่องรับด้วยตนเอง

ต้นแบบของผู้แต่ง:

เครื่องส่ง:

ผู้รับ:

ต้นแบบสัญญาณเตือนเซ็นเซอร์ที่จอดรถ


คู่ของ: วงจร ESC สากลสำหรับมอเตอร์ BLDC และอัลเทอร์เนเตอร์ ถัดไป: วงจรควบคุมมอเตอร์กระแสสูงโดยใช้ Arduino