تعلم الاردوينو

برمجة الاردوينو – المتغيرات ومعالجة الاشارات الرقمية

ان للغة برمجة الاردوينو مثل باقي لفات البرمجة فهي لها العديد من المتغيرات لتخزين القيم بشكل عام انواع المتغيرات الاساسية في C Arduino مدرجة في الجدول التالي:

مثال القيمة النوع
int motor = 5 ; int led_1 = 13; -32768 الى 32768 integer
float data = 4.3; الاعداد العشرية float
long = 12111221; -2,147,483,648 الى 2,147,483,648 long
byte x = 160; 0 الى 225 byte
char name = ardu; حروف نصية او كلمات character

الآن سوف نقوم في دراسة كلمات معالجة الاشارات الرقمية , ولكن قبل البدء يجب ان تعلم ان الاردوينو يتعامل مع الاشارت الرقمية والتماثلية اضافة الى اشارات تضمبين عرض النبضة PWM.

اولًا : pinMode() 

تستخدم للتحكم في الاطراف الرقمية لجعلها كمدخلات أو مخرجات , والصيغة العامة لها كالتالي :

pinMode(pin, mode)

حيث ان :

الدالة/الاقتران/الامر pinMode
رقم الطرف الرقمي pin
مدخل او مخرج INPUT Or OUTPUT mode

مثلا لجعل الطرف الرقمي رقم 10 مخرج نقوم بعمل التالي يحث يجب الانتباه الى وضع الفاصلة المنقوطة في نهاية كل أمر نقوم بكتابته في كود الاردوينو :

void setup()
{
pinMode(10, OUTPUT);
}

الآن دعونا نجعل الطرف الرقمي رقم 10 كمدخل لاي نوع من الاشارات (المعلومات) نقوم بعمل التالي :

void setup()
{
pinMode(10, INPUT); 
}

ثانيًا : digitalWrite()

نحن نعلم ان الاشارات الرقمية لها حالتان فقط (on-off) والتي تساوي احتمال 0 او 1 نعبر عنها في الاردوينو باتخدام High و Low تستخدم دالة digitalWrite لتحميل اوامر التشغيل والايقاف الى اطراف الاردوينو الرقمية , فاذا كان لديك اردوينو اونو يقوم هذا الامر باخراج اشارة قيمتها 5 فولت High او 0 فولت Low حسب او 3.3 فولت High حسب الطرف المتسخدم. والصيغة العامة لها كالتالي :

digitalWrite(pin, value)

حيث ان:

الدالة/الاقتران/الامر pinMode
رقم مخرج الطرف الرقمي pin
تشغيل او ايقاف HIGH Or LOW Value

مثلا لجعل الطرف رقم 12 مخرج للتشغيل تكتب الكود التالي :

void setup()
{
digitalWrite(12, HIGH);
}

لجعل الطرف رقم 12 مخرج للايقاف نعمل التالي :

void setup()
{
digitalWrite(12, LOW);
}

ثالثًا : digitalRead()

يستخدم هذا الأمر لقراءة القيمة من دبوس رقمي محدد ، إما HIGH أو LOW, والصيغة العامة لها كالتالي:

digitalWrite(pin)

حتى نستطع استخدام هذا الامر يجب في البداية تعين متغير ثم استخدام PinMode لتحديد المدخلات ثم نقوم بتخزين قيمة الطرف داخل متغير معرف مسبقا كالتالي:

int inPin = 7;
int val = 0; // variable to store the read value
void setup()
{
pinMode(inPin, INPUT); // sets the digital pin 7 as input
}
void loop()
{
val = digitalRead(inPin); // read the input pin

}

رابعًا : أمر التأخير الزمني الدقيق delay ()

تستخدم لايقاف البرنامج مؤقتًا لمقدار من الوقت (بالميلي ثانية) مثلا عند ادخال 1000 تعني 1 ثانية, مثلًا برنامج لتشغيل الطرف الرقمي 9 مدة 3 ثواني:

 digitalWrite(ledPin, HIGH);
delay(3000);

حسنًا دعونا الآن نأخذ بعض الأمثلة على ما سبق , اول مثال سوف ندرسه موجود من الامثلة الجاهزة في برنامج الاردوينو حيث ان برنامج الادروينو يوفر امثلة جاهزة للمبتدئين. سوف نقوم بتشغيل واطفاء مصباح LED الموجود على للوحة الاردوينو اونو او اي للوحة تملكها لفتح هذا المشروع اتبع الخطوات التالية (لا تحتاج اي قطعة في هذا المشروع):

1 – من اللائحة اختر File اختر خيار Examples ثم Basics وسوف تختار المشروع Blink كالتالي:

ثم سوف تفتح نافذة بهذا الكود : 


// the setup function runs once when you press reset or power the board
void setup() {
// initialize digital pin LED_BUILTIN as an output.
pinMode(LED_BUILTIN, OUTPUT);
}

// the loop function runs over and over again forever
void loop() {
digitalWrite(LED_BUILTIN, HIGH); // turn the LED on (HIGH is the voltage level)
delay(1000); // wait for a second
digitalWrite(LED_BUILTIN, LOW); // turn the LED off by making the voltage LOW
delay(1000); // wait for a second
}

ما معنى هذا الكود؟ كما شرحنا سابقاً تم استخدام كل الاوامر التي درسناها بحيث استخدام pinMode لتعيين المصباح الخاص بالاردوينو وهو مخزن في ذاكرة الاردوينو باسم LED_BUILTIN هكذا تم تعريف المصباح على انه مخرج. بعد ذلك داخل اقتران void loop() تم استخدام digitalWrite مرتين في المرة الاول لتشغيل المصباح باستخدام الأمر HIGH وذلك لمدة ثانية واحدة باستخدام delay. ثم اطفاء المصباح باستخدام الأمر LOW ايضًا لمدة ثانية. 

ملاحظة استخدمنا الرمز // لوضع الملاحظات داخل الكود.

في النهاية سوف تلاحظ ان المصباح على للوحة الاردوينو يضيئ لمدة ثانية ثم ينطفئ لمدة ثانية. وهكذا انتهينا من دراسة المداخل والمخارج الرقمية الاساسية في لوحة الاردوينو وكيفية اعداد الكود في برنامج ال IDE, الآن يمكنك التعديل على الكود لتغير الوقت.


مثال : تشغيل المصباح LED لفترة زمنية باستخدام الاردوينو

حت نستطيع برمجة المصباح LED باستخدام الاردوينو لا نحتاج الى قليلا من الاسطر البرمجية , لعمل هذه التجربة يلزمنا المكونات التالية:

LED 5 volt 220 Ohm Resistor
Arduino uno R3 Wires 2
Power tool (اختياري) Bread board(اختياري)

سوف نكتب كود بسيط لتشغيل مصباح LED يعمل على 5 فولت لمدة 5 ثواني ثم اطفاؤه لمدة 3 ثواني , سوف تعين عليك توصيل المصباح والاردوينو كما في المخطط التالي:

نلاحظ ان جميع انواع الاردوينو تعمل في نفس كود الاردوينو اذا تم استخدام الكود وطريقة التوصيل الصحيحة.

الآن بعد توصيلة الاردوينو كتابة الكود نحمل الكود على الاردوينو بالضغط على Upload والتي رمزها:

الكود

int ledPin = 8;

void setup()
{
pinMode(ledPin, OUTPUT);
}

void loop()
{
digitalWrite(ledPin, HIGH);
delay(5000);
digitalWrite(ledPin, LOW);
delay(3000);
}

مقالات ذات صلة

اترك تعليقاً

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

إغلاق