خانه / دانش و مهارت / الکترونیک / آموزش کنترل LED با استفاده از میکروکنترلر AVR (سه پروژه ساده با LED)

آموزش کنترل LED با استفاده از میکروکنترلر AVR (سه پروژه ساده با LED)

این ساختنی یک گام دیگر در یادگیری بیشتر در مورد میکروکنترلر AVR است. ساختنی سه پروژه ساده مبتنی بر LED برای آموزش کنترل LED با استفاده از میکروکنترلر ATmega328 را برای شما آماده کرد است.که به شما در یادگیری مفاهیم اساسی آن کمک خواهد کرد. ATmega328 یک میکروکنترلر مبتنی بر AVR هشت بیتی است که یک میکروکنترلر قدرتمند با حافظه داخلی ۳۲ کیلو بایت است. بیشتر بردهای آردوینو شامل یک میکروکنترلر AVR هشت بیتی ATMEL با حافظه فلش متفاوت،پین ها و ویژگی های متفاوت هستند. آردوینو Uno یک برد میکروکنترلر مبتنی بر ATmega328 است.

استفاده از میکروکنترلرهای AVR بسیار راحت است. همه میکروکنترلرهای AVR نیاز به محیط توسعه یکپارچه (IDE) مانند Atmel Studio دارند. با استفاده از این IDE، می توانیم بر روی تمام میکروکنترلرهای AVR برنامه های خود را ایجاد، کامپایل و اشکال زدایی کنیم.

با استفاده از Atmel Studio 7 برنامه های چشمک زدن ساده LED برای ATmega328 را ایجاد می کنیم.

  1. چشمک زدن دو LED با استفاده از ATmega328
  2. کنترل دو LED با استفاده از کلید فشاری
  3. تغییر وضعیت دو LED با استفاده از کلید فشاری

۱-چشمک زدن دو LED با استفاده از ATmega328

در این قسمت، یاد خواهید گرفت که چگونه دو LED با میکروکنترلر AVR ATmega328 چشمک می زنند. ابتدا، دو LED به PB2 و PB3 پورت B میکروکنترلر ATmega328 متصل خواهیم کرد. سپس دو LED را با فاصله ۱ ثانیه برای چشمک زدن آماده می کنیم. این بدان معنی است که در ثانیه اول LED یک به تنهایی روشن خواهد بود و در ثانیه بعد خاموش می شود و LED دو روشن خواهد شد. این روند برای همیشه ادامه می یابد و به همین ترتیب LED ها به طور مداوم چشمک می زنند.

در ساختنی بخوانید :  میز تلویزیون چوبی شیک و ساده با پایه های فلزی بسازید
پروژه LED چشمک زن با استفاده از میکرو کنترلر ATmega328
پروژه LED چشمک زن با استفاده از میکرو کنترلر ATmega328

مدار را همان طور که در دیاگرام نشان داده شده است مونتاژ کنید. یک عکس از مدار مونتاژ شده و یک فیلم از پروژه در زیر نشان داده شده است.

توضیح برنامه آموزش کنترل LED

چشمک زدن دو LED با استفاده از ATmega328

گذر واژه : saakhtani.ir است.در ابتدا برنامه یک پیش پردازنده به نام”F_CPU ” تعریف شده است. راه ساده برای شما این است که کتابخانه هایی را که تعداد پردازش برنامه در واحد ثانیه برای آنها مشخص است را صدا بزنید. در اینجا F_CPU را ۱ MHZ تعریف کردیم. “#include <avr/io.h>” یک فایل هدر است که عملیات I/O مختلف مانند DDRX، PINx، PORTx و غیره را فراهم می کند. “#include <util/delay.h>” یک فایل هدر است که توابع تاخیری داخلی مانند delay_ms()_،delay_us()_ و غیره را فراهم می کند.  “_delay_ms(1000)”یک تاخیر ۱۰۰۰ میلی ثانیه ایجاد می کند( یعنی معادل ۱ ثانیه).

_DDRx Data Direction Register جهت داده ها از پورت( ورودی/خروجی) را تنظیم می کند. دستور“ DDRB |= (1<<DDB2)”  پین پورت مربوطه را به عنوان خروجی ایجاد می کند.

PORTx_ رجیستر Port برای اختصاص دادن مقایر مناسب برای پین های پورت است. نوشتن PORTx.n بلافاصله وضعیت پین های پورت را با توجه به مقدار داده شده تغییر خواهد داد. “PORTB |=(1<<PORTB2)” یک سیگنال high( یک) در PB2 ایجاد می کند و “PORTB&=~(1<<PORTB3)” یک سیگنال low( صفر) در PB3 ایجاد می کند.

۲- کنترل دو LED با استفاده از کلید فشاری

در اینجا قصد داریم نحوه کنترل کارکرد دو LED را با استفاده از یک کلید فشاری را یاد دهیم. مانند مدار قبلی، ابتدا دو LED را به PB2 و PB3 پورت B میکروکنترلر متصل می کنیم. یک کلید فشاری به PB0 متصل می شود که با استفاده از مقاومت ۱۰K Pull-up می شود. ترمینال دیگر کلید به زمین وصل می شود. عملکرد مقاومت Pull-up این است که مطمئن شوید وقتی که سوئیچ را فشار ندادید، وضعیت پین PB0 باید high باشد. مقاومت های  Pull-up 20K ساخته شده در تراشه ATmega وجود دارد که از طریق نرم افزار قابل دسترسی است. اما در اینجا ما از یک مدار Pull-up خارجی استفاده کردیم. وقتی سوئیچ فشار داده می شود، دو LED روشن می شوند و هنگام رها شدن سوئیچ خاموش می شوند. این نحوه کارکرد مدار می باشد.

در ساختنی بخوانید :  آموزش ساخت گردنبند های ساده و شیک
پروژه کنترل LED با دکمه فشاری
پروژه کنترل LED با دکمه فشاری

مدار آموزش کنترل LED را همان طور که در دیاگرام نشان داده شده است مونتاژ کنید. یک عکس از مدار مونتاژ شده و یک فیلم از پروژه در زیر نشان داده شده است.

توضیح برنامه

کنترل دو LED با استفاده از کلید فشاری

گذر واژه : saakhtani.ir است. در بخش قبل راجع به پیش پردازنده ها و کتابخانه ها بحث کردیم. تنها چیز جدیدی که در این کد آمده اختصاص دادن پین PB0 به عنوان پورت ورودی و حلقه “if ” مربوط به آن پین است.

“DDRB &= ~(1 << DDB0)” کد استفاده شده برای اختصاص دادن PB0 به عنوان پورت ورودی است. یک حلقه “if ” در یک حلقه” while” گنجانده شده است که به طور پیوسته وضعیت پین PB0  و تغییر وضعیت دو LED را به ترتیب بررسی می کند.

رجیستر PIN برای خواندن داده ها از پین های پورت، زمانی که پورت به عنوان ورودی پیکربنده شده است استفاده می شود. “!(PINB&(1<<PINB0))”  شرط حلقه “if ” است که مشخص می کند آیا وضعیت پین PB0 high باشد یا low. موقعی که وضعیت low است، کنترلر LED را روشن می کند. LED هنگامی که یک مقدار low در پین PB0  را می خواند خاموش خواهد شد.

۳-تغییر وضعیت دو LED با استفاده از کلید فشاری

در این بخش از مدار آموزش کنترل LED ،وضعیت دو LED را بر اساس ورودی از یک کلید فشاری تغییر می دهیم. مدار مورد نیاز برای این شبیه به بخش بالا است. تنها تفاوت در بخش برنامه نویسی است و کار مدار آموزش کنترل LED نیز کمی متفاوت است. کنترل کننده هر بار که ورودی از سوئیچ دریافت می کند، وضعیت فعلی دو LED را تغییر می دهد.

در ساختنی بخوانید :  آموزش ساخت: دستکش لمسی بلوتوثی Gravity بسازید[Arduino]
انتخاب بین دو LED با استفاده از یک دکمه فشاری
پروژه انتخاب بین دو LED با استفاده از یک دکمه فشاری 

مدار را همان طور که در دیاگرام نشان داده شده است مونتاژ کنید. یک فیلم از پروژه در زیر نشان داده شده است.

توضیح برنامه

تغییر وضعیت دو LED با استفاده از کلید فشاری

گذر واژه : saakhtani.ir است.مانند بخش های بالا، در اینجا نیز از پیش پردازنده ها و کتابخانه ها استفاده می کنیم و پین های لازم به عنوان ورودی و خروجی با استفاده از DDRx(Data Direction Register) پیکربندی شده است. یک حلقه “if ” با شرایط “!(PINB&(1<<PINB0))” در برنامه اصلی قرار می گیرد که به طور پیوسته وضعیت پین PB0 را بررسی می کند.

“PORTB ^= (1<<PINB2)^(1<<PINB3)”  دستور برای تغییر وضعیت فعلی پین های PB2 و PB3 است. یک تاخیر ۳۰۰ میلی ثانیه نیز در انتهای برنامه به منظور اجتناب از انتخاب چندباره (debounce) کلید فشاری وجود دارد. تجربیات خود را با

منبع

خلاصه مطلب
آموزش کنترل LED با استفاده از میکروکنترلر AVR
عنوان مطلب
آموزش کنترل LED با استفاده از میکروکنترلر AVR
توضیح کوتاه
آموزش کنترل LED ها با استفاده از میکرو کنترلر از طریق سه پروژه ساده میکروکنترلر AVR
نویسنده
ساختنی
ساختنی

بیشتر بخوانید:

مدار راه انداز LCD کاراکتری با میکرو کنترلر های AVR... این ساختنی یک گام دیگری در یادگیری بیشتر در مورد پروژه های میکروکنترلر AVR است. در این ساختنی ارتباط ماژول LCD با میکروکنترلر ATmega328 را نشان می دهی...
چگونه لپ تاپ را به اسیلوسکوپ تبدیل کنیم؟... اسیلوسکوپ یک دستگاه تست الکترونیکی است که امکان نمایش سیگنال های ولتاژ و مطالعه آنها را فراهم می کند. این دستگاه یک مدار مخصوص دارد که امواج متحرک متو...
آموزش ساخت سرعت سنج دوچرخه با برد آردوینو و میکروکنترلر Atmega 328p... در این ساختنی آموزش ساخت سرعت سنج دوچرخه را یاد می گیرید. قطعه اصلی این سرعت سنج میکروکنترلر آردوینو است که کار با آن بسیار ساده است. ما کدهای آردوینو...
ساخت ژنراتور نوسان ساز IPWM با استفاده از آردوینو... مدولاسیون پهنای پالس (PWM) مبنایی برای کنترل در الکترونیک قدرت است. اکثردستگاه های قدرت نیمه هادی در مدارهای الکترونیک قدرت به وسیله سیگنال های مدولاس...
با دات ماتریکس و کنترلر ATmega8 نمایشگر دمای محیط بسازید... نمایش دمای محیط روی نمایشگرهای بزرگ یکی از نیازهای اصلی کارگاه های صنعتی است. نمایشگر دمای محیط معمولاً در اتاق سرور، انبار مواد اولیه، محل نگه داری ح...
کندلر تخم مرغ شارژی (برای بازرسی جوجه کشی) با آی سی MAX1879 بسازید... دستگاه کندلر تخم مرغ (Egg Candler) یک دستگاه ساده است که برای تست تخم مرغ های درون دستگاه جوجه کشی استفاده می شود و معلوم می کند که جنین درون تخم مرغ ...

درباره سید علی طلاکش

سید علی طلاکش
سید علی طلاکش ، مهندس الکترونیک و نویسنده وبسایت ساختنی است .

پیشنهاد می کنیم

کنترل سرعت موتور DC با استفاده از AVR

کنترل سرعت موتور DC با PWM در AVR Atmega32

استفاده از PWM (مدولاسیون پهنای پالس) برای کنترل دستگاه به عنوان یک روش معمول در …

پاسخ دهید