الجمعة، 24 فبراير 2017

Unknown

Distance Meter

Unknown بتاريخ عدد التعليقات : 0

مشروع قياس المسافة عن طريق  HC-SR04 Ultrasonic Sensor


في البداية لا بد لنا قبل الشرح عن الحساس فوق الصوتية HC – SR04 أن نشرح صدى الصوت و ظاهرة دوبلر
عندما تصدر صوتاً مرتفعاً في تجويف البئر فإن الصوت يسافر إلى قاع البئر وينعكس عنه، واذا ما قمت بقياس الفترة الزمنية بين اصدار الصوت وسماع الصدى تستطيع حساب عمق البئر مع علماً بأن سرعة الصوت في الهواء 343  متر لكل ثانية.

وتدعى هذه الظاهرة صدى الصوت Sound Echo وهناك قوانين تحكم هذه الظاهرة وضعها العالم دوبلر

ظاهرة دوبلر أو تأثير دوبلر هو تغير ظاهري للتردد أو الطول الموجي للأمواج عندما ترصد من قبل مراقب متحرك بالنسبة للمصدر الموجي . يدعى هذا التأثير بتأثير دوبلر نسبة للعالم دوبلر الذي اكتشف هذه الظاهرة عام 1842 ميلادي
يُفترض ثبات المشاهد حتى يستطيع رصد التغير في الطول الموجي للموجات القادمة إليه من المصدر ( صوتي أو ضوئي ) وعلى أساسها يستطيع تحديد عما إذا كان الجسم مقترباً أم مبتعداً.
ونحن نشاهد تلك الظاهرة أحيانا ً خلال يومنا العادي عندما نكون مثلا في الشارع وتقترب منا عربة حريق أو عربة إسعاف ، فنسمع صفارتها وهي قادمة علينا بتردد أعلى لأن طول موجة الصوت ينضغط إلى حد ما بفعل سرعة قدومها علينا وبعد أن تمر علينا وتأخذ في الابتعاد عنا نسمع صوت صفارتها بتردد منخقص بسبب أن طول موجتها يزداد استطالة .

لاحظ ان المراقب 1 يسمع صوت السيارة بتردد منخفض عن التردد الذي يسمعه سائق السيارة في حين ان المراقب 2 يسمع صوت السيارة بتردد اعلى من التردد الذي يسمعه السائق.
الان سنحاول ان نجد الصياغة الرياضية لظاهرة دوبلر. وهذه عملية سهلة عكس ما قد يتوقع البعض. ونحتاج فقط الى معرفة قاونين يربطان خواص الموجات. القانون الاول يقول ان الزمن الدوري او زمن اهتزازة واحدة هو مقلوب التردد أو
T = 1/f 
اما القانون الثانى فيربط بين سرعة انتشار الموجات c والتردد f والطول الموجى L ونلاحظ العلاقة العكسية السابق ذكرها بين التردد والطول الموجى فاحدهم يقع فى البسط والاخر فى المقام. فعندما يكون احدهما كبيرا يكون الاخر صغيرا:
f= c/L 
اذن فى الحالة العادية  سيكون الطول الموجى طيقا اللقانون الثانى
L = c/f
ولكن حيث ان مصدر الموجات يتحرك. ففى زمن دورة واحدة  T  سيتحرك مصدر الموجات بالسرعة v اذن سيكون الطول الموجى بالنسبة لمستقبل يقع باتجاه انتشار الموجة اقل. وهنا ساتستخدم الرمز R للتعبير عن المستقبل او مستقبل
    L(R) = c/f – v/f
مع ملاحظة  ان سرعة الموجات ستبقى بالنسبة للمستقبل ثابتة. فسوف تصل الموجة الاولى فى وقتها تماما سواء تحرك المصدر ام لا. فقط اذا تحرك المصدر ستصل الموجات التالية بشكل اسرع. ولكن هذا سوف يفسره المستقبل بان الطول الموجى يقل. اذن بالتعويض فى القانون الثانى   نحصل على:
f(R) = f/(1-v/c)      
واذا كان مصدر الموجة يتحرك مبتعدا عن المستقبل سيكون التردد من وجهة نظر المستقبل كالتالى:
f(R) = f/(1 + v/c)    

الأن سنقوم بشرح مبدأ عمل الحساس فوق الصوتية HC – SR04
 يقوم الحساس بارسال موجة فوق صوتية( Ultrasonic wave )  وعند ارتداد هذه الموجه يتم حساب الزمن التي استغرقته في الارتداد ( العوده )
المسافة الكلية = الزمن x السرعة
ومن المعروف ان سرعة الصوت  في الهواء ثابت و يساوي 343 م/ث
وباستخدام المعادله اعلاه يمكننا حساب المسافة التي قطعتها الموجه فوق الصوتية ذهابا" و اياب و لتحديد بعد الجسم عن مصدر الأمواج فوق الصوتية فلابد من القسمه على اثنان
بعد الجسم عن مصدر الأمواج الفوق صوتية =( الزمن x السرعة)/2

الأن القطع التي نحتاجها للقيام بالتجربة
1: Arduino ( UNO, Mega , Mini, Nano )
2: HC-SR04 Ultrasonic sensor
3: USB cable
4: Jumper cables
5 : lCD 16 *2 

أطراف الحساس فوق الصوتية  HC-SR04 Ultrasonic sensor

أطراف LCD 


 مخطط الدارة ( المشروع )


شرح الكود الخاص بالمشروع:
تكون الحالة HIGH على ال Trig pin لمدة لا تقل عن 10 microseconds ثم بعد ذلك تصبح الحالة LOW وهذه تمثل الموجه فوق الصوتية المرسلة
يتم حساب مدة بقاء الإشارةHIGH  المستقبلة عن  Echo pin
عن طريق أمر:
 pulse In (echo, HIGH); يحسب الزمن بال  microseconds
و بعد ذلك يتم حساب مسافة الجسم عن حساس الأمواج فوق الصوتية ويتم تحولها الى رقم  بوحدة السنتيميتر 
وهذا المخطط الزمني يوضح العملية 

الكود


/*
   This code writen by "Ahmed Fadel" at 29/6/2016
   you can follow "Ahmed Fadel on Facebook from here
   www.fb.com/medofadel48
   This project is about measuring distance and display the ruslts
   on LCD
   Circuit and wiring methoed
   "Ultrasonnic"
   Trigpin to arduino pin 7
   echo pin to arduino pin 8
   "LCD"
   D4 >> pin 5
   D5 >> pin 4
   D6 >> pin 3
   D7 >> pin 2'
   R/W >> GND
   Enable >> pin 11
   RS >> pin 12
   V0 >> 10K pot
*/
#include <LiquidCrystal.h> // add LCD library 
#define echoPin 8
#define trigPin 7
int maximumRange = 100;
long duration , distance ;
// initialize the library with the numbers of the interface pins
LiquidCrystal lcd (12, 11, 5, 4, 3, 2);

void setup() {

  pinMode(trigPin, OUTPUT);
  pinMode(echoPin, INPUT);
  // set up the LCD's number of columns and rows:
  lcd.begin(16, 2);
  lcd.print("Good day ^_^ "); //LCD start quouts 
}
void loop() {
  delay(1500);
  //ultrasinic initalize
  digitalWrite(trigPin, LOW);
  delayMicroseconds(2);

  digitalWrite(trigPin, HIGH);
  delayMicroseconds(10);

  digitalWrite(trigPin, LOW);
  duration = pulseIn(echoPin, HIGH);  //measure time 
  distance = duration / 58.2;  //calculate distance 
  if (distance >= maximumRange) {
    //what display on LCD 
    lcd.clear();
    lcd.setCursor(1, 0);
    lcd.print("distance is");
    lcd.setCursor(3, 2);
    lcd.print(distance);
    lcd.print (" cm far");
  }

  else {
    lcd.clear();
    lcd.setCursor(1, 0);
    lcd.print("distance is");
    lcd.setCursor(3, 2);
    lcd.print(distance);
    lcd.print (" cm close");
  }

  delay(1000);
}

او حمل الكود من هنا



Distance Meter
  • عنوان الموضوع : Distance Meter
  • الكاتب :
  • من قسم :
  • التقييم : 100% مرتكز على 10 تقييمات. 5 تقييمات القراء.
تقييمات المشاركة : Distance Meter 9 على 10 مرتكز على 10 ratings. 9 تقييمات القراء.

مواضيع قد تهمك

0 تعليق

اتبع التعليمات لاضافة تعليق
  • يرجى ترك تعليق على الموضوع. سيتم حذف التعليقات التي تتضمن روابط مباشرة، والإعلانات، أو ما شابه ذلك.
  • لإضافة كود ضعه في : هنا الكود
  • لإضافة كود طويل ضعه في : هنا الكود
  • لإضافة اقتباس ضعه في : اكتب هنا
  • لإضافة صورة ضعها في : رابط الصورة هنا
  • لإضافة فيديو استعمل : [iframe] هنا رابط تضمين الفيديو [/iframe]
  • * قبل ادخال كود عليك بتحويله أولا
  • شكرا لك

فيديو

أرشيف المدونة الإلكترونية

إعلان

تابعنا على الفيس بوك

إعلان

فيسبوك

التعليقات

مواقع صديقة

المشاركات الشائعة

المشاركات الشائعة