2025 Autor: John Day | [email protected]. Zadnja promjena: 2025-01-13 06:57
Za one koji nisu navikli na elektroniku, PWM znači kontrolu snage. I u ovom sklopu pokazujemo kako ga koristiti za kontrolu intenziteta svjetla LED diode, slično prigušivaču na svjetiljci, s mogućnostima zatamnjivanja i posvjetljivanja.
Ovaj mehanizam također vam omogućuje, na primjer, spajanje upravljačkog programa na motor. Ovo je samo jedna od mnogih mogućnosti.
- Napomena: PWM označava Pulse-Width Modulation.
Korak 1: Cilj
Sklop se sastoji od potenciometra, koji je promjenjivi otpornik, nadzire ESP. U ovoj shemi koristim isti izvorni kod koji bih koristio s Arduinom. Zbog mnogih prednosti, Arduino IDE koristimo s ESP -om i u drugim projektima.
U sklopu, ESP je spojen na USB samo za napajanje. Također imamo pin kursora, koji je pin središnjeg potenciometra, spojen u AD port, te pozitivni i negativni.
Kako napon varira, moguće je očitati različitu vrijednost u AD -u. Stoga je okretanjem potenciometra moguće povećati ili smanjiti svjetlinu LED diode.
Korak 2: Montaža
Električna shema je vrlo jednostavna: pomoću ESP8266 u konfiguraciji NodeMCU -a napajat ćemo USB. Dakle, ovdje potenciometar mora biti povezan s jednog kraja na negativni, a drugi s pozitivnog. Medij, koji je kursor, ostaje uključen u ADC 0, jer ovaj ESP ima samo port koji čita analogne vrijednosti.
Korak 3: WiFi ESP8266 NodeMCU ESP-12E
Korak 4: Izvorni kod
Postaviti
U funkciji postavljanja definiramo ponašanje pinova koje koristimo, u ovom slučaju LED i POTENTIOMETAR.
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 é uma constante que indica o LED do ESP8266}
Petlja
U ovoj funkciji logika je očitati vrijednost POT i dodijeliti tu vrijednost (što je intenzitet svjetline) LED diodi.
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); Serijski.println (potencia); // como o LED no ESP8266 trabalha de maneira contrária, ou seja, quanto maior o valor atribuído, menor a intenzitet. Faremos o cálculo para aumentarmos o brilho conforme girarmos o potenciômetro em sentido horário. potencia = 1023 - potencia; // atribui o hrabrosti do potenciômetro para konfiguratora i intenziteta do brilho do LED analogWrite (LED_BUILTIN, potencia); }