//copyright Adrian.oech
// Pin-Zuweisungen
#define LED_PIN 25 // Pin für die LED
const float pi = 3.14159265;
const int brightnessMax = 255; // Maximale Helligkeit
void setup() {
// LED-Pin als Ausgang setzen
pinMode(LED_PIN, OUTPUT);
// Startnachricht
Serial.begin(115200);
Serial.println("LED Sinus-Blinken gestartet (ohne PWM-Funktionen)!");
}
void loop() {
// Sinus-Animation für die LED-Helligkeit
for (int angle = 0; angle <= 360; angle++) {
// Berechne den Sinuswert (zwischen -1 und 1) und skaliere ihn auf 0-255
float brightness = (sin(angle * pi / 180) + 1) / 2 * brightnessMax;
// Simuliere PWM durch schnelles Ein- und Ausschalten der LED
analogWriteSim(LED_PIN, (int)brightness);
// Ausgabe im seriellen Monitor
Serial.print("Winkel: ");
Serial.print(angle);
Serial.print(" -> Helligkeit: ");
Serial.println((int)brightness);
// Kurze Verzögerung für den glatten Übergang
delay(10);
}
}
// Funktion zur Simulation von analogWrite ohne ESP32-spezifische Funktionen
void analogWriteSim(int pin, int value) {
int dutyCycle = map(value, 0, 255, 0, 1000); // Skaliere auf eine Periode von 1000 µs
int offTime = 1000 - dutyCycle;
// LED für "on"-Zeit einschalten
digitalWrite(pin, HIGH);
delayMicroseconds(dutyCycle);
// LED für "off"-Zeit ausschalten
digitalWrite(pin, LOW);
delayMicroseconds(offTime);
}
esp:0
esp:2
esp:4
esp:5
esp:12
esp:13
esp:14
esp:15
esp:16
esp:17
esp:18
esp:19
esp:21
esp:22
esp:23
esp:25
esp:26
esp:27
esp:32
esp:33
esp:34
esp:35
esp:3V3
esp:EN
esp:VP
esp:VN
esp:GND.1
esp:D2
esp:D3
esp:CMD
esp:5V
esp:GND.2
esp:TX
esp:RX
esp:GND.3
esp:D1
esp:D0
esp:CLK
led1:A
led1:C
r1:1
r1:2