القائمة الرئيسية

الصفحات

محدّد المسافة بإستعمال الأردوينو


هنا سننشئ مشروعًا سريعًا لبيان كيف يمكن تحويل مستشعر بسيط بالموجات فوق الصوتية إلى مكتشف مسافة تلامس متطور. في هذا المشروع ، سوف نستخدم شاشة LCD بحجم 16 × 2 لعرض شريط أفقي لتمثيل المسافة إلى الكائن بيانياً بالقيمة الموجودة في الخط السفلي.

إذا لم تكن معتادًا على شاشات LCD ذات 16 × 2 حرفًا ، فكر في قراءة (ولو نظرة خاطفة) الدرس على الرابط التالي:


بعد ذلك ، نحتاج إلى إجراء ربط شاشة LCD بالأردوينو كما هو موضح أدناه.


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

قم بتنزيل المكتبة أولاً ، من خلال زيارة Arduino Playground أو فقط انقر فوق الرابط التالي لتنزيل الملف:
LcdBarGraph-1.5.zip
بمجرد تثبيت المكتبة ، جرب الكود التالي.

// includes the LiquidCrystal Library
#include <LiquidCrystal.h> 

// includes the LcdBarGraph Library
#include <LcdBarGraph.h>

// Maximum distance we want to ping for (in centimeters).
#define max_distance 200

// Creates an LCD object. Parameters: (rs, enable, d4, d5, d6, d7)
LiquidCrystal lcd(12, 11, 5, 4, 3, 2); 

LcdBarGraph lbg(&lcd, 16, 0, 1); // Creates an LCD Bargraph object.

const int trigPin = 9;
const int echoPin = 10;
long duration;
int distance;

void setup() 
{
 lcd.begin(16,2); // Initializes the interface to the LCD screen
 
 pinMode(trigPin, OUTPUT);
 pinMode(echoPin, INPUT);
}

void loop() 
{
 // Write a pulse to the HC-SR04 Trigger Pin
 digitalWrite(trigPin, LOW);
 delayMicroseconds(2);
 digitalWrite(trigPin, HIGH);
 delayMicroseconds(10);
 digitalWrite(trigPin, LOW);
 
 // Measure the response from the HC-SR04 Echo Pin
 duration = pulseIn(echoPin, HIGH);
 
 // Determine distance from duration
 // Use 343 metres per second as speed of sound
 distance= duration*0.034/2;
 
 // Prints "Distance: <value>" on the first line of the LCD
 lcd.setCursor(0,0);
 lcd.print("Distance: "); 
 lcd.print(distance);
 lcd.print(" cm");

 // Draws bargraph on the second line of the LCD
 lcd.setCursor(0,1);
 lbg.drawValue(distance, max_distance);
 delay(500);
}
تحتاج أولاً إلى إعداد مكتبة LiquidCrystal كالمعتاد.
بعد ذلك ، يمكنك إنشاء نموذج LcdBarGraph مع نموذج LiquidCrystal الذي تم إنشاؤه سابقا. يجب عليك تمرير مرجع LiquidCrystal إلى مُنشئ LcdBarGraph.
يأخذ مُنشئ LcdBarGraph ثلاث قيم أخرى. القيمة الثانية هي عدد أعمدة الأحرف في شاشة LCD (في حالتنا ، 16). القيمتان الأخيرتان اختياريتان وتسمحان بتحديد موقع مخصص للشريط.
// creating bargraph instance
LcdBarGraph lbg(&lcd, 16, 0, 1);
الآن بمجرد حساب المسافة بواسطة الحساس ، يمكننا استخدام وظيفة drawValue (القيمة ، maxValue) لعرض الرسم التخطيطي. هذا لرسم مخطط بياني بقيمة بين 0 و maxValue.
//display bargraph
lbg.drawValue(distance, max_distance);


المصدرLast minute engineers
الترجمة: CirtaTeam
            cirta2030@gmail.com




تعليقات