الحساسات

حساس الالترا سونيك مع الاردوينو

حساس او مستعشر الالترا سونيك Ultra sonic هو حساس يستخدم الموجات فوق الصوتية , يُستخدم حساس الموجات فوق الصوتية بشكل خاص لقياس المسافة عن بعد وذلك عن طريق اطلاق موجات فوق صوتية ذات تردد مرتفع على جسم يبعد مسافة معينة وعند اصطدام الموجات فوق الصوتية في الجسم سوف تنعكس وترجع الى المستعشر , وعند ارتداد هذه الموجات يتم حساب الزمن من خلال معاملين وهما ثابت سرعة الصوت في الهواء والزمن. وتقدّر سرعة الصوت في وسط هوائي عادي جاف في درجة حرارة (20 °C 68 °F) ب 343 متر في الثانية، أو (1,125 قدم/ثانية). أو ما يساوي 1235 كيلومتر في الساعة (768 ميل/الساعة) [ويكيبديا].

وحتى يعمل الحساس يجب مراعاة اقصى مسافة يصل لها التردد ويرتد اضافة الى ان يكون الجسم ضمن مدى الحساس اي يقع في ضمن منطقة ارسال واستقبال الموجات فوق الصوتية (التي لا يمكن للاذن البشرية سماعها). ويحتوي الحساس  HC – SR04 والذي سوف نستخدمه في مشاريعنا على 4 منافذ كالتالي:

  1. Vcc , التغذية الكهربائية الموجبة – يحتاج حساس HC – SR04 الى 5 فولت حسب ورقة البيانات Data Sheet الخاصة به.
  2. Ground , الخط الأرضي السالب.
  3. Trigger , المخرج الرقمي في الاردوينو وهي الموجة المرسلة.
  4. Echo , المدخل الرقمي في الاردوينو وهي الموجة المستقبلة.

مخطط بناء المشروع

سوف نقوم ببناء مشروع بسيط لقراءة مسافة الاجسام التي التي حولك بحيث سنقوم بتوصيل المنفذ الأرضي لحساس الموجات فوق الصوتية بالطرف الارضي للاردوينو وكذلك دبوس الجهد (+5 فولت) ، وسنقوم بتوصيل إشارة المستشعر Trig بالمنفذ الرقمي (D7) وتوصيل إشارة المستشعر Echo بالمنفذ الرقمي (D8).وسوف نعرض المسافات على شاشة العرض التسلسلي serial monitor. سوف تكون توصيلات حساس الامواج فوق الصوتية مع الاردوينو Arduino UNO R3 كما يلي:


الكود

تأكد من أن توصيلاتك الكهربائية للأسلاك والاقطاب الخاصة بحساس الموجات فوق الصوتية صحيحة ، ثم قم بتوصيل الاردوينو بجهاز الكمبيوتر باستخدام USB للتغذية ونقل الكود ثم قم بتحميل هذا الكود إلى لوحة الاردوينو أو أي لوحة تملكها:

// www.arduinozone.com
//Defines trig and echo
int trigPin = 7;
int echoPin = 8;

//defines variables
long duration;
int distance;

void setup()// here we defines output and input
{
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
Serial.begin(9600);
}

void loop() {

digitalWrite(trigPin, LOW);
delayMicroseconds(3);


digitalWrite(trigPin, HIGH);
delayMicroseconds(5);
digitalWrite(trigPin, LOW);

duration = pulseIn(echoPin, HIGH);
distance= duration*0.034/2; // from Data sheet related on wave speeds in air

// Prints the distancetance on the Serial Monitor
Serial.print("distancetance is equal to: ");
Serial.println(distance);
}

الآن سترى المسافات للاجسام التي حولك على شاشة العرض التسلسلي serial monitor. والآن يمكنك بناء مشاريع رائعة باستخدام المزيد من الحساسات ومشاريع اخرى مثل:

مقالات ذات صلة

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *

إغلاق