الإعلانات

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

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

ما هو سجل التحول؟

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

instagram viewer

إذا كان ذلك يساعدك على الفهم ، يمكنك التفكير في تسجيل نوبات باعتباره "مجموعة" من المخرجات الرقمية ، ولكن يمكننا تخطي أوامر الكتابة الرقمية المعتادة وإرسال سلسلة من البتات لتشغيلها أو إيقاف.

كيف يعمل؟

سجل التحول الذي سنستخدمه - 74HC595N المتضمن في مجموعة بدء تشغيل Oomlout - يحتاج إلى 3 دبابيس تحكم فقط. الأولى هي الساعة - لا داعي للقلق كثيرًا بشأن هذا الأمر مثل التحكم في مكتبات Arduino التسلسلية - ولكن الساعة هي في الأساس مجرد نبض كهربائي للتشغيل / الإيقاف يحدد سرعة إشارة البيانات.

يتم استخدام دبوس المزلاج لإخبار سجل المناوبة بالوقت الذي يجب فيه تشغيل مخرجاته وإيقاف تشغيلها وفقًا للبتات التي أرسلناها للتو - أي ، إغلاقها في مكانها.

أخيرًا ، دبوس البيانات هو المكان الذي أرسلنا فيه البيانات التسلسلية الفعلية مع البتات لتحديد حالة التشغيل / الإيقاف لمخرجات سجل النوبات.

يمكن وصف العملية برمتها في 4 خطوات:

  1. اضبط دبوس البيانات على مرتفع أو منخفض لأول دبوس إخراج في سجل النقل.
  2. نبض الساعة "لتحويل" البيانات إلى السجل.
  3. استمر في ضبط البيانات ونبض الساعة حتى تقوم بتعيين الحالة المطلوبة لجميع دبابيس الإخراج.
  4. قم بدفع دبوس المزلاج لتنشيط تسلسل الإخراج.

التنفيذ

أنت بحاجة إلى المكونات التالية لهذا المشروع:

  • 7HC595N رقاقة تسجيل التحول
  • 8 مصابيح LED ومقاومات مناسبة أو أي شيء تريد إخراجه
  • اللوح المعتاد والموصلات وأردوينو الأساسي

إذا كان لديك مجموعة Oomlout للمبتدئين ، يمكنك تنزيل تخطيط لوحة التوصيل من هنا.

إليك فيديو التجميع:

تخطيط المجلس:

برمجة اردوينو

ونسختي المجمعة:

برمجة Arduino - اللعب مع سجلات Shift (ويعرف أيضًا باسم المزيد من مصابيح LED)

لقد قمت بتعديل الشفرة الأصلية التي قدمها Ooolmout ، ولكن إذا كنت ترغب في تجربة ذلك بدلاً من ذلك ، فيمكن تنزيله بالكامل هنا. يتم تضمين شرح الكود ، لذلك قم بنسخ ولصق كل شيء من الأسفل أو Pastebin لقراءة شرح للرمز.

/ * * | دروس تسجيل التحول ، على أساس | * | مجموعة تجارب اردوينو CIRC-05 | * |.: 8 مصابيح LED إضافية:. (74HC595 Shift Register) | * * | تم التعديل بواسطة James @ MakeUseOf.com | * * / // تعريفات الدبوس. // 7HC595N له ثلاثة دبابيس. بيانات int = 2 ؛ // حيث نرسل البتات للتحكم في المخرجات داخل الساعة = 3 ؛ // يحافظ على مزامنة البيانات. مزلاج int = 4 ؛ // يخبر سجل المناوبات متى يجب تنشيط إعداد فراغ تسلسل الإخراج () {// تعيين دبابيس التحكم الثلاثة لإخراج pinMode (data، OUTPUT) ؛ pinMode (الساعة ، الإخراج) ؛ pinMode (مزلاج ، خرج) ؛ Serial.begin (9600) ؛ // حتى نتمكن من إرسال رسائل التصحيح إلى جهاز العرض التسلسلي. } حلقة فارغة () {outputBytes ()؛ // ناتجنا الأساسي الذي يكتب 8 بت لإظهار كيفية عمل سجل التحول. //outputIntegers(); // يرسل قيمة عددية كبيانات بدلاً من وحدات البايت ، مع العد الفعال في ثنائي. } void outputIntegers () {for (int i = 0؛ i <256؛ i ++) {digitalWrite (latch، LOW)؛ Serial.println (i) ؛ // Debug ، إرسال الإخراج إلى shiftOut جهاز العرض التسلسلي (البيانات ، الساعة ، MSBFIRST ، i) ؛ الكتابة الرقمية (مزلاج ، عالي) ؛ تأخير (100) ؛ }} void outputBytes () {/ * بايت ، أو 8 بت ، يتم تمثيلها بـ B متبوعًا بـ 8 0 أو 1s. في هذه الحالة ، ضع في اعتبارك أن هذا مثل مصفوفة سنستخدمها للتحكم في 8 مصابيح LED. لقد بدأت هنا قيمة البايت كـ 00000001 * / byte dataValues ​​= B00000001 ؛ // تغيير هذا لضبط نمط البداية / * في الحلقة for ، نبدأ بسحب القفل منخفضًا ، باستخدام وظيفة shiftOut Arduino تحدث إلى سجل النوبات ، وأرسل له بايت البيانات الخاص بنا القيم التي تمثل حالة المصابيح ثم اسحب المزلاج عالياً لتثبيتها في مكان. أخيرًا ، سنقوم بتحويل البتات من مكان واحد إلى اليسار ، مما يعني أن التكرار التالي سيشغل LED التالي في السلسلة. لمعرفة القيمة الثنائية التي يتم إرسالها بالضبط ، تحقق من جهاز العرض التسلسلي. * / for (int i = 0؛ i <8؛ i ++) {digitalWrite (latch، LOW)؛ Serial.println (dataValues، BIN) ؛ // Debug ، إرسال الإخراج إلى shiftOut جهاز العرض التسلسلي (البيانات ، الساعة ، MSBFIRST ، dataValues) ؛ الكتابة الرقمية (مزلاج ، عالي) ؛ dataValues ​​= dataValues ​​<< 1 ؛ // Shift bits مكان واحد إلى اليسار - تغيير إلى >> لضبط تأخير الاتجاه (100) ؛ } }

نقل البتات (وظيفة OutputBytes)

في المثال الأول للحلقة - outputBytes () - يستخدم الكود تسلسل 8 بت (بايت) والذي يقوم بعد ذلك بتحويل كل تكرارات للحلقة for. من المهم ملاحظة أنه إذا انتقلت إلى أبعد مما هو ممكن ، فسيتم فقد البت ببساطة.

يتم نقل البت باستخدام << أو >> متبوعًا بعدد البتات التي تريد التحويل بها.

تحقق من المثال التالي وتأكد من فهمك لما يحدث:

بايت فال = B00011010. val = val << 3 // B11010000. فال = فال << 2 // B01000000 ، فقدنا تلك القطع الأخرى! فال = فال >> 5 // B00000010. 

إرسال أعداد صحيحة بدلاً من ذلك (دالة OutputIntegers)

إذا قمت بإرسال رقم كامل إلى سجل النوبات بدلاً من البايت ، فسيتم ببساطة تحويل الرقم إلى تسلسل ثنائي البايت. في هذه الوظيفة (uncomment في الحلقة وتحميلها لرؤية التأثير) ، لدينا حلقة for التي تحسب من 0-255 (أعلى عدد صحيح يمكننا تمثيله ببايت واحد) ، وإرسال ذلك بدلاً من ذلك. يتم حسابه بشكل أساسي في ثنائي ، لذلك قد يبدو التسلسل عشوائيًا قليلاً ما لم يتم وضع مصابيح LED الخاصة بك في خط طويل.

على سبيل المثال ، إذا قرأت المقالة الثنائية الموضحة ، فستعرف أن الرقم 44 سيتم تمثيله على أنه 00101100 ، لذا فإن مصابيح LED 3،5،6 ستضيء في تلك المرحلة من التسلسل.

برمجة Arduino - اللعب مع سجلات Shift (تعرف أيضًا بمصابيح LED أكثر) ثنائي 44

ديزي تسلسل أكثر من سجل التحول

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

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

مقالات أخرى في السلسلة:

  • ما هو اردوينو وماذا يمكنك أن تفعل به ما هو اردوينو وماذا يمكنك أن تفعل به؟إن Arduino هو جهاز إلكتروني صغير رائع ، ولكن إذا لم تستخدمه من قبل ، فما هي بالضبط بالضبط وماذا يمكنك أن تفعل به؟ قراءة المزيد ?
  • ما هي مجموعة اردوينو للمبتدئين وماذا تحتوي؟ ماذا يوجد في Arduino Starter Kit؟ [MakeUseOf يوضح]لقد قدمت سابقًا جهاز Arduino مفتوح المصدر هنا على MakeUseOf ، ولكنك ستحتاج إلى أكثر من مجرد Arduino الفعلي لبناء شيء منه والبدء بالفعل. "مجموعات بداية" اردوينو هي ... قراءة المزيد
  • المزيد من المكونات الرائعة للشراء مع مجموعة المبتدئين الخاصة بك 8 مكونات رائعة لمشاريع Arduino الخاصة بكلذا ، أنت تفكر في الحصول على مجموعة البدء Arduino ، ولكن تتساءل عما إذا كانت بعض المصابيح الأساسية والمقاومات ستكون كافية لإبقائك مشغولًا لعطلة نهاية الأسبوع؟ على الاغلب لا. هنا 8 أخرى ... قراءة المزيد
  • هل تبدأ مع Arduino Starter Kit؟ تركيب السائقين وإعداد اللوحة والميناء الشروع في العمل مع مجموعة Arduino Starter Kit - تثبيت برامج التشغيل وإعداد اللوحة والمنفذلذا ، لقد اشتريت لنفسك مجموعة بداية اردوينو ، وربما بعض المكونات الرائعة العشوائية الأخرى - والآن ماذا؟ كيف تبدأ بالفعل في برمجة هذا الشيء اردوينو؟ كيف يمكنك إعداده... قراءة المزيد
  • Fritzing ، أداة مجانية لرسم مخططات الدوائر Fritzing - الأداة المثلى لرسم مشاريع الإلكترونيات [Cross Platform]على الرغم من أنه يبدو مثل alcopop ، فإن Fritzing هو في الواقع جزء لا يصدق من البرامج المجانية التي يمكنك استخدامها لإنشاء مخططات الدوائر والمكونات للاستخدام مع لوحات الإلكترونيات ذات النماذج السريعة مثل المصدر المفتوح الرائع اردوينو ... قراءة المزيد
  • نظرة فاحصة على هيكل تطبيق Arduino ومثال برنامج Blink الخطوات الأولى مع Arduino: نظرة فاحصة على لوحة الدوائر وهيكل البرنامجفي المرة الأخيرة ، تركت لك إعداد Arduino للعمل مع Mac أو Windows ، وبعد تحميل تطبيق اختبار بسيط أدى إلى وميض مؤشر LED الموجود على اللوحة. اليوم سأشرح الرمز ... قراءة المزيد
  • مشروع أضواء شجرة Arduino Xmas مشروع اردوينو: كيفية جعل الحلي أضواء عيد الميلاد براقةهذا هو الجزء التالي من سلسلة تعلم Arduino ، وهذه المرة سنتعلم عن المصفوفات ونستخدمها لعمل زخرفة صغيرة لشجرة عيد الميلاد مع تسلسلات وميض متنوعة. هذا سيكون ... قراءة المزيد (تعرف AKA عن المصفوفات)
  • ما هو ثنائي؟ ما هو ثنائي؟ [شرح التكنولوجيا]بالنظر إلى أن الثنائي أساسي للغاية لوجود أجهزة الكمبيوتر ، يبدو من الغريب أننا لم نتطرق إلى الموضوع من قبل - لذلك اعتقدت اليوم أنني سأقدم نظرة عامة موجزة عن ما هو ثنائي ... قراءة المزيد

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

جيمس حاصل على درجة البكالوريوس في الذكاء الاصطناعي ، وهو حاصل على شهادة CompTIA A + و Network +. وهو المطور الرئيسي لـ MakeUseOf ، ويقضي وقت فراغه في لعب كرة الطلاء VR وألعاب الطاولة. لقد كان يبني أجهزة الكمبيوتر منذ أن كان طفلاً.