2025 Autor: John Day | [email protected]. Zadnja izmjena: 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 svjetlosti LED diode, slično prigušivaču na svjetiljci, s opcijama zatamnjivanja i posvjetljivanja.
Ovaj mehanizam vam također omogućava, na primjer, da spojite upravljački program 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. Imamo i pin kursora, koji je pin središnjeg potenciometra, povezan u AD port, i pozitivan i negativan.
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) // Instrukcije za kolokar o gpio -u koje iremos koristi kao entrada, // podešavamo fazer i nemamo pino pinMode (A0, INPUT); // A0 je konstanta koja pokazuje indikator o pino que ligamos nosso potenciômetro // Instrução para colocar o gpio que iremos koristi como saída, // podešavamo alterar seu valor livremente za HIGH ou LOW pinMode (LED_BUILTIN, OUTPUT); // LED_BUILTIN je konstanta koja pokazuje indikatore LED do ESP8266}
Petlja
U ovoj funkciji logika je očitavanje POT vrijednosti i dodjeljivanje ove vrijednosti (što je intenzitet svjetline) LED diodi.
void loop () {// faz a leitura do pino A0 (no no caso caso, o potenciômetro, retorna um valor entre 0 e 1023) int potencia = analogRead (A0); Serial.println (potencia); // kao LED dioda nema ESP8266 trabalha de maneira contrária, ou seja, kvanto maior ili valor atribuído, menor intenzitet. Faremos o cálculo para aumentarmos o brilho conforme girarmos o potenciômetro em sentido horário. potencia = 1023 - potencia; // atributi o hrabrosti do potenciometra parametra konfiguratora i intenziteta do brzine do LED analogWrite (LED_BUILTIN, potencija); }