کنترل روشنایی LED با PWM آردوینو و پتانسیومتر

کنترل روشنایی LED با PWM تمرینی است که ورودی آنالوگ و خروجی دیجیتال را به هم وصل میکند. در Arduino Uno کلاسیک، PWM با روشن و خاموش کردن سریع خروجی، نسبت زمان روشن بودن را تغییر میدهد؛ ولتاژ ثابت آنالوگ واقعی از پایه تولید نمیشود.
سیمکشی مدار PWM
پتانسیومتر ۱۰ کیلواهم را طبق درس خواندن پتانسیومتر به ۵V، GND و A0 وصل کنید. پایهٔ دیجیتال ۹ را از راه مقاومت سری ۳۳۰ اهم به پایهٔ بلند LED وصل کنید و پایهٔ کوتاه LED را به GND ببرید. برای LEDهای مختلف مقدار مناسب مقاومت ممکن است فرق کند؛ مقدار جریان را از مشخصات قطعه و محدودیت پایهٔ برد بررسی کنید. LED را مستقیم و بدون مقاومت به پایه وصل نکنید. سیمها را با تغذیهٔ قطع جابهجا کنید.
کد کنترل روشنایی LED با PWM
const byte potPin = A0;
const byte ledPin = 9;
void setup() {
pinMode(ledPin, OUTPUT);
}
void loop() {
int reading = analogRead(potPin);
int duty = map(reading, 0, 1023, 0, 255);
analogWrite(ledPin, duty);
delay(10);
}
در Uno کلاسیک، analogRead معمولاً عدد ۰ تا ۱۰۲۳ برمیگرداند و analogWrite روی پایهٔ PWM مقدار ۰ تا ۲۵۵ میگیرد. تابع map این دو بازه را به هم تبدیل میکند. مقدار ۰ تقریباً همیشه خاموش و ۲۵۵ تقریباً همیشه روشن است؛ مقدارهای میانی نسبت زمان روشن بودن را تغییر میدهند. در بردهای دیگر، وضوح ADC، پایههای دارای PWM و رفتار analogWrite میتواند متفاوت باشد.
اگر روشنایی تغییر نکرد
ابتدا مطمئن شوید LED با جهت درست و مقاومت سری وصل شده است. سپس بررسی کنید واقعاً پایهٔ ۹ را استفاده میکنید و در کد شمارهٔ همان پایه آمده است. در Uno، پایههای PWM با علامت ~ مشخص میشوند؛ هر پایهٔ دیجیتال قابلیت PWM ندارد. اگر LED فقط روشن یا خاموش میشود، عدد خواندهشده از A0 را با Serial Monitor در تمرین قبلی کنترل کنید. برای بازگشت به اتصال پایهای قطعات، مقدار مقاومت و اندازهگیری با مولتیمتر را مرور کنید. مثال رسمی Fading آردوینو روش PWM را نشان میدهد.