در این آموزش، یاد خواهیم گرفت که چگونه ولتاژ DC را از یک پتانسیومتر با استفاده از ماجیول ESP32 از SunFounder اندازهگیری کنیم. این پروژه همچنین نشان خواهد داد که چگونه یک LED را بر اساس موقعیت پتانسیومتر کمرنگ کنیم. وقتی پتانسیومتر را خلاف عقربههای ساعت بچرخانید، میزان ولتاژ کاهش مییابد و LED به تناسب کمرنگ میشود. این تمرین درک عملی از استفاده از مبدل آنالوگ به دیجیتال (ADC) در ESP32 را فراهم میکند.
پتانسیومترپتانسیومتر یا رئوستا متغیر
ESP32 یک میکروکنترلر قدرتمند است که با قابلیتهای داخلی وایفای و بلوتوث مجهز شده و آن را برای پروژههای اینترنت اشیا ایدهآل میسازد. در این آموزش، ما از ویژگیهای ورودی آنالوگ آن برای خواندن سطح ولتاژ از یک پتانسیومتر استفاده خواهیم کرد و همچنین روشنایی یک LED را بر اساس این خوانشها کنترل میکنیم. نتیجه یک LED پاسخگو خواهد بود که شدت نور آن به محض تنظیم پتانسیومتر متغیر میشود.
توضیحات سختافزار
برای این پروژه، ما به اجزای زیر نیاز خواهیم داشت:
ماجیول ESP32:میکروکنترلر اصلی که ولتاژ پتانسیومتر را خوانده و LED را کنترل میکند.
پتانسیومتر:یک مقاومت متغیر که برای تنظیم ولتاژ استفاده میشود. این دستگاه دارای سه پایه است: دو پایه برای مقاومتهای ثابت و یک پایه که متغیر است.
LED:یک دیود ساطعکننده نور که براساس موقعیت پتانسیومتر روشنایی آن کنترل خواهد شد.
مقاومت:یک مقاومتی ۲۲۰ اهمی برای محدود کردن جریان از طریق LED.
پتانسیومتر با تغییر مقاومت بین پایههایش کار میکند و به آن اجازه میدهد تا ولتاژی تولید کند که ESP32 میتواند از طریق ADC خود آن را بخواند. روشنایی LED با استفاده از مدولاسیون عرض پالس (PWM) کنترل میشود تا قدرت ارائه شده به آن بر اساس خوانش آنالوگ تنظیم شود.
جزئیات برگه اطلاعات
دستورات سیمکشی
ESP32-23-fading-LED_pot-wiring
برای سیمکشی اجزا، ابتدا با اتصال پتانسیومتر شروع کنید. یکی از پایههای خارجی آن را به منبع تغذیه 3.3 ولت روی ESP32 متصل کنید. پایه خارجی دیگر را به زمین (GND) متصل کنید. پایه وسط پتانسیومتر به پایه متصل خواهد شد.35در ESP32، که برای خواندن ولتاژ آنالوگ استفاده میشود.
سپس، برای LED، پایه بلندتر (آند) را به پایه متصل کنید26این ال ای دی را از طریق یک مقاومت 220 اهمی به ESP32 متصل کنید. پایه کوتاهتر (کاتد) ال ای دی را به زمین متصل کنید. اطمینان حاصل کنید که همه اتصالات محکم هستند و جهت ال ای دی را دوباره چک کنید تا از آسیب جلوگیری کنید.
نمونههای شِفر (کود) و راهنمایی
شِفر (کود) زیر نحوه راهاندازی ESP32 برای خواندن پتانسیومتر و کنترل LED را نشان میدهد:
const int potPin = 35; // Potentiometer connected to
const int ledPin = 26; // LED connected to
// PWM settings
const int freq = 5000; // PWM frequency
const int resolution = 12; // PWM resolution (bits)
در این بخشی، پایههای پتانسیومتر و LED تعریف میشوند. فرکانس PWM و دقت نیز تنظیم میشود که سطح روشنایی LED را تعیین خواهد کرد.
در تابع راهاندازی، ما ارتباط سریال را راهاندازی کرده و تنظیمات PWM را برای LED پیکربندی میکنیم. این راهاندازی یک بار زمانی که برنامه شروع میشود اجرا میشود.
در نهایت، تابع حلقه به طور مداوم مقدار پتانسیومتر را میخواند و روشنایی LED را تنظیم میکند:
void loop() {
int potValue = analogRead(potPin); // read the value of the potentiometer
uint32_t voltage_mV = analogReadMilliVolts(potPin); // Read the voltage in millivolts
ledcWrite(ledPin, potValue);
// Serial output omitted for brevity
}
در حلقه، ما مقدار آنالوگ را از پتانسیومتر میخوانیم و آن را برای کنترل روشنایی LED ترجمه میکنیم. خروجی سریال مقدار پتانسیومتر و ولتاژ را نشان میدهد و به تأیید اندازهگیریها کمک میکند.
نمایشگاه / چه انتظاری باید داشت
زمانی که مدار به درستی راهاندازی شده و شِفر (کود) بارگذاری شده است، چرخاندن پتانسیومتر باید منجر به تغییر متناسبی در خوانش ولتاژ نمایش داده شده در مانیتور سری شود. LED باید به آرامی با تنظیم پتانسیومتر روشن و خاموش شود. اگر LED به طور مورد انتظار پاسخ ندهد، اتصالات سیمکشی را بررسی کنید و مطمئن شوید که پتانسیومتر به درستی کار میکند (در ویدیو در ۱۱:۳۰).
زمانبندی ویدئو
۰۰:۰۰ شروع
۲:۰۲ پات چیست
۴:۱۵ اندازهگیری مقاومت پتانسیومتر
صفحه مستندات 6:59
8:56 توضیحاتی درباره سیمکشی
شِفر (کود) آردوینو شرح داده شده در ساعت ۱۲:۲۸
۱۵:۵۸ انتخاب برد ESP32 و پورت COM در Arduino IDE
17:40 نمایش خواندن مقدار پتانسیومتر با ESP32
تصاویر
Potentiometer or variable resistor
ESP32-23-fading-LED_pot-schematic
ESP32-23-fading-LED_pot-wiring
potentiometer
Potentiometer or variable resistor
ESP32-23-fading-LED_pot-schematic
ESP32-23-fading-LED_pot-wiring
potentiometer
822-ESP32 Tutorial 23/55- Arduino code for fading LED