فهرست مطالب:

تغییر رنگ LED با استفاده از POT و ATTINY85: 3 مرحله
تغییر رنگ LED با استفاده از POT و ATTINY85: 3 مرحله

تصویری: تغییر رنگ LED با استفاده از POT و ATTINY85: 3 مرحله

تصویری: تغییر رنگ LED با استفاده از POT و ATTINY85: 3 مرحله
تصویری: Using Digispark Attiny85 Mini Arduino boards: Lesson 108 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-این یک تراشه کوچک کم هزینه است که می توانید آن را مانند آردوینو برنامه ریزی کنید.

نمای کلی - خروجی POT به ATTINY85 متصل است. با چرخاندن پیچ POT ، یک مقاومت متفاوت به صورت عددی بین 0 تا 255 تولید می شود. ATTINY می تواند این را اندازه گیری کرده و بسته به مقدار مقاومت POT اقدامات متفاوتی انجام دهد. در این مورد ، ما برنامه ریزی کرده ایم که به شکل زیر به LED متصل شود.

اگر عدد بیشتر از 170 است ، LED را به سبز تغییر دهید.

اگر عدد کمتر از 170 اما بیشتر از 85 است ، LED را به RED تغییر دهید.

اگر عدد کمتر از 85 باشد LED GREEN AND RED را روشن کنید که منجر به نارنجی می شود.

BOM

1 x 3 پین LED 1 x ATTINY 85

1 x POT (B100K)

1 عدد تخته نان و کابل

1 منبع تغذیه

مرحله 1: برنامه نویسی ATTINY85

از نظر برنامه نویسی ATTINY85 ، لطفاً به دستورالعمل قبلی من مراجعه کنید-https://www.instructables.com/id/15-Dollar-Attiny8…

کد زیر نشان داده شده است. برخی از نکات قابل توجه این است که دو پین ATTINY ، PB3 ، پایه فیزیکی 2 ، PB2 ، پایه فیزیکی 7 ، در حالت دیجیتال ، به LED متصل شده اند تا تغییر رنگ را ایجاد کنند. پین ATTINY PB4 ، پایه 3 فیزیکی ، در حالت آنالوگ به POT متصل است ، به این معنی که می تواند مقادیر بین 0 تا 254 را بخواند. من کدهایی را که در اینترنت پیدا کردم سفارشی کردم ، بنابراین این کار را تأیید می کنم. -

void 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/INTIN/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:

ADC Prescaler باید طوری تنظیم شود که فرکانس ورودی ADC بین 50 تا 200 کیلوهرتز باشد.

برای کسب اطلاعات بیشتر ، به جدول 17.5 "ADC Prescaler Selections" در فصل 17.13.2 "ADCSRA - ADC Control and Status Register A" (صفحات 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 کیلوهرتز)

در مثال زیر ، پیش فروشنده را برای mcu با فرکانس 8 مگاهرتز روی 128 تنظیم کنید

(برای تنظیم مقادیر بیت مناسب برای تنظیم پیش شماره ، برگه اطلاعات را بررسی کنید) */

// وضوح 8 بیتی

// ADLAR را روی 1 تنظیم کنید تا نتیجه تغییر چپ را فعال کنید (فقط بیت های 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 << ADEN] | // ADC (1 << ADPS2) | را فعال کنید // تنظیم پیش فروش بر روی 64 ، بیت 2 (1 << ADPS1) | // تنظیم پیش فروش بر روی 64 ، بیت 1 (0 << ADPS0) ؛ // تنظیم پیش فروش بر روی 64 ، بیت 0}

int main (باطل)

{initADC ()؛

در حالی که (1)

{

ADCSRA | = (1 << ADSC) ؛ // شروع اندازه گیری ADC در حالی که (ADCSRA & (1 << ADSC))؛ // منتظر بمانید تا تبدیل کامل شود

if (ADCH> 170)

{PORTB | = (1 << PB3] ؛ // پین روی HIGH تنظیم شد. PORTB | = (1 << PB2) ؛ // پین روی HIGH تنظیم شد. } else if (ADCH 85) {PORTB | = (1 << PB3) ؛ // پین روی HIGH تنظیم شد. PORTB & = ~ (1 << PB2)؛ // پین روی LOW تنظیم شد

} دیگری {

PORTB | = (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 ، به ریل مثبت - منبع تغذیه متصل است

قابلمه

پین pos و neg به ریل مربوطه متصل شده است - منبع تغذیه.

رهبری

پین وسط متصل به ریل منفی - منبع تغذیه

من با استفاده از منبع تغذیه 3 و 3.3 ولت آزمایش کردم و هر دو کار کردند.

مرحله 3: نتیجه گیری

نتیجه
نتیجه

قابلیت ATTINY85 برای حرکت بین حالت آنالوگ و دیجیتال بسیار قدرتمند است و می تواند در تعدادی از برنامه های مختلف استفاده شود ، به عنوان مثال. رانندگی موتورهای با سرعت متغیر و ایجاد نت های موسیقی من این را در دستورالعمل های آینده بررسی خواهم کرد. امیدوارم این مطلب مفید واقع شده باشد.

توصیه شده: