Turinys:
2025 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2025-01-13 06:57
Tiems, kurie nėra pripratę prie elektronikos, PWM reiškia galios valdymą. Šiame rinkinyje mes parodome, kaip juo valdyti šviesos diodo šviesos intensyvumą, panašų į lempos pritemdiklį, su galimybėmis patamsinti ir pašviesinti.
Šis mechanizmas taip pat leidžia, pavyzdžiui, prijungti vairuotoją prie variklio. Tai tik viena iš daugelio galimybių.
- Pastaba: PWM reiškia impulso pločio moduliaciją.
1 žingsnis: tikslas
Surinkimą sudaro potenciometras, kuris yra kintamas rezistorius, stebimas ESP. Šioje schemoje aš naudoju tą patį šaltinio kodą, kurį naudočiau su „Arduino“. Dėl daugybės privalumų mes naudojame „Arduino IDE“su ESP ir kituose projektuose.
Surinkime ESP yra prijungtas prie USB tik maitinimo šaltiniui. Mes taip pat turime žymeklio kaištį, kuris yra centrinio potenciometro kaištis, prijungtas prie AD prievado, ir teigiamą bei neigiamą.
Kadangi įtampa kinta, AD galima nuskaityti kitokią vertę. Todėl pasukus potenciometrą galima padidinti arba sumažinti šviesos diodo ryškumą.
2 žingsnis: Surinkimas
Elektros schema yra labai paprasta: naudojant ESP8266 „NodeMCU“konfigūracijoje, mes maitinsime USB. Taigi čia potenciometras turi būti prijungtas iš vieno galo prie neigiamo, o kitas - prie teigiamo. Laikmena, kuri yra žymeklis, lieka įjungta ADC 0, nes šis ESP turi tik prievadą, kuris skaito analogines vertes.
3 veiksmas: „WiFi ESP8266 NodeMCU ESP-12E“
4 žingsnis: šaltinio kodas
Sąranka
Sąrankos funkcijoje mes apibrėžiame naudojamų kaiščių, šiuo atveju LED ir POTENTIOMETER, elgseną.
void setup () {Serial.begin (115200) // Instrução para colocar o gpio que iremos utilizar como entrada, // podemos fazer a leitura nesse pino pinMode (A0, INPUT); // A0 é uma constante que indica o pino que ligamos nosso potenciômetro // Instrução para colocar o gpio que iremos utilizar como saída, // podemos alterar seu valor livremente para HIGH ou LOW pinMode (LED_BUILTIN, OUTPUT); // LED_BUILTIN ir uma Constante que indica arba LED do ESP8266}
Kilpa
Šioje funkcijoje logika yra nuskaityti POT vertę ir priskirti šią vertę (kuri yra ryškumo intensyvumas) šviesos diode.
void loop () {// faz a leitura do pino A0 (no nosso caso, o potenciômetro, retorna um valor entre 0 e 1023) int potencia = analogRead (A0); Serial.println (potencia); // como o LED no ESP8266 trabalha de maneira contrária, ou seja, quanto maior o valor atribuído, menor a intensidade. Faremos o cálculo para aumentarmos arba brilho conforme girarmos arba potenciali metro em sentido horário. potencia = 1023 - potencia; // atribui o valor lido do potenômetro para configurar a intensidade do brilho do LED analogWrite (LED_BUILTIN, potencia); }