أنماط الأرقام في البايتات
جزء من قسم الشاشات والمستشعرات في رحلة Arduino على Coddy. الدرس 2 من 24.
سبعة أسطر من digitalWrite() لكل رقم تعني الكثير من التعليمات البرمجية. خزّن كل رقم على هيئة نمط: بت واحد لكل مقطع، 1 للإضاءة و0 للإطفاء.
الـbyte عدد صحيح من 0 إلى 255 مكوّن من ثمانية بتات. اكتبه بالنظام الثنائي مع 0b في المقدمة. اقرأ البتات من اليمين: البت الأخير هو المقطع a، والذي يسبقه هو b، وهكذا حتى g.
// gfedcba
byte one = 0b0000110; // b وc: القيمة 1تتسع المصفوفة لعشرة أنماط، لذا فإن digits[3] هو نمط الرقم 3. تقرأ bitRead()، من عدّاد النظام الثنائي، بتًا واحدًا منه، بدءًا من اليمين والعد من 0:
bitRead(0b0000110, 0) // 0: المقطع a مطفأ
bitRead(0b0000110, 1) // 1: المقطع b مضاءيمكن لدالة المرور على البتات السبعة باستخدام حلقة for وضبط دبوس كل مقطع، لذا فإن رسم أي رقم لا يتطلب سوى استدعاء واحد: showDigit(7);
التحدي
متوسطيحتوي الكود المبدئي على جميع الأنماط باستثناء 4 و7، وتعرض loop() الأرقام 1 و4 و7.
- أكمل الرقم 4 (المقاطع
bوcوfوg) والرقم 7 (aوbوc) - اكتب
showDigit(n): لكلiمن 0 إلى 6، اضبطsegmentPins[i]علىLOWعندما تكون قيمة البتiفيdigits[n]هي 1، وعلىHIGHعندما تكون 0
اضغط Run، ثم Check.
جرّب بنفسك
const int segmentPins[7] = {2, 3, 4, 5, 6, 7, 8}; // a, b, c, d, e, f, g
// نمط واحد لكل رقم، يُقرأ من اليمين: البت الأخير هو المقطع a.
// gfedcba
const byte digits[10] = {
0b0111111, // 0
0b0000110, // 1
0b1011011, // 2
0b1001111, // 3
0b0000000, // 4: أكمل القيمة
0b1101101, // 5
0b1111101, // 6
0b0000000, // 7: أكمل القيمة
0b1111111, // 8
0b1101111 // 9
};
void showDigit(int n) {
// أضئ مقاطع digits[n] وأطفئ المقاطع الأخرى
}
void setup() {
for (int i = 0; i < 7; i++) {
pinMode(segmentPins[i], OUTPUT);
}
}
void loop() {
showDigit(1);
delay(1000);
showDigit(4);
delay(1000);
showDigit(7);
delay(1000);
}
يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس الشاشات والمستشعرات
1شاشات العرض ذات الأجزاء السبعة
شاشة العرض ذات الأجزاء السبعةأنماط الأرقام في البايتاتالعدّ على الشاشةالعدّ التنازلي حتى الصفرمحاكي رمي النردتدرّب بنفسك: Playground لـ Arduino