Mündəricat:
2025 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2025-01-13 06:56
Elektronikaya öyrəşməyənlər üçün PWM güc nəzarəti deməkdir. Və bu məclisdə, qaranlıq və ağartma variantları olan bir lampanın dimmerinə bənzər bir LED -in işıq intensivliyini idarə etmək üçün necə istifadə edəcəyimizi göstəririk.
Bu mexanizm, məsələn, sürücünü motora bağlamağa da imkan verir. Bu çox ehtimallardan yalnız biridir.
- Qeyd: PWM Pulse-Width Modulation deməkdir.
Addım 1: Məqsəd
Quraşdırma, ESP tərəfindən izlənilən dəyişkən bir rezistor olan potensiometrdən ibarətdir. Bu sxemdə bir Arduino ilə istifadə edəcəyim eyni mənbə kodunu istifadə edirəm. Bir çox üstünlükləri sayəsində ESP ilə Arduino IDE -ni digər layihələrdə də istifadə edirik.
Montajda ESP yalnız enerji təchizatı üçün USB -yə qoşulur. AD portuna bağlı olan mərkəzi potensiometrin pimi olan və müsbət və mənfi olan imleç pinimiz də var.
Gərginlik dəyişdiyindən AD -də fərqli bir dəyər oxumaq mümkündür. Buna görə də potensiometrini çevirərək LED -in parlaqlığını artırmaq və ya azaltmaq mümkündür.
Addım 2: Quraşdırma
Elektrik sxemi çox sadədir: NodeMCU konfiqurasiyasında ESP8266 -dan istifadə edərək USB -yə güc verəcəyik. Beləliklə, burada potensiometr bir ucundan neqativə, digəri isə pozitivdən bağlanmalıdır. Kursor olan mühit ADC 0 -da qalır, çünki bu ESP yalnız analoq dəyərləri oxuyan bir porta malikdir.
Addım 3: WiFi ESP8266 NodeMCU ESP-12E
Addım 4: Mənbə Kodu
Qurmaq
Quraşdırma funksiyasında istifadə etdiyimiz sancaqların davranışını, bu halda LED və POTANSİYOMETRİ təyin edirik.
void setup () {Serial.begin (115200) // Göstəricilər və ya proqramlar, // pinMode (A0, GİRİŞ); // A0 é uma sabite que indica o pino que ligamos nosso potenciômetro // Ətraflı məlumat əldə etmək üçün aşağı qiymətli modullar, yüksək qiymət və ya aşağı pin modu (LED_BUILTIN, ÇIXIŞ); // LED_BUILTIN və ya ESP8266 üçün LED göstərilir
Döngə
Bu funksiyada məntiq POT dəyərini oxumaq və bu dəyəri (parlaqlığın intensivliyi) LED -ə təyin etməkdir.
void loop () {// faz a leitura do pino A0 (nosso caso, o potenciômetro, retorna um valor entre 0 e 1023) int potencia = analogRead (A0); Serial.println (potensiya); // LED yoxdur ESP8266 trabalha de maneira contrária, ou seja, quanto maior o valor atribuído, və ya bir intensivlik. Şəxsi əlaqələr qurmaq və ya istifadə etmək üçün ən yaxşı seçimdir. potencia = 1023 - potensiya; // LED analogWrite (LED_BUILTIN, potensiya) ilə əlaqəli bütün parametrləri təyin edin; }