كود البحث

كود أردوينو وفيديو لوحدة Sharp IR لقياس المسافة مع شاشة LCD1602

كود أردوينو وفيديو لوحدة Sharp IR لقياس المسافة مع شاشة LCD1602

في هذا الدرس، سنتعلّم كيفية استخدام مُستشعر المسافة بالأشعة تحت الحمراء من Sharp مع شاشة LCD1602 لقياس المسافات بدقة. سيُخرج مستشعر Sharp بالأشعة تحت الحمراء المسافة المقاسة، والتي ستُعرض بعد ذلك على شاشة LCD، مما يتيح تغذية راجعة في الوقت الحقيقي. بنهاية هذا المشروع، ستحصل على إعداد عملي قادر على قياس المسافات من 4 إلى 30 سنتيمتراً (في الفيديو عند 00:30).

وحدات الإخراج التناظرية من شارب:
2 إلى 15 cm GP2Y0A51SK0F
من 4 إلى 30 سم سلسلة GP2Y0A41SK0F / GP2Y0AF30
من 10 إلى 80 سم GP2Y0A21YK0F
10 إلى 150 سم GP2Y0A60SZLF
20 إلى 150 سم GP2Y0A02YK0F
من 100 إلى 550 سم GP2Y0A710K0F

Sharpt IR distance sensor

يعمل حساس المسافة بالأشعة تحت الحمراء من شركة Sharp عن طريق إصدار أشعة تحت الحمراء وقياس الزمن الذي يستغرقه انعكاسها. هذا يمكّن الحساس من حساب المسافة استنادًا إلى كمية الضوء المستقبلة. تُستخدم شاشة LCD1602 لعرض هذه المعلومات بشكل مقروء. الإعداد مضغوط، مما يجعله مناسبًا لتطبيقات متنوعة، بما في ذلك الروبوتات وأنظمة قياس المسافة.

شرح الأجهزة

لهذا المشروع سنستخدم حساس المسافة بالأشعة تحت الحمراء من Sharp وشاشة LCD1602. يحتوي حساس Sharp IR على ثلاثة أسلاك: السلك الأحمر يتصل بمصدر طاقة 5V، والسلك الأسود يتصل بالأرضي، والسلك الأصفر هو إشارة الإخراج التي تتصل بدبوس تناظري على الأردوينو. تتطلب شاشة LCD1602 عدة دبابيس للتواصل، والتي ستتصل أيضاً بالأردوينو.

تستخدم شاشة LCD1602 مكتبة LiquidCrystal لإدارة البيانات المرسلة إليها، مما يتيح تحكمًا سهلاً في مخرجات الشاشة. تتولى هذه المكتبة التعامل مع الاتصال بين الأردوينو وشاشة LCD، مما يجعل من السهل طباعة النصوص والأرقام.

تفاصيل ورقة البيانات

الشركة المصنعةحاد
رقم القطعةGP2Y0A41SK0F
جهد المنطق/الإدخال والإخراج5 فولت
جهد التغذية4.5 - 5.5 فولت
نطاق مسافة التشغيل4 - 30 سم
جهد الخرج (عند 30 سم)0.4 فولت
جهد الإخراج (على بعد 4 سم)3 فولت
زمن الاستجابة30 مللي ثانية
حزمةوحدة مدمجة
ملاحظات / متغيراتتتوفر نماذج مختلفة لنطاقات متنوعة

  • تأكد من أن المستشعر مُزوَّد بالطاقة بشكل صحيح بجهد 5 V.
  • استخدم مرجعًا أرضيًا مشتركًا لجميع المكونات.
  • كن حذرًا من جهد الخرج الذي يتغير مع المسافة.
  • فكّر في استخدام مرشح لإشارة الخرج لتثبيت القراءات.
  • حافظ على المستشعر نظيفًا وخالٍ من العوائق للحصول على قياسات دقيقة.

تعليمات توصيل الأسلاك

Arduino Wiring Diagram of Sharp distance sensor with LCD1602-2
مخطط توصيل أردوينو لمستشعر المسافة شارب مع LCD1602-2 — Arduino Wiring Diagram of Sharp distance sensor with LCD1602-2

لتوصيل وحدة قياس المسافة بالأشعة تحت الحمراء من Sharp، وصل السلك الأحمر إلى دبوس 5V على لوحة الأردوينو. بعد ذلك، وصل السلك الأسود إلى أحد دبابيس الأرضي (GND) على الأردوينو. يجب توصيل السلك الأصفر، الذي يخرج قياس المسافة، إلى الدبوس التناظريA0على الأردوينو. بالنسبة لشاشة LCD1602، قم بتوصيل الدبابيس كما يلي:rsإلى الدبوس 12،enإلى الدبوس 11،d4إلى الدبوس 5،d5إلى الدبوس رقم 4،d6إلى الدبوس 3، وd7إلى الدبوس 2. تأكد من أن جميع التوصيلات محكمة لتجنب أي مشاكل في الأسلاك المرتخية (في الفيديو عند 02:15).

أمثلة على الشيفرة وشرح خطوة بخطوة

يقوم كود الأردوينو لهذا المشروع بتهيئة شاشة LCD ومستشعر الأشعة تحت الحمراء من شارب. المعرفات الرئيسية تتضمنIR، والذي يُعرَّف بأنه الدبوس التناظري المستخدم لمخرج الأشعة تحت الحمراء لشركة شارب، وmodel، الذي يحدد نوع مستشعر شارب المستخدم. في دالة الإعداد، يتم تهيئة شاشة LCD لعرض المحتوى.

const int rs = 12, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);

#define IR A0 // define Sharp IR signal pin
#define model 430 // the model of the IR module

يعرض هذا المقتطف كيفية تهيئة مكتبة LiquidCrystal وكيفية تعريف دبوس مستشعر الأشعة تحت الحمراء (IR) وطرازه. الطراز حاسم لضمان عمل المكتبة بشكل صحيح مع نوع المستشعر المستخدم.

في دالة الحلقة، يتم قياس المسافة باستمرار وعرضها على شاشة LCD. الدالةSharpIR.distance()يسترجع المسافة بالسنتيمترات، والتي تُنسق بعد ذلك كسلسلة وتُطبع على شاشة LCD.

int dis = SharpIR.distance(); // gets the distance in cm
String distance = String(dis);
distance = "Distance: " + distance + "cm";
lcd.print(distance);

يقوم مقتطف الشيفرة هذا باستخراج قراءة المسافة من المستشعر وتنسيقها للعرض. يوفر التحديث المستمر للشاشة تغذية راجعة فورية عن المسافة المقاسة بواسطة مستشعر شارب للأشعة تحت الحمراء.

عرض توضيحي / ما الذي تتوقعه

بعد إتمام التوصيلات ورفع الكود، يجب أن ترى شاشة LCD تعرض المسافة التي يقيسها مستشعر الأشعة تحت الحمراء من شارب. يمكنك اختبار الإعداد بوضع عائق على مسافات مختلفة. يجب أن تكون القراءات دقيقة ضمن النطاق المحدد من 4 إلى 30 سنتيمترًا. كن على علم بأن القراءات قد تصبح أقل موثوقية عند طرفي هذا النطاق (في الفيديو عند 04:50).

طوابع زمنية للفيديو

  • 00:00مقدمة
  • 02:15تعليمات التوصيل
  • 04:50عرض الإعداد

الصور

مخطط توصيل أردوينو لمستشعر المسافة شارب مع LCD1602-2
مخطط توصيل أردوينو لمستشعر المسافة شارب مع LCD1602-2
LCD1602-I2C display module with 4 wires
LCD1602-I2C display module with 4 wires
Sharpt IR distance sensor
Sharpt IR distance sensor GP2Y0A21YK0F
71-This is the Arduino code and video for a Sharp Infrared Sensor Module with LCD1602.
اللغة: C++
/*
 * Sharp IR (infrared) distance measurement module for Arduino
 * Measures the distance in cm and displays it on LCD1602 (without the I2C module)

 * Original library: https://github.com/guillaume-rico/SharpIR
 
 * Watch video instructions for this code: https://youtu.be/NjUOEAoKY7A
 * 
 * Full explanation of this code and wiring diagram is available at
 * my Arduino Course at Udemy.com here: http://robojax.com/L/?id=62

 * Written by Ahmad Shamshiri on Feb 03, 2018 at 07:34
 * in Ajax, Ontario, Canada. www.robojax.com
 * 

 * Get this code and other Arduino codes from Robojax.com
Learn Arduino step by step in a structured course with all material, wiring diagrams, and libraries
all in one place. 

If you found this tutorial helpful, please support me so I can continue creating 
content like this. 

or make a donation using PayPal http://robojax.com/L/?id=64

 *  * This code is "AS IS" without warranty or liability. Free to be used as long as you keep this note intact.* 
 * This code has been downloaded from Robojax.com
    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
    along with this program.  If not, see <https://www.gnu.org/licenses/>.

*/



// original source https://www.arduino.cc/en/Tutorial/HelloWorld
// include the library code:
#include <LiquidCrystal.h>

// initialize the library by associating any needed LCD interface pin
// with the arduino pin number it is connected to
const int rs = 12, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);

///////////////////***** start of Sharp IR
//Sharp IR library source: https://github.com/guillaume-rico/SharpIR
#include <SharpIR.h>

#define IR A0 // define Sharp IR signal pin
#define model 430 // the model of the IR module
// Sharp IR code for Robojax.com
// ir: the pin where your sensor is attached
// model: an int that determines your sensor:
/*
 * GP2Y0A02YK0F --> "20150"
 GP2Y0A21YK --> "1080"
 GP2Y0A710K0F --> "100500"
  GP2YA41SK0F --> "430"
 */
 
 

SharpIR SharpIR(IR, model);
/////////////////////**** end of Sharp IR

void setup() {
  // Robojax LCD1602 Test 
  // set up the LCD's number of columns and rows:
  lcd.begin(16, 2);
  // Print a message to the LCD.
  // Robojax Sharp IR with LCD1602 Test 
}

void loop() {
   lcd.clear();
  // Robojax.com Sharp IR Test 
    lcd.setCursor(0, 0);
    lcd.print("Robojax IR Test");
  // set the cursor to column 0, line 1
  // (note: line 1 is the second row, since counting begins with 0):
  lcd.setCursor(0, 1);
 int dis=SharpIR.distance();// gets the distance in cm
 String distance = String(dis);
 distance ="Distance: "+distance+"cm";
 lcd.print(distance); 



  delay(500);
  // Robojax.com Sharp IR Test  
}

الموارد والمراجع

ملفات📁

مكتبات أردوينو (ملف مضغوط)

Fritzing File