قياس المسافة باستخدام Ultrasonic و اردوينو

الموضوع في 'برمجة الاشياء arduino' بواسطة ابوفارس, بتاريخ ‏29 يناير 2020.

  1. ابوفارس

    ابوفارس ادارة المنتدى إداري

    إنضم إلينا في:
    ‏12 يوليو 2014
    المشاركات:
    583
    الإعجابات المتلقاة:
    191
    نقاط الجائزة:
    43
    الجنس:
    ذكر
    [​IMG]



    • الحسابات الخاصة بعمل حساس الموجات فوق الصوتية:
    يقوم الحساس بارسال موجات فوق صوتية و عند اصطدامها بحائل ترتد مرة اخرى فيمكن للاردوينو حساب الوقت الذى استغرقته الموجات للذهاب و العودة لذلك لابد من القسمة على 2 لاننا نريد حساب المسافة و هذا يعتمد على وقت الذهاب فقط.

    سرعه الصوت في الهواء في الحالة العادية تقريبا 340 متر لكل ثانية فيكون الوقت المستهلك لعبور 1 سم هو :

    [​IMG]

    100 للتحويل من متر الى سم , و 10^6 للتحويل من ثانية الى مايكروثانية .




    كود:
    #define trigPin 3
    #define echoPin 9
    
    void setup() {
      pinMode(trigPin, OUTPUT);
      pinMode(echoPin, INPUT);
           Serial.begin(9600);
    }
    
    void loop() {
     
      float duration, distance;
      float speed;
     
      digitalWrite(trigPin, LOW);
      delayMicroseconds(2);
      digitalWrite(trigPin, HIGH);
      delayMicroseconds(10);
      digitalWrite(trigPin, LOW);
     
      duration = pulseIn(echoPin, HIGH);
      speed = 331.4 ;
      distance = (duration / 2) * (speed / 10000);
     
      if (distance >= 4000 || distance <= 2){
         Serial.println("Out of range");
        delay(500);
      }
       else {
        Serial.println(distance);
        Serial.println(" cm");
        delay(500);
      }
      delay(500);
    
    }
     

مشاركة هذه الصفحة