- لنتعرف في بداية عن مبدأ عمل الأمواج فوق الصوتية .
- الفكرة مرتكزة على إطلاق موجات عالية التردد و التي عند اصطدامها بجسم ما ترتد هذه الموجات على شكل صدىEcho .
- الفكرة مرتكزة على إطلاق موجات عالية التردد و التي عند اصطدامها بجسم ما ترتد هذه الموجات على شكل صدىEcho .
- سرعة الموجات في الفراغ هي 345 m/s عند 25سيلسيوس و تختلف من وسط لأخر حسب الوسط الناقل كالسوائل و الغازات و الأجسام الصلبة .
- يكفي أن نعرف سرعة هذه الموجات لمعرفة المسافة, و أن نعرف الفرق بين زمن الارسال و زمن الأرتداد للصدى و بهذا يمكننا معرفة المسافة حسب قانون نيوتن :
المسافه = السرعه × الزمن
- لننتقل إلى ما سنقوم بفعله , وما هي الإمكانيات التي يوفرها لنا هذا الحساس .
- يمكننا هذا الحساس من معرفة المسافة بشكل دقيق بينه و بين الأجسام التي امامه , مما يعد خيار مفضل عند بناء روبوتات تفادي الأصطدام - Avoiding Robot - eviteur d'obstacle
- الوقت للتطبيق العملي .
المعدّات
- ستحتاج لتنفيذ هذه التجربة ما يلي :
1* أردوينو
1* أردوينو
2* التراسونيك HC SRF04
3* BreadBoard
4* اسلاك توصيل .
- للتوصيل :
- سنقوم بتوصيل الحساس مع الأردوينو كالآتي :
Trigger>>>> D12
Echo>>>> D13
- بالإضافة للتغذية و الأرضي Vcc+GND.
- من النشرة الفنية لحساس الأمواج فوق الصوتية " للألتراسونيك" نستطيع برمجة هذا الحساس بسهولة .
الرسم التالي يوضح المخطط الزمني لعمل الألتراسونيك .


- لكتابة الكود يلزمنا فقط اتباع الارشادات الوادة في المخطط الزمني .
- الكود الأولي بسيط و يعتمد على ارسال نبضات كل 10uS ثم قراءة الصدى الراجع إلى الحساس, ثم قسمتها على 58 لنحصل على المسافة بالسنتيمتر
- هذا الكود أولي , لكن أليكم هذه المفاجأة ! فهناك مكتبة سهلة جداً للتعامل مع هذا النوع
هذه المكتبة يمكن تحميلها ⤌ ici
- بعد ان تقوم بفك الضغط عن الملف و وضعه في مسار المكتبات Libraries داخل مجلد الاردوينو قم بتحميل البرنامج المرفق معاه .
- و إذا لم تكن تملك الشاشة الكريستالية فإليك هذا البرنامج الذي ستحتاج فقط فيه لبطاقة أردوينو و الألتراسونيك .
الكود موجود بالأسفل :
// this a simple program to how to use ultrasonic HC-SRO 4 & SRF 04 //This ultrasonic content 4 leg < Vcc, Tri,Ech,Gnd //Connect SRF 04 to arduino like this: //Vcc>>>>>+5 volt arduino power source //Tri>>>>digital pin # 12 //ech>>>>digital pin # 13 //Gnd>>> as defalt Arduino Gnd //Modifiy By Mohannad Rawashdeh. #include "Ultrasonic.h" Ultrasonic ultrasonic(12,13); void setup() { Serial.begin(9600); } void loop()Serial.print(ultrasonic.Ranging(CM));{ Serial.println("cm"); delay(100); }
- لتهيئة المداخل التي سنربط عليها الألتراسونيك نستدعي الأمر :
Ultrasonic ultrasonic(Trigger_pin,Echo_pin);
-لقياس البعد بين الألتراسونيك و الجسم التي ترتطم به الأمواج فوق الصوتية ما علينا سوى استدعاء الأمر
;(ultrasonic.Ranging(CM
و البرنامج الأخير هنا يعرض التحكم بأكثر من التراسونيك واحد .
//This program is free software: you can redistribute it and/or modify//it under the terms of the GNU General Public License as published by //the Free Software Foundation, either version 3 of the License, or //(at your option) any later version. //This program is distributed in the hope that it will be useful, //but WITHOUT ANY WARRANTY; without even the implied warranty of //MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. //You should have received a copy of the GNU General Public License //**************************************************** //Name :AIT-LASRI YOUNES . // Description: This Code for ultrasonic SRF04 Connected with arduino board // Programmed for https://www.facebook.com/arduino.electromaroc/ //**************************************************************** #include "Ultrasonic.h" int Distance_1=0; int Distance_2=0; int t=100; void setup(){ Serial.begin(9600); Serial.println( "This Program To Test two UltraSonic Sensor"); delay(100); Serial.println("Testing"); } void ultra_sonic_one(){ Ultrasonic ultrasonic_one(12,13); Distance_1= ultrasonic_one.Ranging(CM); Serial.print("Distance # one in cm ="); Serial.println(Distance_1); delay(t); } void ultra_sonic_two(){ Ultrasonic ultrasonic_two(2,3); Distance_2= ultrasonic_two.Ranging(CM); Serial.print("Distance # Two in cm ="); Serial.println(Distance_2); delay(t); } void loop(){ ultra_sonic_one(); ultra_sonic_two(); delay(400); }
EmoticonEmoticon