الارم کے ساتھ کار ریورس پارکنگ سینسر سرکٹ

مسائل کو ختم کرنے کے لئے ہمارے آلے کو آزمائیں





اس پوسٹ میں ہم آرڈوینو ، الٹراسونک سینسر اور 2.4 گیگا ہرٹز ٹرانسیور ماڈیول کا استعمال کرتے ہوئے کار ریورس پارکنگ سینسر الارم سرکٹ تعمیر کرنے جارہے ہیں۔ اگر یہ بلڈنگ میں پارکنگ سینسر کا کھیل نہیں کرتی ہے تو یہ پروجیکٹ آپ کی کار کے لئے ایڈن آن فیچر ہوسکتا ہے۔

تعارف

مجوزہ پروجیکٹ میں اسی طرح کی فعالیت ہے جیسے روایتی کار پارکنگ سینسر ہے ، جیسے LCD ڈسپلے میں کار اور رکاوٹ کے درمیان فاصلہ اور آڈیو بیپ الرٹ۔



مجوزہ منصوبے کو اسٹیشنری پارکنگ سینسر کے طور پر استعمال کیا جاسکتا ہے۔ یعنی آپ کے گیراج یا موبائل پارکنگ سینسر پر رکھے ہوئے سینسر یعنی اگر آپ کار کے برقی سسٹم کے ذریعہ پروجیکٹ کو وائرنگ کرنے کا ایک چھوٹا خطرہ مول لینے کے لئے تیار ہیں تو آپ کی گاڑی کے پچھلے حصے پر رکھے ہوئے سینسر۔

تاہم ، اس منصوبے کی حوصلہ افزائی کرنا ہے اسٹیشنری پارکنگ سینسر بنائیں جو صفر رسک کے ساتھ بنایا جاسکتا ہے۔



ارڈوینو کا استعمال کرتے ہوئے کار پارکنگ سینسر الارم پروجیکٹ کے دو حصے ہیں ، ٹرانسمیٹر جس میں الٹراسونک سینسر ، ارڈینو ، بزر اور 2.4 گیگا ہرٹز ٹرانسیور ماڈیول ہوتا ہے۔ یہ سرکٹ کار اور رکاوٹ کے درمیان فاصلے کی پیمائش کرے گا۔

وصول کنندہ 2.4 گیگا ہرٹز ٹرانسیور ماڈیول ، ارڈینو اور 16 ایکس 2 ایل سی ڈی ڈسپلے پر مشتمل ہے۔

وصول کنندہ سرکٹ 9V بیٹری کے ساتھ بجلی کی فراہمی کے طور پر کار کے اندر رکھا جائے گا۔ وصول کنندہ میٹر اور کار میں رکاوٹ کے درمیان فاصلہ ظاہر کرے گا۔

ٹرانسمیٹر سینسر کا ڈیٹا کار کے اندر وصول کرنے والے کو 2.4 گیگا ہرٹز لنک کے ذریعہ منتقل کرے گا۔ مواصلاتی لنک NRF24L01 ماڈیول کا استعمال کرتے ہوئے قائم کیا گیا ہے۔

آئیے اب NRF24L01 ماڈیول کا جائزہ دیکھیں۔

NRF24L01 کی مثال:

NRF24L01 ماڈیول

یہ ماڈیول دو مائکروکانٹرولرز کے مابین دو جہتی مواصلاتی لنک قائم کرنے کے لئے ڈیزائن کیا گیا ہے۔ یہ ایس پی آئی مواصلات پروٹوکول پر کام کرتا ہے۔ اس میں 125 مختلف چینلز ہیں اور اس میں زیادہ سے زیادہ ڈیٹا کی شرح 2 ایم بی پی ایس ہے۔ اس کی نظریاتی زیادہ سے زیادہ حد 100 میٹر ہے۔

پن کی تشکیل:

یہ 3.3V پر کام کرتا ہے ، لہذا وی سی سی ٹرمینل پر 5 وولٹ اسے مار سکتا ہے۔ تاہم ، یہ مائکروکنٹرولرز سے 5V ڈیٹا سگنل قبول کرسکتا ہے۔

اب چلیں اس پروجیکٹ کے ٹرانسمیٹر کی طرف۔

کار پارکنگ سینسر الارم ٹرانسمیٹر سرکٹ

سرکٹ NRF24L01 ماڈیول کے ساتھ وائرڈ ہے جس میں 5 تاریں آڈیڈوینو کے ڈیجیٹل I / O پنوں اور باقی دو سے 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-------------//

جو ٹرانسمیٹر کا اختتام کرتا ہے۔

وصول کنندہ:

وصول کنندہ کے پاس فاصلے کی پیمائش کی نمائش کے لئے 16x2 LCD ڈسپلے ہیں۔ ڈسپلے کنکشن ذیل میں دیا گیا ہے:

کار پارکنگ سینسر الارم LCD ڈسپلے سرکٹ

بہتر دیکھنے کے برعکس کے لئے 10K پوٹینومیٹر کو ایڈجسٹ کریں۔

مذکورہ بالا اسکیمیٹ باقی وصول کنندہ سرکٹ ہے۔ 2.4 گیگا ہرٹز لنک کنکشن قائم نہ ہونے کی صورت میں ارڈوینو کو دوبارہ ترتیب دینے کے لئے ایک پش بٹن فراہم کیا جاتا ہے۔

وصول کرنے والا سرکٹ کار کے اندر رکھا گیا ہے جو 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-------//

اب ، جو وصول کنندہ کو ختم کرتا ہے۔

سینسر کو اسٹیشنری پارکنگ سینسر کے بطور رکھنے کا طریقہ:

سینسر کو موبائل پارکنگ سینسر کے بطور رکھنے کا طریقہ:

موبائل پارکنگ سینسر میں ٹرانسمیٹر کا الٹراسونک سینسر کار کے پچھلے حصے میں رکھا جاتا ہے ، کار کی بیٹری سے بجلی فراہم کی جاتی ہے۔ اسے اس طرح سے تار لگانا چاہئے کہ جب آپ اگنیشن کو آف کردیں تو ارڈوینو کو سپلائی سے رابطہ منقطع کردینا چاہئے۔

وصول کنندہ کو اندرونی اندر رکھا جاسکتا ہے جیسا کہ پہلے بتایا گیا ہے۔

اس کار پارکنگ سینسر پروجیکٹ کو چلانے کا طریقہ (اسٹیشنری قسم)

the پہلے ٹرانسمیٹر کو پاور کریں ، اپنی گاڑی پر جائیں اور وصول کنندہ کو آن کریں۔ اگر ٹرانسمیٹر اور وصول کنندہ کے مابین رابطہ قائم ہوجائے گا تو وہ 'کنکشن: اوکے' دکھائے گا اور کار اور سینسر کے مابین فاصلہ ظاہر کرتا ہے۔

• اگر یہ 'کنکشن قائم نہیں ہے' دکھاتا ہے تو وصول کنندہ پر فراہم کردہ پش بٹن دبائیں۔

your اگر یہ الٹراسونک سینسر سے بہت دور ہے تو یہ 'کار کی حد میں نہیں ہے' ظاہر کر سکتا ہے۔

ent آہستہ سے اپنی کار کو ریورس کریں یا اپنے پارکنگ پلاٹ کو آگے بڑھیں۔

• جیسے ہی کار اور سینسر کے درمیان فاصلہ 1.0 میٹر سے بھی کم ہوجاتا ہے بزر بیپز۔

• جب آپ سینسر کے قریب جائیں تو بیپ کی شرح میں اضافہ ہوجاتا ہے ، ایک بار جب کار 1 فٹ یا 0.3 میٹر تک پہنچ جاتی ہے ، تو کار کو روکنے کا ڈسپلے اشارہ کرتا ہے اور آپ کو رک جانا چاہئے۔

trans ٹرانسمیٹر ری سیٹ ہوجائے گا اور خود کار طریقے سے بیکار ہوجائے گا۔ اپنی گاڑی میں وصول کرنے والا بند کردیں۔ اگر آپ ٹرانسمیٹر کو بیٹری کے ذریعہ چلاتے ہیں تو ، اسے بھی بند کردیں۔

اس کار پارکنگ سینسر الارم سرکٹ کو کیسے چلائیں (موبائل پارکنگ سینسر)

• یہ اسی طرح کی پہلے کی ہدایتوں میں ہے اگر وصول کنندہ آپ کی گاڑی رکاوٹ سے دور ہے تو 'کار حد میں نہیں ہے' دکھاتا ہے۔

you جب آپ انجن کو آف کرتے ہیں تو ، ٹرانسمیٹر سرکٹ کو بند کرنا ہوگا۔ دستی طور پر وصول کنندہ سرکٹ بند کردیں۔

مصنف کا پروٹو ٹائپ:

ٹرانسمیٹر:

وصول کنندہ:

کار پارکنگ سینسر الارم پروٹو ٹائپ


پچھلا: بی ایل ڈی سی اور الٹرنیٹر موٹرز کیلئے یونیورسل ای ایس سی سرکٹ اگلا: ارڈینو کا استعمال کرتے ہوئے ہائی کرنٹ موٹر کنٹرول سرکٹ