respiration.ino

ESP8266 (módulo ESP-12E) · Archivo : respiration.ino · Lenguaje : Arduino · Uso : Respiration LED avec le PWM logiciel de l'ESP8266

El ESP8266 tiene un solo canal PWM por hardware, pero analogWrite() lo enruta a cualquier pin a ~44 kHz. El sketch reajusta frecuencia y rango e invierte el ciclo para el LED activo-bajo.

Hardware necesario

Un módulo ESP-12E (ESP8266EX, Wi-Fi 2,4 GHz) montado en una placa NodeMCU / Wemos D1 mini, alimentada por micro-USB. 1 LED + resistencia de 330 Ω (o el LED integrado).

Cableado

LED en D4 por 330 Ω a 3,3 V (activo-bajo) o a GND con un transistor pequeño. Solo un pin PWM a la vez en el 8266.

Funcionamiento

analogWriteFreq/analogWriteRange reprograman el PWM global; el bucle rampa el ciclo 0-255. La inversión 255-nivel compensa la electrónica del LED integrado. En el Arduino IDE, instale el paquete « esp8266 », elija « NodeMCU 1.0 (ESP-12E Module) » y suba (mantenga GPIO0 a LOW si falla). El ADC A0 lee 0-1 V (divisor NodeMCU: 0-3,3 V).

Para ir más lejos

Controle un MOSFET pequeño para regular la luminosidad de una lámpara, o sincronice dos NodeMCU por radio.

respiration.ino

// Respiration LED — analogWrite() de l'ESP8266 (PWM 1 canal, ~44 kHz).
const int LED = 2;      // D4 (actif-bas : duty inverse)

int niveau = 0;
int sens = 3;

void setup() {
  pinMode(LED, OUTPUT);
  analogWriteFreq(1000);        // 1 kHz : evite le scintillement
  analogWriteRange(255);
  Serial.begin(115200);
}

void loop() {
  niveau += sens;
  if (niveau >= 255 || niveau <= 0) sens = -sens;
  analogWrite(LED, 255 - niveau);   // inversion actif-bas
  delay(10);
}

← Volver a la ficha