Advertisement
safwan092

Untitled

Dec 4th, 2021
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.50 KB | None | 0 0
  1. #include <Wire.h>
  2. #include <LiquidCrystal_I2C.h>
  3.  
  4. LiquidCrystal_I2C lcd(0x27, 16, 2); // set the LCD address to 0x27 for a 16 chars and 2 line display
  5.  
  6. #define motor 5
  7. #define buzzer 4
  8. #define trigger 2 //تعريف متغير بقيمة 1 لتوصيل طرف التريجر الخاص بالحساس
  9. #define echo 3 //تعريف متغير بقيمة 0 لتوصيل طرف إيكو الخاص بالحساس
  10. float the_time = 0, the_distance = 0; //تعريف متغيرين لتخزين الزمن والمسافة
  11. void setup() //دالة الإعداد وتنفذ مرة واحدة فقط فى بداية البرنامج
  12. { //كل الأوامر التالية بين القوسين ضمن هذه الدالة
  13. lcd.init();
  14. lcd.init();
  15. lcd.backlight();
  16. pinMode(buzzer, OUTPUT);
  17. pinMode(motor, OUTPUT);
  18. digitalWrite(buzzer, 0);
  19. digitalWrite(motor, 1);
  20. lcd.print(" Ultrasonic "); //أمر طباعة رسالة تعريفية للدائرة
  21. lcd.setCursor(0, 1);
  22. lcd.print(" Distance Meter");
  23. delay(2000);
  24. lcd.clear();
  25. lcd.print(" ARABS MAKERS ");
  26. delay(2000); //أمر انتظار ثانيتين
  27. lcd.clear(); //أمر مسح الشاشة
  28. }
  29. void loop() //دالة التكرار وتنفذ باستمرار طالما يوجد تغذية كهرباء للأردوينو
  30. {
  31. pinMode(trigger, OUTPUT); //تعريف طرف تريجر كخرج
  32. pinMode(echo, INPUT); //تعريف طرف إيكو كدخل
  33. digitalWrite(trigger, LOW); //إرسال صفر لطرف تريجر
  34. delayMicroseconds(2); //أمر انتظار 2 ميكرو ثانية
  35. digitalWrite(trigger, HIGH); //إرسال 1 لطرف تريجر لتفعيل الحساس لبدء إرسال نبضة
  36. delayMicroseconds(10);
  37. digitalWrite(trigger, LOW);
  38. delayMicroseconds(2);
  39. the_time = pulseIn(echo, HIGH); //دالة قراءة البيانات من طرف إيكو لاستخراج قيمة الزمن
  40. the_distance = the_time * 340 / 20000; //معادلة استخراج المسافة باستخدام الزمن
  41. lcd.clear();
  42. lcd.print("Distance:");
  43. lcd.setCursor(9, 0);
  44. lcd.print(the_distance); //طباعة المسافة بالمتر
  45.  
  46. if (the_distance < 30) {
  47. lcd.setCursor(0, 1);
  48. lcd.print("Stop!!");
  49. digitalWrite(buzzer, 1);
  50. digitalWrite(motor, 0);
  51. }
  52. else {
  53. lcd.setCursor(0, 1);
  54. lcd.print(" ");
  55. digitalWrite(buzzer, 0);
  56. digitalWrite(motor, 1);
  57. }
  58. delay(100);
  59. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement