ربط حساس قياس المسافة باستخدام الموجات فوق الصوتية مع الاردوينو 2

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

الفكرة ومبدأ العمل

الفكرة ومبدأ العمل

منتجات المشروع
Untitled2
  1. لوحة أردوينو مع كابل يوأس بي
  2. عدد 10 أسلاك التوصيل ذكر الي أنثي
  3. لوح تجارب صغيرة
  4. مذود طاقة 5 فولت
  5. موديول حساس قياس المسافة الالتراسونيك
  6. شاشة عرض كرستالية من النوع 16×2 مع برتيكول 12c

طريقة العمل والتوصيلات

2wire_bb

طريقة توصيل الشاشة مع الاردوينو كما بالصورة أدناه  :

i2c_03

لقياس المسافة يتم وصل الحساس مع الاردوينو عن طريق أي منفذين من المنافذ الرقمية , أحدي هذه المنافذ يتم قدحها بأشارة جهد عالية 5 فولت لمدة زمنية محددة وبناءا عليه يتم توليد أشارة موجات فوق الصوتية من قبل الحساس ويرسلها في الفراغ , وعندما ترتد يتم أستقبالها من قبل الحساس وتسجل داخل الاردوينو ومن خلال الكود البرمجي يتم أحتساب زمن الذهاب والعودة مقسوما على أثنين ليعطي المسافة بينه وبين الجسم الذي أمامه ويتم عرض المسافة من خلال شاشة الكرستال LCD  . 10.

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

الكود البرمجي

في تجربتنا سوف يتم عرض المسافة بوحدة السنتميتر في شاشة LCD . سيكون من المفيد فهم كيفية استخدام الوحدات ويمكن أن تكون بمثابة أساس لتجارب ومشاريع أكثر عملية .

لتحميل الكود البرمجي اضغط هنا
#include<LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);
float x;float Distance;
const int Ttigger=12; const int Echo=11;
void setup() {
pinMode(Ttigger,OUTPUT);
pinMode(Echo,INPUT);
Serial.begin(9600);
  lcd.init();                    
  lcd.backlight();
  lcd.setCursor(0, 0);
  lcd.print("Arduino Ultrasonic");delay(2000);
  lcd.setCursor(0, 1);
  lcd.print("by ielectrony");
  delay(2000);
  lcd.clear();
  lcd.print("Ultrasonic Test");
  lcd.setCursor(0, 1);delay(5000);
}

void loop() {
  digitalWrite(Ttigger,LOW);
  delayMicroseconds(2);
  digitalWrite(Ttigger,HIGH);
  delayMicroseconds(10);
  digitalWrite(Ttigger,LOW);
  x=pulseIn(Echo,HIGH);
  Distance=x*0.034/2;
  Serial.println(Distance);
  lcd.clear();
  lcd.setCursor(0, 0);
  lcd.print("Distance is ");
  lcd.setCursor(14, 1);
  lcd.print(Distance);
  delay(1000); 
 
}

2 Comments

  1. ممتاز بارك الله فيكم .. شرح واضح جدا و مبسط للغاية .. شكرا

    أحمد الحفناوي
    1. أهلا بك صديقنا أحمد ، يسعدنا حقاً استفادتك من المشروع وكما نشكرك على مرورك 🙂

      ielectrony Support Team

اترك تعليقاً



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