سؤال

لقد اشتريت للتو rainbowduino. للتحكم في حمولة المصابيح الفردية (وليس مصفوفة RGB). كل الوثائق حتى الآن تهدف نحو التحكم في صفائف RGB التي هي ليس ما أنا بعد.

إذا كنت غير مألوف مع Rainbowduino فهذا اردوينو استنساخ مع 24 قنوات حالية ثابتة من 120 مللي أمبير، 8 قناة سائق المصدر السوبر من 500 مللي أمبير من 500 مللي أمبير كل وجهد واسع الناتج تخصص من 5 V - 12 V DC. مثالي لقيادة المصابيح. صفحة الويب المنتج هنا: http://www.seeedstudio.com/blog/؟page_id=187.

لقد قمت بتوصيل 16 مصابيح LED وأريد أن أكون قادرا على تشغيل كل واحد وإيقاف تشغيله بشكل فردي digitalWrite(). وبعد لقد قمت بتحميل بعض الرمز التوضيحي إلى اللوحة التي لا تعمل حقا. لقد عملت أن القنوات المصدر 8 سائق 8 يمكن السيطرة عليها بسهولة مع digitalWrite() على دبابيس 3-11. ومع ذلك، السيطرة على القنوات الأخرى 24 بالوعة هي أكثر صعوبة. يبدو أنهم يتم التحكم فيه بواسطة 3 سجلات التحول (واحد لكل منهما) يمكنني الوصول إليه فقط مع SHIFTOUT. ليس لدي أي فكرة كيف يعمل هذا. هل يمكن لشخص ما أن يساعدني في الاتجاه الصحيح؟

نصف المصابيح سلكية إلى اللون الأزرق 1-8 والنصف الآخر سلكي إلى الأخضر 1-8. الساقين الإيجابية سلكية في VCC1-2 التي تم ضبطها على ارتفاع. أنا واثق من الدائرة سلكية بشكل صحيح، إنها البرمجة التي أواجهها مشكلات معها.

لقد بحثت عبر رمز العينة الذي يتم شحنه مع Rainbowduino، لكنني لا أستطيع فهم ذلك. كيف يمكنني حل هذه المشكلة؟

هل كانت مفيدة؟

المحلول

إن استخدام سجل التحول إلى المتعدد (أو إزالة الإرسال، اعتمادا على وجهة نظرك) المدخلات / المخرجات شائعة جدا في الإلكترونيات الرقمية.

في الأساس، تقوم بتجارة المسامير الموفرة على وحدة التحكم الخاصة بك لتضطر إلى تضمين شريحة أخرى (سجل التحول) في التصميم.

في هذه الحالة، يعمل السجل كمحول تسلسلي إلى مواز؛ يحتوي على خط إدخال تسلسلي، يتم تغذيته مع البتات من وحدة المعالجة المركزية الخاصة بك. كما أن لديها 8 مخرجات متوازية، متصلة بذاكرة 8 بت محملة بشكل متسامح من وحدة المعالجة المركزية. باستخدام هذا، يمكنك "تحويل" 8 بت من البيانات على دبوس واحد (بالإضافة إلى دبوس واحد للتسوق، عادة)، والتي يتم تخزينها بعد ذلك في سجل التحول ويمكن أن يقود 8 المصابيح بالتوازي.

في هذه الحالة بالذات، تحتاج إلى معرفة دبابيس منفذ AVR التي سجلت سجلات التحول (تحتوي برامج Sintant MBI5168 الحالية على السائقين التي تحتوي على سجلات التحول، هنا). يجب أن يكونوا بالسلاسل إلى زوج من المخرجات، واحدة للبيانات وواحدة على مدار الساعة. بمجرد معرفة هذه المسامير، يجب أن تكون قادرا على قيادتها بنفسك باستخدام التحول من أمر.

حفر قليلا كذلك، هذه العينة "رسم" يحتوي على التعريفات التالية، في الملف يسمى "Rainbow.h":

//MBI5168
#define SH_DIR_OE    DDRC
#define SH_DIR_SDI   DDRC
#define SH_DIR_CLK   DDRC
#define SH_DIR_LE    DDRC

#define SH_BIT_OE    0x08
#define SH_BIT_SDI   0x01
#define SH_BIT_CLK   0x02
#define SH_BIT_LE    0x04

#define SH_PORT_OE   PORTC
#define SH_PORT_SDI  PORTC
#define SH_PORT_CLK  PORTC
#define SH_PORT_LE   PORTC

هذا هو بالطبع إجمالي الرقمية "Hearsay" (لا أملك الجهاز، لم أكن مبرمجا أبدا على أي نوع من أنواع * Duino)، لكنني أقول أن هذا هو نظام التسليم الرصاصي في الجسيمات التي تبحث عنها وبعد

أنا أفسر هذا مثل ذلك:

  • PORTC هو واحد متصل بسجلات التحول، جميع دبابيس التحكم في منافذ المنظمة.
  • أربعة دبابيس مخصصة (بدلا من المتفائلين الذي ذكرته أعلاه).
  • الساعة هي PIN PORTC: 2 والبيانات هي المنظمة: 1.

نصائح أخرى

السيطرة على كل LED واحد مكلفة للغاية، من الأفضل أن تفكر في الصفوف، في حين يتم عرض كل لون LED كما هو الحال في بت، لذلك فهو 8 بت ألوان × 3 (أحمر، أخضر، أزرق). كتبت مكتبة Rainbowduino الصغيرة التي تتيح لك ضبط كل صف أو إطار بسهولة:

قراءة بلدي بلوق نشر على ذلك

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top