فهرست مطالب:

تایمرهای آردوینو: 8 پروژه: 10 مرحله (همراه با تصاویر)
تایمرهای آردوینو: 8 پروژه: 10 مرحله (همراه با تصاویر)

تصویری: تایمرهای آردوینو: 8 پروژه: 10 مرحله (همراه با تصاویر)

تصویری: تایمرهای آردوینو: 8 پروژه: 10 مرحله (همراه با تصاویر)
تصویری: Lesson 10: Conditional Statement in Arduino and Using Array | SunFounder Robojax 2024, نوامبر
Anonim
تایمرهای آردوینو: 8 پروژه
تایمرهای آردوینو: 8 پروژه

Arduino Uno یا Nano می توانند با استفاده از سه تایمر داخلی ، سیگنال های دیجیتالی دقیق را بر روی شش پین اختصاصی تولید کنند. آنها فقط به چند دستور برای راه اندازی نیاز دارند و از هیچ چرخه CPU برای اجرا استفاده نمی کنند!

اگر از برگه اطلاعات کامل ATMEGA328 استفاده کنید ، که دارای 90 صفحه به شرح آنها است ، استفاده از تایمر می تواند ترسناک باشد! چندین دستور داخلی Arduino از تایمرها استفاده می کنند ، به عنوان مثال millis () ، delay () ، tone () ، AnalogWrite () و کتابخانه سرو. اما برای استفاده از تمام قدرت آنها ، باید آنها را از طریق رجیسترها تنظیم کنید. من برخی از ماکروها و عملکردها را برای سهولت و شفافیت بیشتر در اینجا به اشتراک می گذارم.

پس از یک مرور بسیار کوتاه از تایمرها ، 8 پروژه جالب را که با تایمرها به تولید سیگنال متکی هستند دنبال کنید.

مرحله 1: اجزای مورد نیاز

قطعات مورد نیاز
قطعات مورد نیاز

برای ساخت هر 8 پروژه به موارد زیر نیاز دارید:

  • Arduino Uno یا سازگار است
  • نمونه اولیه سپر با مینی صفحه اصلی
  • 6 عدد کابل بلوز بردپر
  • 6 بلوز کوتاه تخته نان (خودتان را از سیم اتصال قوی 10 سانتی متری تهیه کنید)
  • 2 عدد سر تمساح
  • 1 عدد LED سفید 5 میلی متری
  • یک مقاومت 220 اهم
  • یک مقاومت 10 کیلو اهم
  • پتانسیومتر 10 کیلو اهم
  • 2 خازن سرامیکی 1muF
  • 1 خازن الکترولیتی 10muF
  • 2 دیود ، 1n4148 یا مشابه
  • 2 موتور سروو SG90
  • بلندگوی 18 اهم
  • 20 متر سیم مینا نازک (0.13 میلی متر)

مرحله 2: مروری بر تایمرهای آردوینو برای تولید سیگنال

Timer0 و timer2 تایمرهای 8 بیتی هستند ، بدین معنی که حداکثر می توانند از 0 تا 255 را شمارش کنند. Timer1 یک تایمر 16 بیتی است ، بنابراین می تواند تا 65535 شمارش کند. هر تایمر دارای دو پین خروجی مرتبط است: 6 و 5 برای timer0 ، 9 و 10 برای timer1 ، 11 و 3 برای timer2. زمان سنج در هر چرخه ساعت آردوینو افزایش می یابد ، یا با نرخ پیش فرض کاهش می یابد ، که 8 ، 64 ، 256 یا 1024 است (32 و 128 برای تایمر 2 نیز مجاز است). تایمرها از 0 تا 'TOP' و سپس دوباره (PWM سریع) یا پایین (PWM فاز صحیح) شمارش می شوند. بنابراین مقدار "TOP" فرکانس را تعیین می کند. پین های خروجی می توانند مقدار خروجی ثبت شده را تنظیم ، تنظیم مجدد یا تلنگر کنند ، بنابراین آنها چرخه وظیفه را تعیین می کنند. فقط timer1 می تواند به طور مستقل فرکانس و چرخه های وظیفه را برای هر دو پین خروجی تنظیم کند.

مرحله 3: چشمک زدن LED

Image
Image
چشمک زدن LED
چشمک زدن LED
چشمک زدن LED
چشمک زدن LED

کمترین فرکانسی که با تایمرهای 8 بیتی قابل دستیابی است 16 مگاهرتز/(1024*511) = 30 ، 6 هرتز است. بنابراین برای چشمک زدن LED با 1 هرتز ، به تایمر 1 نیاز داریم که می تواند فرکانس های 256 برابر کوچکتر ، 0.12 هرتز را بدست آورد.

یک LED را با آند (پای بلند) آن به pin9 وصل کنید و کاتد آن را با مقاومت 220 اهم به زمین وصل کنید. کد را بارگذاری کنید. LED دقیقاً با سرعت 1٪ با چرخه کار 50٪ چشمک می زند. عملکرد حلقه () خالی است: تایمر در هنگام راه اندازی () اولیه می شود و نیازی به توجه بیشتر ندارد.

مرحله 4: دیمر LED

Image
Image
دیمر LED
دیمر LED
دیمر LED
دیمر LED

مدولاسیون عرض پالس یک روش م toثر برای تنظیم شدت یک LED است. با درایور مناسب ، روش تنظیم سرعت الکتروموتورها نیز ترجیح داده می شود. از آنجا که سیگنال یا 100 on روشن یا 100 off خاموش است ، هیچ قدرتی در مقاومت سری هدر نمی رود. در اصل ، این مانند این است که LED را سریعتر از چشم خود چشمک بزنید. در اصل 50 هرتز کافی است ، اما ممکن است به نظر برسد که کمی سوسو می زند و وقتی LED یا چشم ها حرکت می کنند ، ممکن است یک "دنباله" مزاحم غیر مداوم ایجاد شود. با استفاده از مقیاس پیش فرض 64 با تایمر 8 بیتی ، ما 16 مگاهرتز/(64*256) = 977 هرتز را دریافت می کنیم که مناسب هدف است. ما timer2 را انتخاب می کنیم ، به طوری که timer1 برای سایر توابع در دسترس می ماند و ما در عملکرد زمان Arduino () که از timer0 استفاده می کند تداخل نمی کنیم.

در این مثال چرخه وظیفه و در نتیجه شدت توسط پتانسیومتر تنظیم می شود. LED دوم می تواند به طور مستقل با همان تایمر در پین 3 تنظیم شود.

مرحله 5: مبدل دیجیتال به آنالوگ (DAC)

Image
Image
مبدل دیجیتال به آنالوگ (DAC)
مبدل دیجیتال به آنالوگ (DAC)
مبدل دیجیتال به آنالوگ (DAC)
مبدل دیجیتال به آنالوگ (DAC)

آردوینو خروجی آنالوگ واقعی ندارد. برخی از ماژول ها برای تنظیم پارامتر از ولتاژ آنالوگ استفاده می کنند (کنتراست نمایش ، آستانه تشخیص و غیره). فقط با یک خازن و مقاومت می توان از تایمر 1 برای ایجاد ولتاژ آنالوگ با وضوح 5mV یا بهتر استفاده کرد.

یک فیلتر کم گذر می تواند سیگنال PWM را به ولتاژ آنالوگ "متوسط" کند. خازن از طریق مقاومت به پین PWM متصل می شود. ویژگی ها با فرکانس PWM و مقادیر مقاومت و خازن تعیین می شود. وضوح تایمرهای 8 بیتی 5V/256 = 20mV خواهد بود ، بنابراین ما Timer1 را برای دستیابی به وضوح 10 بیتی انتخاب می کنیم. مدار RC یک فیلتر درجه یک کم گذر است و دارای موجی است. مقیاس زمانی مدار RC باید بسیار بیشتر از دوره سیگنال PWM باشد تا امواج کاهش یابد. دوره ای که برای دقت 10 بیتی به دست می آوریم 1024/16MHz = 64mus است. اگر از خازن 1muF و مقاومت 10kOhm استفاده کنیم ، RC = 10ms. موج پیک تا اوج حداکثر 5V*0.5*T/(RC) = 16mV است که در اینجا کافی در نظر گرفته می شود.

توجه داشته باشید که این DAC امپدانس خروجی بسیار بالایی دارد (10 کیلو اهم) ، بنابراین اگر جریان را بکشد ولتاژ به میزان قابل توجهی کاهش می یابد. برای جلوگیری از این امر ، می توان آن را با یک opamp بافر کرد یا ترکیب دیگری از R و C را انتخاب کرد ، به عنوان مثال 1kOhm با 10muF.

در مثال ، خروجی DAC با پتانسیومتر هدایت می شود. دومین کانال مستقل DAC را می توان با timer1 در پین 10 اجرا کرد.

مرحله 6: مترونوم

Image
Image
مترونوم
مترونوم
مترونوم
مترونوم

مترونوم به ردیابی ریتم هنگام پخش موسیقی کمک می کند. برای پالس های بسیار کوتاه ، خروجی تایمر آردوینو را می توان مستقیماً به بلندگو داد ، که کلیک های قابل شنیدن واضحی را ایجاد می کند. با استفاده از پتانسیومتر ، فرکانس ضربان را می توان از 40 تا 208 ضربه در دقیقه و در 39 مرحله تنظیم کرد. تایمر 1 برای دقت مورد نیاز است. مقدار "TOP" ، که فرکانس را تعیین می کند ، در داخل تابع حلقه () تغییر می کند و این نیاز به توجه دارد! در اینجا می بینید که حالت WGM با نمونه های دیگری که دارای فرکانس ثابت هستند متفاوت است: این حالت ، با TOP تنظیم شده توسط ثبت OCR1A ، دارای بافر دوگانه است و در برابر TOP از دست رفته و یک اشکال طولانی محافظت می کند. با این حال ، این بدان معناست که ما می توانیم تنها از 1 پین خروجی استفاده کنیم.

مرحله 7: طیف صدا

Image
Image
طیف صدا
طیف صدا
طیف صدا
طیف صدا

انسان می تواند بیش از 3 مرتبه فرکانس صدا را از 20 هرتز تا 20 کیلوهرتز بشنود. این مثال طیف کامل را با پتانسیومتر تولید می کند. یک خازن 10muF بین بلندگو و آردوینو قرار داده شده است تا جریان DC را مسدود کند. Timer1 یک موج مربعی تولید می کند. حالت ایجاد شکل موج در اینجا PWM-Phase-correct است. در آن حالت ، شمارنده با رسیدن به بالا شروع به شمارش معکوس می کند ، که منجر به پالس هایی می شود که میانگین آنها ثابت است ، حتی وقتی چرخه کار متفاوت باشد. با این حال ، این دوره نیز تقریباً دو برابر می شود ، و این اتفاق می افتد که با پیش شماره 8 ، timer1 طیف کامل شنیداری را بدون نیاز به تغییر پیش نمایش پوشش می دهد. همچنین در اینجا ، از آنجا که ارزش TOP در حال تغییر است ، استفاده از OCR1A به عنوان بالا اشکالات را کاهش می دهد.

مرحله 8: سروو موتورز

Image
Image
سروو موتورز
سروو موتورز
سروو موتورز
سروو موتورز

کتابخانه های سرو قوی وجود دارد ، اما اگر فقط دو سروو برای رانندگی دارید ، می توانید این کار را مستقیماً با timer1 انجام دهید و بنابراین CPU ، استفاده از حافظه را کاهش دهید و از وقفه جلوگیری کنید. سرووی محبوب SG90 سیگنال 50 هرتز می گیرد و طول پالس موقعیت را کد می کند. ایده آل برای تایمر 1. فرکانس ثابت است ، بنابراین هر دو خروجی در pin9 و pin 10 می توانند برای هدایت سرویس ها به طور مستقل استفاده شوند.

مرحله 9: دو برابر کننده ولتاژ و اینورتر

ولتاژ دوبل و اینورتر
ولتاژ دوبل و اینورتر
ولتاژ دوبل و اینورتر
ولتاژ دوبل و اینورتر
ولتاژ دوبل و اینورتر
ولتاژ دوبل و اینورتر

گاهی اوقات پروژه شما به ولتاژ بالای 5 ولت یا ولتاژ منفی نیاز دارد. ممکن است اجرای MOSFET ، اجرای عنصر پیزو ، تغذیه opamp یا تنظیم مجدد EEPROM باشد. اگر جریان فعلی به اندازه کافی کوچک باشد ، حداکثر تا 5 میلی آمپر ، پمپ شارژ ممکن است ساده ترین راه حل باشد: فقط 2 دیود و دو خازن متصل به یک سیگنال پالس از یک تایمر اجازه می دهد تا آردوینو 5 ولت را به 10 ولت دو برابر کند. در عمل ، 2 قطره دیود وجود دارد ، بنابراین در عمل برای دوبلر بیشتر شبیه 8.6 ولت یا برای اینورتر -3.6 ولت خواهد بود.

فرکانس موج مربعی باید برای پمپاژ بار کافی از طریق دیودها کافی باشد. هنگامی که ولتاژ بین 0 تا 5 ولت تغییر می کند ، یک خازن 1muF 5muC را تغییر می دهد ، بنابراین برای جریان 10 میلی آمپر ، فرکانس باید حداقل 2 کیلوهرتز باشد. در عمل ، فرکانس بالاتر بهتر است ، زیرا باعث کاهش موج می شود. با شمارش تایمر 2 از 0 تا 255 بدون پیش فرض ، فرکانس 62.5 کیلوهرتز است که به خوبی کار می کند.

مرحله 10: انتقال برق بی سیم

Image
Image
انتقال قدرت بی سیم
انتقال قدرت بی سیم
انتقال قدرت بی سیم
انتقال قدرت بی سیم

غیر معمول نیست که یک ساعت هوشمند را بدون کابل شارژ کنید ، اما به راحتی می توانید بخشی از پروژه آردوینو باشید. سیم پیچ با سیگنال فرکانس بالا می تواند بدون تماس الکتریکی قدرت را به سیم پیچ نزدیک دیگر منتقل کند.

ابتدا سیم پیچ ها را آماده کنید. من از یک رول کاغذ با قطر 8.5 سانتی متر و سیم میناکاری با قطر 0.13 میلی متر برای ایجاد 2 سیم پیچ استفاده کردم: اولیه با 20 دور ، ثانویه با 50 دور. خود القایی این نوع سیم پیچ با سیم پیچ های N و شعاع R ~ 5muH * N^2 * R. So است. بنابراین برای N = 20 و R = 0.0425 L = 85muH می دهد که با تستر قطعات تأیید شد. ما یک سیگنال با فرکانس 516 کیلوهرتز تولید می کنیم که منجر به امپدانس 2pi*f*L = 275Ohm می شود. این مقدار آنقدر بالاست که آردوینو وارد جریان بیش از حد نمی شود.

برای کارآمدترین سیم پیچ ، ما می خواهیم از یک منبع AC واقعی استفاده کنیم. یک ترفند وجود دارد که می توان انجام داد: دو خروجی زمان سنج را می توان با وارونه کردن یکی از خروجی ها در فاز مخالف اجرا کرد. برای شباهت بیشتر آن به موج سینوسی ، از PWM-Phase-correct استفاده می کنیم. به این ترتیب ، بین پین 9 تا 10 ، ولتاژ بین هر دو 0 ولت ، پایه 9 +5 ولت ، هر دو 0 ولت ، پین 10 +5 ولت متناوب است. جلوه در تصویر از یک محدوده نشان داده شده است (با یک پیش نمایش 1024 ، این محدوده اسباب بازی پهنای باند زیادی ندارد).

سیم پیچ اصلی را به پین 9 و 10. یک LED را به سیم پیچ ثانویه وصل کنید. هنگامی که سیم پیچ ثانویه به اولیه نزدیک می شود ، LED به شدت روشن می شود.

توصیه شده: