Sommario:
- Passaggio 1: obiettivo
- Passaggio 2: assemblaggio
- Passaggio 3: WiFi ESP8266 NodeMCU ESP-12E
- Passaggio 4: codice sorgente
Video: ESP8266 Utilizzo di PWM con potenziometro: 4 passaggi
2025 Autore: John Day | [email protected]. Ultima modifica: 2025-01-10 13:47
Per chi non è avvezzo all'elettronica, PWM significa controllo della potenza. E in questo assemblaggio, mostriamo come usarlo per controllare l'intensità della luce di un LED, simile a un dimmer su una lampada, con opzioni per scurire e schiarire.
Questo meccanismo consente anche, ad esempio, di collegare un driver a un motore. Questa è solo una delle tante possibilità.
- Nota: PWM sta per Pulse-Width Modulation.
Passaggio 1: obiettivo
Il gruppo è costituito da un potenziometro, che è un resistore variabile, monitorato dall'ESP. In questo schema, sto usando lo stesso codice sorgente che userei con un Arduino. Grazie ai suoi numerosi vantaggi, utilizziamo Arduino IDE con ESP anche in altri progetti.
Nell'assieme, l'ESP è collegato a USB solo per l'alimentazione. Abbiamo anche il pin del cursore, che è il pin del potenziometro centrale, collegato alla porta AD, e il positivo e il negativo.
Al variare della tensione è possibile leggere un valore diverso nell'AD. Pertanto, ruotando il potenziometro, è possibile aumentare o diminuire la luminosità del LED.
Passaggio 2: assemblaggio
Lo schema elettrico è molto semplice: utilizzando l'ESP8266 nella configurazione del NodeMCU, alimenteremo l'USB. Quindi qui, il potenziometro deve essere collegato da un'estremità al negativo e l'altra dal positivo. Il mezzo, che è il cursore, rimane acceso in ADC 0, perché questo ESP ha solo una porta che legge i valori analogici.
Passaggio 3: WiFi ESP8266 NodeMCU ESP-12E
Passaggio 4: codice sorgente
Impostare
Nella funzione Setup definiamo il comportamento dei pin che utilizziamo, in questo caso LED e POTENZIOMETRO.
void setup(){ Serial.begin(115200) // Instrução para colocar o gpio que iremos utilizar come 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 come saída, // podemos alterar seu valor livremente para HIGH o LOW pinMode(LED_BUILTIN, OUTPUT); // LED_BUILTIN è costantemente que indica o LED do ESP8266 }
Ciclo continuo
In questa funzione la logica è leggere il valore della POT e assegnare questo valore (che è l'intensità della luminosità) nel LED.
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(potenza); // 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 o brilho conforme girarmos o potenciômetro em sentido horário. potenza = 1023 - potenza; // atribui o valor lido do potenciômetro para configurar a intensidade do brilho do LED analogWrite(LED_BUILTIN, potencia); }