الأهداف
في النشاط التالي سوف نصنع عدّاد من 0 إلى 15 و يكون العد في النظام الثنائي بالإستعانة بأربعة صمامات لاد، بحيث نمثل الرقم 0 بلد منطفئة و الرقم واحد بلد متوهجة.
للتذكير لاحظ الجدول التالي:
ما يلزمنا
- لوحة أردوينو
- لوحة تجارب
- 04 مقاومات 220 Ω (أحمر، أحمر، أحمر)
- 04 صمامات لد
- أسلاك توصيل.
قم بانشاء التركيب التالي
المخارج المستعملة هي:
المخرج «Pin 2» لتمثيل الموضع 20 و الذي يساوي 1
المخرج «Pin 3» لتمثيل الموضع 21 و الذي يساوي 2
المخرج «Pin 4» لتمثيل الموضع 22 و الذي يساوي 4
المخرج «Pin 5» لتمثيل الموضع 23 و الذي يساوي 8.
إفتح واجهة التطوير و حرر نص البرنامج التالي:
int ledPin[] = {2,3,4,5};
void setup()
{
for (int i =0;i<4;i++){
pinMode(ledPin[i], OUTPUT);
}
}
void loop()
{
for (byte counter =0;counter<=15; counter++){
displayBinary(counter);
delay(500);
}
}
void displayBinary(byte numToShow){
for (int i =0;i<4;i++){
if (bitRead(numToShow, i)==1){
digitalWrite(ledPin[i], HIGH);
}
else{
digitalWrite(ledPin[i], LOW);
}
}
}
بقم بفحص نص البرنامج ثم إرفعه إلى اللوحة.
لقد أنجزت عداد من 0 إلى 15. بدأنا في البرنامج بتحديد المنافذ الرقمية (PIN2 – PIN5) كمخارج و قمنا بوصلها عبر مقاومات تحديد التيار للصمامات.
في مشروعنا أنشأنا الدالة displayBinary(counter) و التي تقوم بتحويل العدد العشري المحصور بين 0 و 15 (لاحظ الحلقة) إلى نظيره في النظام الثنائي.
تستعين الدالة السابقة بالدالة المُعرفة في برنامج أردوينو و قد رأينا عملها بالتفصيل في النشاط السابق.
bitRead()
تمرين
أعد كتابة البرنامج السابق كي يقوم بالعد العكسي أي من 15 إلى 0.
قم بدراسة البرنامج التالي مع تجريبه
int ledPin[] = {2,3,4,5};
void setup()
{
for (int i =0;i<4;i++){
pinMode(ledPin[i], OUTPUT);
}
}
void loop()
{
byte nums[] = {1, 2, 4, 8, 4, 2, 1};
for (byte i = 0; i<7;i++) {
displayBinary(nums[i]);
delay(80);
}
}
void displayBinary(byte numToShow){
for (int i =0;i<4;i++){
if (bitRead(numToShow, i)==1){
digitalWrite(ledPin[i], HIGH);
}
else{
digitalWrite(ledPin[i], LOW);
}
}
}
قم يتغيير السطرين 12 و 13 إلى التالي و لاحظ نمط العرض. ألا يذكرك هذا البرنامج بشيء ؟
byte nums[] = {0, 1, 3, 6, 4, 12, 8, 12, 4, 6, 3, 1, 0};
for (byte i = 0; i<13;i++)
قم بالاستعانة بالجدول السابق (عشري / ثنائي) لإنشاء أنماط مختلفة من إبداعك.