[اردوينو] 101: صنع غمضة LED مع زر
Arabic (العربية/عربي) translation by Abdul Mutholib (you can also view the original English article)
في البرنامج التعليمي الأخير ، شرحت سبب سهولة العمل في المشاريع الإلكترونية مع Arduino. في هذا البرنامج التعليمي سوف أستخدم لوحة Arduino لصنع دائرة بسيطة ، واحدة يمكنها تشغيل ضوء LED. باستخدام بعض التعليمات البرمجية الأساسية الأخرى ، سأجعل نفس وميض ضوء LED. أخيراً ، سأقوم بإضافة زر ضغط واستخدامه لتسريع الوميض.
تم تطوير بعض المخططات في هذا المقال باستخدام برنامج Fritzing .
اللوازم



في هذا البرنامج التعليمي سوف أستخدم المكونات التالية:
- اردوينو Uno R3 × 1
- اللوح 1 ×
- كبل USB نوع B القياسية x 1
- زر الضغط × 1
- مقاوم 10K × 1
- أسلاك التوصيل القصيرة x 3
يمكنك شراء هذه العناصر إما من خلال متجر إلكترونيات محلي ، مثل متجر Fry (إذا كنت تعيش في الولايات المتحدة) أو عبر الإنترنت من موقع Arduino أو Amazon أو Little Bird Electronics أو eBay.
بدلاً من ذلك ، يمكنك اختيار أي من لوحات Arduino الأخرى لمتابعة هذا البرنامج التعليمي:
- اردوينو ليوناردو
- اردوينو ميجا الاستحقاق
- اردوينو ميجا 2560
- اردوينو مايكرو
قد تعمل لوحات اردوينو أخرى أو لوحات متوافقة مع طرف ثالث كذلك. ولكنها قد تتطلب موصل USB مختلفًا. تأكد من أن لوحة Arduino الخاصة بك يمكنها الاتصال بالكمبيوتر باستخدام كابل USB مناسب.
علاوة على ذلك ، تأكد من أنك قمت بتنزيل وتثبيت أحدث إصدار من Arduino IDE على جهاز الكمبيوتر الخاص بك. قد يتطلب تثبيت Arduino IDE بضع خطوات أخرى على أجهزة الكمبيوتر التي تعمل بنظام التشغيل Windows لأنك ستحتاج إلى تثبيت بعض برامج التشغيل. لمزيد من التعليمات ، يرجى اتباع أدلة التثبيت على موقع Arduino.
قد تتسائل كيف سنقوم بإلقاء الضوء عندما لم نقم بتضمين واحد في قائمة المكونات؟ هذا سهل! عادة ما يتم تجهيز لوحات اردوينو مع LED على متن الطائرة ، والتي يمكننا استخدامها في مشاريعنا. للحفاظ على دارتنا بسيطة قدر الإمكان ، سنستخدم هذا LED.



1. إعداد مشروع جديد
للبدء ، قم بتوصيل لوحة Arduino بالكمبيوتر باستخدام كابل USB المناسب. ستلاحظ أنه قد يتم تشغيل مصباح واحد أو عدة أضواء مؤقتًا أو دائمًا.اردوينو أونو لديه أربعة أضواء LED على متن الطائرة. إذا كان اللوح الخاص بك يحتوي على أكثر من مؤشر ضوئي واحد ، تشير المصابيح الوامضة إلى أنه متصل بمصدر طاقة ويتم تشغيله. يستغرق الأمر خمس ثوانٍ حتى يصبح Arduino جاهزًا للتفاعل معه.
إطلاق اردوينو بيئة تطوير متكاملة على جهاز الكمبيوتر الخاص بك. سيتم تقديم مساحة عمل فارغة لك حيث ستكتب الشفرة اللازمة من أجل برمجة لوحة Arduino.
بعد ذلك ، يجب عليك إخبار Arduino IDE التي ستقوم بالاتصال بها. من القائمة ، حدد أدوات> لوحة ، ثم حدد لوحة اردوينو من القائمة. إذا كنت قد اخترت استخدام لوحة Arduino رسمية ، فيجب إدراج اسمك في القائمة لتحديده. مجالس الطرف الثالث عادة ما تعادل لوحة اردوينو الرسمية. إذا كنت تعرف أي لوحة ، فانتقل ثم اختر ذلك من القائمة. وإلا ، فارجع إلى دليل المستخدم الخاص به لتحديد أي نموذج من القائمة يجب أن يعمل مع لوحة محددة.
أخيرا ، يجب عليك تحديد المنفذ الصحيح للتواصل مع لوحة اردوينو الخاصة بك. مرة أخرى من القائمة ، انتقل إلى أدوات> المنفذ التسلسلي ، وحدد المنفذ التسلسلي الأيمن. على أجهزة Mac ، عادة ما يتم سرد المنفذ التسلسلي الصحيح على أنه /dev/tty.usbmodem1421
أو ما شابه. على Windows ، يجب أن يتم سرد الاتصال كمنفذ COM
.
2. تشغيل الضوء
تم تجهيز Arduino مع العديد من موصلات الإدخال والإخراج المختلفة ، والتي سنشير إليها باسم IO Pins. في الوقت الحالي ، نريد استخدام دبوس IO رقمي لتوجيه ضوء LED ليأتي. نظرًا لأننا نستخدم أيضًا مصباح LED الموجود على اللوحة ، فقد تم اختيار دبوس الإدخال / الإخراج المناسب لنا من قبل صناع Arduino. هو دبوس 13 ، والتي ، حسب التصميم ، وقد تم إرفاقها على ضوء LED على متن الطائرة.
قم بنسخ التعليمة البرمجية التالية ولصقها في Arduino IDE:
1 |
int led_pin = 13; void setup() { pinMode(led_pin, OUTPUT); } |
2 |
void loop() { digitalWrite(led_pin, HIGH); } |
في التعليمات البرمجية ، لقد استخدمت اثنين من وظائف اردوينو: pinMode(pin_number, mode)
و digitalRead(pin_number, value)
.
سأتصل pinMode()
داخل setup()
لإرشاد Arduino لمعالجة pin-13 الخاص به pinMode() . ثم عن طريق استدعاء وظيفةdigitalWrite()
داخل loop()
يمكنني تنشيط إشارة HIGH
على pin-13 الذي يقوم بتشغيل ضوء LED.
انقر على زر " Upload" لدفع الرمز أعلاه إلى لوحة Arduino. بشرط اختيار لوحة Arduino الصحيحة والمنفذ التسلسلي ، يجب أن تشاهد شريط تقدم يتبعه رسالة Done Uploading .
أثناء تحميل الرمز ، قد ترى أضواء مختلفة تومض ، مما يشير إلى نجاح الاتصال بين جهاز الكمبيوتر الخاص بك ولوحة Arduino. عند هذه النقطة ، يجب تشغيل مصباح LED الموجود على اللوحة بشكل دائم.
3. جعلها طرفة عين
لقد أكملت ما يعادل اردوينو "مرحبا العالم". الآن ستقوم ببدء وميض هذا الضوء عن طريق إدخال وظيفة delay()
في الكود السابق. تقبل الدالةdelay()
قيمة عدد صحيح ، مساوية لطول الوقت بالمللي ثانية. 1000 ميلي ثانية تساوي ثانية واحدة.
1 |
int delay_value = 1000; int led_pin = 13; |
2 |
|
3 |
void setup() { |
4 |
pinMode(led_pin, OUTPUT); |
5 |
}
|
6 |
|
7 |
|
8 |
void loop() { |
9 |
digitalWrite(led_pin, HIGH); |
10 |
delay(delay_value); digitalWrite(led_pin, LOW); |
11 |
delay(delay_value); |
12 |
}
|
تحافظ وظيفة delay()
على إضاءة LED وتوقف تشغيلها ثانية واحدة أثناء كل تكرار لدالة loop()
. نظرًا لتكرار وظيفة loop()
بشكل دائم ، سيعمل هذا الرمز على تشغيل وإيقاف تشغيل ضوء LED بشكل متكرر.



باستخدام مخطط الموجة الرقمية ، يمكنني شرح كيفية تغيير السلوك الأصلي. قبل تقديم وظيفة التأخير في الخطوة الثالثة ، كنت أنتج موجة رقمية تشبه المخطط ، أعلاه. تم إنفاق كل دورة من كل تكرار حلقة loop () على الحفاظ على تشغيل ضوء LED.
باستخدام الدالة delay () ، يقسِّم الكود كل دورة إلى جزأين ، مما يجعل كل عملية تكرار تدوم لمدة ثانيتين. خلال الثواني الأولى ، يتم تشغيل LED ، وفي الثانية التالية يتم إيقاف تشغيله.



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



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



عند شراء اللوح ، من الأفضل اختيار النوع مع الأخاديد على جانبي اللوحة. يمكن استخدام هذه الأخاديد لإرفاق لوحات متعددة معًا لتوفير مساحة عمل أكبر. يتم وضع علامة على اللوح الجيد ذي الأرقام والحروف مما يجعل من السهل تحديد كل صف وعمود.
الخطوة 1
ابدأ بوضع زر الضغط وتوصيله بمانعات الطاقة من لوح Arduino. يمكن لاردوينو أونو إخراج مستويين من الطاقة ، 3 فولت و 5 فولت. لهذه الدائرة ، سوف نحتاج إلى استخدام السكك الحديدية 5V. يعتمد السبب في أنك تستخدم واحدًا على الآخر على المكونات التي ستتصل بها. قد تتطلب بعض المكونات جهدًا كهربائيًا منخفضًا للتشغيل ، وبالتالي خرج 3 فولت.



في المخطط أعلاه ، لدينا دائرة كاملة. لقد قمنا بتوصيل المسامير العليا من زر الضغط بكل من 5V-pin ، على Arduino ، والمقاوم 10K. هذا ثم يتصل دبوس الأرض (GND) على موقعنا اردوينو. يتصل سلكنا الثالث (باللون الأصفر) بـ pin-2 الرقمي وسوف يحمل إشارة ON إلى لوحة Arduino.
المقاوم
إن الغرض من المقاوم هو إبطاء التيار الكهربائي ، حيث يمر التيار من خلاله ، مما يحد من كمية التيار المتدفق خلال الدائرة. يتحقق ذلك عن طريق جعل المقاومات من مواد ذات خاصية منخفضة التوصيل. تقاس المقاومة بالأوم ويمكن تحديدها من المعادلة التالية:



لنفترض أنني أريد توصيل ضوء LED بمصدر طاقة 9 فولت ، ولكن LED يمكن أن تتحمل 30 ميلي أمبير فقط من التيار. استناداً إلى المعادلة أعلاه ، سنحتاج إلى استخدام المقاوم 300 أوم من أجل الحد من التدفق الحالي من خلال ضوء LED.



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



من الألوان على المقاوم أعلاه ، يمكننا العمل على ما يلي:
- براون (الرقم الأول) = 1
- أسود (رقم ثاني) = 0
- البرتقالي (المضاعف) = 10 ^ 3
- الذهب (التسامح) = +/- 5 ٪
- 10 * 10 ^ 3 = 10000 أوم أو 10 أوزلة killo أو مقاومة 10K
هنا هو الجدول الكامل للألوان. لمزيد من المعلومات ، يرجى الرجوع إلى ويكيبيديا على رموز اللون المقاوم .
اللون | أرقام | مضاعف | تفاوت |
أسود | 0 | X10 ^ 0 | ± 1٪ |
بنى | 1 | X10 ^ 1 | ± 2٪ |
أحمر | 2 | x10^2 | - |
البرتقالي | 3 | x10^3 | (±5%) |
الأصفر | 4 | x10^4 | ±5% |
أخضر | 5 | x10^5 | ±0.25% |
أزرق | 6 | x10^6 | ±10% |
البنفسجي | 7 | x10^7 | ±1% |
اللون الرمادي | 8 | x10^8 | ±0.05% (±10%) |
بيض | 9 | x10^9 | - |
ذهب | - | x10^–1 | ±5% |
فضة | - | x10^–2 | ±10% |
لا شيء | - | - | ±20% |
الغرض من المقاوم
لقد قمت بتوصيل سلك الإشارة الأصفر من طرف رقمي 2 إلى ساق واحدة من زر الضغط. هذه الضلع نفسه من الزر ، على الجانب الآخر ، تتصل عبر المقاوم 10K إلى الأرض لتشكيل دائرة كاملة. عندما لا يتم الضغط على الزر ، يتم قراءة تيار السفر من قبل Arduino باعتباره منخفض.
بمجرد الضغط على الزر لأسفل ، سيتم إنشاء اتصال بين دبوس 2 و 5 V إيجابي من خلال أرجل زر الضغط. وبما أن الكهرباء سوف تسافر دائمًا عبر مسار المقاومة الأقل ، فإنها سوف تتجنب المرور عبر المقاوم وستتدفق عبر دبوس 2 مما ينتج عنه قراءة عالية من قبل مجلس أردوينو.
الخطوة 2
الآن ، دعونا ننهي الخطوة 4 ونجعل ضوء LED يومض أسرع عندما نضغط على زر الضغط.
1 |
int delay_value = 1000; |
2 |
int led_pin = 13; |
3 |
int button_pin = 2; |
4 |
void setup() { |
5 |
pinMode(led_pin, OUTPUT); pinMode(button_pin, INPUT); |
6 |
}
|
7 |
void loop() { |
8 |
digitalWrite(led_pin, HIGH); |
9 |
delay(delay_value); |
10 |
digitalWrite(led_pin, LOW); |
11 |
delay(delay_value); |
12 |
int button_state = digitalRead(button_pin); |
13 |
if (button_state == HIGH) { |
14 |
delay_value = 100; |
15 |
} else { |
16 |
delay_value = 1000; |
17 |
}
|
18 |
}
|
هذه المرة ، يقوم الكود بإرشاد Arduino لمعالجة pin-2 كمصدر دخل عن طريق استدعاء pinMode(button_pin, INPUT)
داخل وظيفةsetup()
. هذا يسمح لنا بقراءة حالة pushbutton لاحقاً داخل الدالة loop()
عن طريق استدعاء digitalRead(button_pin)
. يتيح لنا الحصول على حالة زر الضغط تحديد ما إذا كان يجب استدعاء وظيفة التأخير بقيمة أصغر.
الآن اذهب وتحميل الرمز أعلاه إلى Arduino الخاص بك ، ثم اضغط على زر الضغط لرؤية وميض ضوء LED بشكل أسرع.
استكشاف الأخطاء وإصلاحها
إذا كنت قد حصلت على هذا الحد ولم يعمل الرمز أعلاه لك ، فقد يكون هناك بعض الأسباب لهذا:
- قد يبدو ذلك واضحًا ، ولكن تأكد من توصيل Arduino بمصدر طاقة وتشغيل LED على ON.
- تأكد من أن جميع المسامير والأسلاك ، والمقاوم وزر الضغط متصلان بقوة بلوحة Arduino الخاصة بك ولوحة توصيل الدوائر. إذا كنت غير متأكد من استمرارية اتصالاتك ، فاستخدم جهاز قياس متعدد لقياس الاستمرارية.
- تأكد من أن جميع الاتصالات بلوحة Arduino متصلة بالمدخلات الرقمية الصحيحة.
- إذا استمرت المشكلة ، فاستشر دليل استكشاف الأخطاء وإصلاحها Arduino.
استنتاج



في هذا البرنامج التعليمي ، تعلمت بعض التقنيات الأساسية في استخدام لوحة Arduino ولوحة توصيل ومقاومات وأزرار ضغط مع Arduino IDE.تعلمت أيضًا كيف يمكن استخدام وظيفة delay()
للمحافظة على حالة لأي فترة زمنية محددة.
إذا كان لديك أي أسئلة حول هذا البرنامج التعليمي ، فالرجاء تركها في قسم التعليقات أدناه.