جدول المحتويات:

تغيير ألوان LED باستخدام POT و ATTINY 85: 3 خطوات
تغيير ألوان LED باستخدام POT و ATTINY 85: 3 خطوات

فيديو: تغيير ألوان LED باستخدام POT و ATTINY 85: 3 خطوات

فيديو: تغيير ألوان LED باستخدام POT و ATTINY 85: 3 خطوات
فيديو: Tiny Chip, Huge Impact: Master the Art of PIXEL LED Control with ATtiny85 ! : A Step-by-Step Guide 2024, شهر نوفمبر
Anonim
تغيير ألوان LED باستخدام POT و ATTINY85
تغيير ألوان LED باستخدام POT و ATTINY85
تغيير ألوان LED باستخدام POT و ATTINY85
تغيير ألوان LED باستخدام POT و ATTINY85
تغيير ألوان LED باستخدام POT و ATTINY85
تغيير ألوان LED باستخدام POT و ATTINY85

في هذا المشروع ، نستخدم مقياس الجهد (POT) لتغيير الألوان في LED باستخدام ATTINY85.

بعض التعاريف -

مقياس الجهد هو جهاز مزود بآلية لولبية / دوران صغيرة والتي عند تدويرها تنتج مقاومات كهربائية مختلفة. يمكنك أن ترى من الصورة المشروحة أعلاه أن POT بها 3 دبابيس ، وهي + ، - ، والإخراج. يتم تشغيل POT عن طريق توصيل المسامير + و - بـ vcc والأرضي على التوالي على مصدر طاقة. عندما يتم تشغيل برغي POT ، تتغير مقاومة الخرج وتتسبب في انخفاض أو زيادة شدة LED.. بمعنى آخر ، إنه مقاوم متغير. يتم استخدامها في أشياء مثل مخفتات الإضاءة المنزلية.

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

ATTINY85 - هذه شريحة صغيرة منخفضة التكلفة يمكنك برمجتها مثل Arduino.

نظرة عامة - الإخراج من POT متصل بـ ATTINY85. عندما يتم تشغيل برغي POT ، يتم إخراج مقاومة الاختلاف كرقم بين 0 و 255. يمكن أن يقيس ATTINY هذا ويتخذ إجراءات مختلفة اعتمادًا على قيمة مقاومة POT. في هذه الحالة ، قمنا ببرمجتها للاتصال بمصباح LED على النحو التالي.

إذا كان الرقم أكبر من 170 ، فقم بتحويل مؤشر LED إلى اللون الأخضر.

إذا كان الرقم أقل من 170 ولكن أكبر من 85 ، فقم بتبديل مؤشر LED إلى الأحمر.

إذا كان الرقم أقل من 85 ، فقم بتشغيل LED GREEN AND RED مما ينتج عنه ORANGE.

BOM

1 × 3 دبوس LED1 × ATTINY 85

1 × وعاء (B100K)

1 × لوح توصيل وكابلات

1 مصدر طاقة.

الخطوة الأولى: برمجة ATTINY85

فيما يتعلق ببرمجة ATTINY85 ، يرجى الرجوع إلى التعليمات السابقة الخاصة بي -

يظهر رمز أدناه. بعض النقاط التي يجب ملاحظتها هي أن دبابيس ATTINY ، PB3 ، دبوس مادي 2 ، PB2 ، دبوس مادي 7 متصل ، في الوضع الرقمي ، بمصباح LED لإحداث تغيير في اللون. ATTINY pin PB4 ، الدبوس المادي 3 ، متصل بـ POT في الوضع التناظري ، مما يعني أنه يمكنه قراءة القيم بين 0 و 254. لقد قمت بتخصيص الكود الذي وجدته على الإنترنت لذلك أقر بهذا العمل. -

initADC () باطلة {// *** // *** Pinout ATtiny25 / 45/85: // *** PDIP / SOIC / TSSOP // *** ============= ==================================================== =============================== // *** // *** (PCINT5 / RESET / ADC0 / dW) PB5 [1] * [8] VCC // *** (PCINT3 / XTAL1 / CLKI / OC1B / ADC3) PB3 [2] [7] PB2 (SCK / USCK / SCL / ADC1 / T0 / INT0 / PCINT2) // * ** (PCINT4 / XTAL2 / CLKO / OC1B / ADC2) PB4 [3] [6] PB1 (MISO / DO / AIN1 / OC0B / OC1A / PCINT1) // *** GND [4] [5] PB0 (MOSI / DI / SDA / AIN0 / OC0A / OC1A / AREF / PCINT0) // *** // pb4 - دخل POT // pb3 led pin 1 // pb2 led pin 3 // ATTINY 85 تم ضبط التردد عند 8 ميجا هرتز / * تعمل هذه الوظيفة على تهيئة ADC

ملاحظات ADC Prescaler:

يجب ضبط ADC Prescaler بحيث يكون تردد إدخال ADC بين 50-200 كيلو هرتز.

لمزيد من المعلومات ، راجع الجدول 17.5 "تحديدات ADC Prescaler" في الفصل 17.13.2 "ADCSRA - سجل التحكم والحالة ADC ADC" (الصفحات 140 و 141 على ورقة بيانات ATtiny25 / 45/85 الكاملة ، Rev. 2586M-AVR-07 / 10)

قيم المقياس المسبق الصالحة لسرعات مختلفة على مدار الساعة

قيم المقياس المسبق المتوفرة على مدار الساعة --------------------------------------- 1 ميجا هرتز 8 (125 كيلو هرتز) ، 16 (62.5 كيلو هرتز) 4 ميجا هرتز 32 (125 كيلو هرتز) 64 (62.5 كيلو هرتز) 8 ميجا هرتز 64 (125 كيلو هرتز) 128 (62.5 كيلو هرتز) 16 ميجا هرتز 128 (125 كيلو هرتز)

المثال أدناه قم بتعيين prescaler على 128 لتشغيل mcu بسرعة 8 ميجا هرتز

(تحقق من ورقة البيانات لقيم البت المناسبة لتعيين مقياس مسبق) * /

// دقة 8 بت

// اضبط ADLAR على 1 لتمكين نتيجة Left-shift (فقط بت ADC9.. ADC2 متوفرة) // إذن ، قراءة ADCH فقط كافية لنتائج 8 بت (256 قيمة) DDRB | = (1 << PB3) ؛ // تم تعيين الدبوس كإخراج. DDRB | = (1 << PB2) ؛ // تم تعيين الدبوس كإخراج. ADMUX = (1 << ADLAR) | // نتيجة التحول الأيسر (0 << REFS1) | // مجموعات المرجع. الجهد إلى VCC ، بت 1 (0 << REFS0) | // مجموعات المرجع. الجهد إلى VCC ، بت 0 (0 << MUX3) | // استخدم ADC2 للإدخال (PB4) ، MUX بت 3 (0 << MUX2) | // استخدم ADC2 للإدخال (PB4) ، MUX بت 2 (1 << MUX1) | // استخدم ADC2 للإدخال (PB4) ، بت MUX 1 (0 << MUX0) ؛ // استخدم ADC2 للإدخال (PB4) ، MUX بت 0

ADCSRA =

(1 << عدن) | // تمكين ADC (1 << ADPS2) | // تعيين prescaler إلى 64 ، بت 2 (1 << ADPS1) | // ضبط prescaler على 64 ، بت 1 (0 << ADPS0) ؛ // تعيين مقياس مسبق إلى 64 ، بت 0}

int main (باطل)

{initADC () ،

بينما (1)

{

ADCSRA | = (1 << ADSC) ، // بدء قياس ADC أثناء (ADCSRA & (1 << ADSC)) ؛ // انتظر حتى اكتمال التحويل

إذا (ADCH> 170)

{PORTB | = (1 << PB3) ، // تعيين الدبوس على HIGH. بورتب | = (1 << PB2) ، // تعيين الدبوس على HIGH. } else if (ADCH 85) {PORTB | = (1 << PB3) ؛ // تعيين الدبوس على HIGH. PORTB & = ~ (1 << PB2) ؛ // تعيين الدبوس على LOW

} آخر {

بورتب | = (1 << PB2) ، // تعيين الدبوس على HIGH. PORTB & = ~ (1 << PB3) ؛ // تعيين الدبوس على LOW

}

}

العودة 0 ؛

}

الخطوة 2: الدائرة

دائرة كهربائية
دائرة كهربائية

دبابيس ATTINY

PB3 ، دبوس مادي 2 - دبوس LED متصل 1

PB4 ، الدبوس المادي 3 ، متصل بـ POT الدبوس الأوسط

GND ، الدبوس المادي 4 ، متصل بالسكك الحديدية السلبية - مزود الطاقة

PB2 ، دبوس مادي 7 - دبوس LED متصل 3

VCC ، الدبوس المادي 8 ، متصل بالسكة الموجبة - مزود الطاقة

وعاء

نقاط البيع و Neg pin متصلان بالقضبان ذات الصلة - مزود الطاقة.

قاد

الدبوس الأوسط متصل بالسكك الحديدية السلبية - مزود الطاقة

لقد جربت استخدام مصدر طاقة 3 و 3.3 فولت وعمل كلاهما.

الخطوة الثالثة: الخاتمة

استنتاج
استنتاج

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

موصى به: