* Add Config * Add Cache and remove pre-commit action * [pre-commit.ci lite] apply automatic fixes * Remove freeze * Fix * Update action * Use latest stable Python 3 version * Improve caching * Improve cache tag * Improve bot message * fix(typos): Fix typos * fix(typos): Fix more typos * refactor(udp_server): Convert script from Python 2 to 3 * Fix whitespace * Clang-format fixes * Prettier fixes * Black formatting * Manual fixes * Line endings * Fix flake and make Vale manual * Fix flake and reformat --------- Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com> Co-authored-by: Rodrigo Garcia <rodrigo.garcia@espressif.com>
53 lines
1.4 KiB
C++
53 lines
1.4 KiB
C++
/*
|
|
LEDC Software Fade
|
|
|
|
This example shows how to software fade LED
|
|
using the ledcWrite function.
|
|
|
|
Code adapted from original Arduino Fade example:
|
|
https://www.arduino.cc/en/Tutorial/Fade
|
|
|
|
This example code is in the public domain.
|
|
*/
|
|
|
|
// use 12 bit precision for LEDC timer
|
|
#define LEDC_TIMER_12_BIT 12
|
|
|
|
// use 5000 Hz as a LEDC base frequency
|
|
#define LEDC_BASE_FREQ 5000
|
|
|
|
// fade LED PIN (replace with LED_BUILTIN constant for built-in LED)
|
|
#define LED_PIN 5
|
|
|
|
int brightness = 0; // how bright the LED is
|
|
int fadeAmount = 5; // how many points to fade the LED by
|
|
|
|
// Arduino like analogWrite
|
|
// value has to be between 0 and valueMax
|
|
void ledcAnalogWrite(uint8_t pin, uint32_t value, uint32_t valueMax = 255) {
|
|
// calculate duty, 4095 from 2 ^ 12 - 1
|
|
uint32_t duty = (4095 / valueMax) * min(value, valueMax);
|
|
|
|
// write duty to LEDC
|
|
ledcWrite(pin, duty);
|
|
}
|
|
|
|
void setup() {
|
|
// Setup timer and attach timer to a led pin
|
|
ledcAttach(LED_PIN, LEDC_BASE_FREQ, LEDC_TIMER_12_BIT);
|
|
}
|
|
|
|
void loop() {
|
|
// set the brightness on LEDC channel 0
|
|
ledcAnalogWrite(LED_PIN, brightness);
|
|
|
|
// change the brightness for next time through the loop:
|
|
brightness = brightness + fadeAmount;
|
|
|
|
// reverse the direction of the fading at the ends of the fade:
|
|
if (brightness <= 0 || brightness >= 255) {
|
|
fadeAmount = -fadeAmount;
|
|
}
|
|
// wait for 30 milliseconds to see the dimming effect
|
|
delay(30);
|
|
}
|