İçindekiler:
2025 Yazar: John Day | [email protected]. Son düzenleme: 2025-01-13 06:58
Elektroniğe alışık olmayanlar için PWM güç kontrolü demektir. Ve bu montajda, karartma ve aydınlatma seçenekleriyle, bir lambadaki karartıcıya benzer şekilde bir LED'in ışık yoğunluğunu kontrol etmek için nasıl kullanılacağını gösteriyoruz.
Bu mekanizma, örneğin bir sürücüyü bir motora bağlamanıza da olanak tanır. Bu, birçok olasılıktan sadece biri.
- Not: PWM, Darbe Genişliği Modülasyonu anlamına gelir.
Adım 1: Hedef
Montaj, ESP tarafından izlenen, değişken bir direnç olan bir potansiyometreden oluşur. Bu şemada, Arduino ile kullanacağım kaynak kodunun aynısını kullanıyorum. Bir çok avantajından dolayı diğer projelerde de ESP ile Arduino IDE kullanıyoruz.
Montajda, ESP sadece güç kaynağı için USB'ye bağlanır. Ayrıca AD portuna bağlı merkez potansiyometrenin pimi olan imleç pimi ve pozitif ve negatif var.
Voltaj değiştikçe, AD'de farklı bir değer okumak mümkündür. Bu nedenle potansiyometreyi çevirerek LED'in parlaklığını artırmak veya azaltmak mümkündür.
2. Adım: Montaj
Elektrik şeması çok basittir: NodeMCU'nun konfigürasyonunda ESP8266'yı kullanarak USB'ye güç vereceğiz. Yani burada, potansiyometre bir uçtan negatife, diğer uçtan da pozitife bağlanmalıdır. İmleç olan ortam, ADC 0'da kalır, çünkü bu ESP'nin yalnızca analog değerleri okuyan bir bağlantı noktası vardır.
3. Adım: WiFi ESP8266 NodeMCU ESP-12E
Adım 4: Kaynak Kodu
Kurmak
Setup fonksiyonunda kullandığımız pinlerin davranışını tanımlıyoruz, bu durumda LED ve POTANSİYOMETRE.
void setup(){ Serial.begin(115200) // Instrução para colocar o gpio que iremos como entrada, // podemos fazer ve leitura nesse pino pinMode(A0, INPUT); // A0 é uma sabit que indica o pino que ligamos nosso potenciômetro // Instrução para colocar o gpio que iremos como saída, // podemos alterar seu valor livremente para YÜKSEK veya DÜŞÜK pinMode(LED_BUILTIN);, // LED_BUILTIN é uma sabite que indica o LED yapmak ESP8266 }
Döngü
Bu fonksiyonda mantık, POT değerini okumak ve bu değeri (parlaklığın yoğunluğu olan) LED'e atamak.
void loop(){ // faz a leitura do pino A0 (nosso caso, o potenciômetro, retorna um valor giriş 0 ve 1023) int potencia = analogRead(A0); Serial.println(potencia); // como o LED yok 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 uyumlu girarmos o potenciômetro em sentido horário. potensiya = 1023 - potensiya; // LED analogWrite(LED_BUILTIN, potencia); }