استفاده از تابع analogWrite() را در خاموش و روشن کردن LED نشان می دهد. AnalogWrite از مدولاسیون عرض پالس (PWM) استفاده می کند و یک پین دیجیتال را خیلی سریع روشن و خاموش می کند تا جلوه ای محو ایجاد کند.
جریان
آند (پایه بلندتر و مثبت) LED خود را از طریق یک مقاومت 220 اهم به پایه خروجی دیجیتال 9 آردوینو متصل کنید . کاتد (پای کوتاهتر و منفی) را مستقیماً به زمین وصل کنید .
تصویر با استفاده از Fritzing ایجاد شده است . برای نمونه مدارهای بیشتر، صفحه پروژه فریتزینگ را ببینید
شماتیک
کد
پس از اعلام پین 9 به عنوان خود ledPin
، هیچ کاری در setup()
عملکرد کد شما وجود ندارد.
تابعی analogWrite()
که در حلقه اصلی کد خود استفاده خواهید کرد به دو آرگومان نیاز دارد: یکی که به تابع می گوید روی کدام پین بنویسد و دیگری نشان می دهد که چه مقدار PWM باید بنویسد.
برای اینکه LED خود را خاموش و روشن کنید، به تدریج مقدار PWM خود را از 0 (در تمام مدت خاموش) به 255 (تمام راه روشن) افزایش دهید و سپس یک بار دیگر به 0 برگردید تا چرخه کامل شود. در طرح زیر، مقدار PWM با استفاده از متغیری به نام تنظیم شده است brightness
. هر بار از طریق حلقه، مقدار متغیر افزایش می یابد fadeAmount
.
اگر brightness
در هر دو انتهای مقدار خود باشد (0 یا 255)، آنگاه fadeAmount
به منفی تغییر می کند. به عبارت دیگر، اگر fadeAmount
5 باشد، روی 5- تنظیم می شود. اگر 55 باشد، روی 5 تنظیم می شود. دفعه بعد از طریق حلقه، این تغییر باعث brightness
تغییر جهت نیز می شود.
analogWrite()
می تواند مقدار PWM را خیلی سریع تغییر دهد، بنابراین تاخیر در پایان طرح، سرعت محو شدن را کنترل می کند. مقدار تاخیر را تغییر دهید و ببینید چگونه برنامه را تغییر می دهد.
/*
محو شدن
این مثال نشان میدهد که چگونه یک LED روی پایه 9 را
با استفاده از تابع analogWrite() محو کنید.
این کد نمونه در دامنه عمومی است.
*/