في هذا الدرس، سنتعلم كيفية قياس جهد التيار المستمر من مقاومة متغيرة باستخدام وحدة ESP32 من شركة SunFounder. سيظهر المشروع أيضًا كيفية تخفيف إضاءة LED بناءً على موضع المقاومة. عند تدوير المقاومة المتغيرة في اتجاه عقارب الساعة، ينخفض قراءة الجهد وتخف إضاءة LED وفقًا لذلك. سيمنحك هذا التمرين فهمًا عمليًا لاستخدام المحول التناظري إلى الرقمي (ADC) في ESP32.
مقياس الجهد الكهربائيمقاوم متغير أو بوزن متغير
ESP32 هو متحكم دقيق قوي مزود بقدرات واي فاي وبلوتوث مدمجة، مما يجعله مثاليًا لمشاريع إنترنت الأشياء. في هذا الدرس، سنستخدم ميزات الإدخال التناظري الخاصة به لقراءة مستوى الجهد من مقاومة متغيرة، بينما نتحكم أيضًا في سطوع مصباح LED بناءً على هذه القراءات. ستكون النتيجة مصباح LED تفاعلي يغير شدة إضاءته حسب ضبط المقاومة المتغيرة.
شرح العتاد
لهذا المشروع، سنحتاج إلى المكونات التالية:
وحدة ESP32:الميكروكنترولر الرئيسي الذي سيقرأ جهد المقاومة المتغيرة ويتحكم في LED.
مُتغيّر الجهدمقاومة متغيرة تُستخدم لضبط الجهد. تحتوي على ثلاثة أطراف: اثنان لمقاومات ثابتة وواحد يتغير.
ليددايود باعث للضوء سيتم التحكم في سطوعه بناءً على موضع المقاوم المتغير.
مقاوممقاومة بقيمة 220 أوم للحد من التيار المار من خلال LED.
يعمل المؤشر المتغير من خلال تغيير المقاومة بين دبابيسه، مما يسمح له بإنشاء جهد يمكن لـ ESP32 قراءته عبر محول التناظرية إلى الرقمية (ADC). يتم التحكم في سطوع LED باستخدام تعديل عرض النبضة (PWM) لضبط الطاقة المرسلة إليه بناءً على القراءة التناظرية.
تفاصيل ورقة البيانات
تعليمات التوصيل
ESP32-23-fading-LED_pot-wiring
لتوصيل المكونات، ابدأ بتوصيل المقاومة المتغيرة. قم بتوصيل أحد أطرافها الخارجية بإمداد الطاقة 3.3 فولت على ESP32. قم بتوصيل الطرف الخارجي الآخر بالأرض (GND). سيتم توصيل الطرف الأوسط من المقاومة المتغيرة بالدبوس35على ESP32، الذي يُستخدم لقراءة الفولتية التناظرية.
التالي، بالنسبة لمصباح LED، قم بتوصيل الدبوس الأطول (الأنود) بالدبوس26على لوحة ESP32 من خلال مقاومة 220 أوم. قم بتوصيل الدبوس الأقصر (الكاثود) لمصباح LED بالأرض. تأكد من أن جميع الاتصالات آمنة وتحقق مرة أخرى من اتجاه LED لتجنب التلف.
أمثلة الكود وإرشادات الاستخدام
يوضح الكود التالي كيفية إعداد 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)
في هذا المقتطف، نقوم بتعريف الدبابيس للموهب والكاشف الضوئي. كما يتم تعيين تردد 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 كما هو متوقع، تحقق من اتصالات الأسلاك وتأكد من أن المتحكم يعمل بشكل صحيح (في الفيديو عند 11:30).
طوابع زمنية للفيديو
00:00 بداية
2:02 ما هو الحاوية
:15 قياس مقاومة البوت
صفحة التوثيق 6:59
٨:٥٦ شرح الأسلاك
12:28 شرح كود أردوينو
15:58 اختيار لوحة 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