Added LEDC Software Fade example (#202)
* Added LEDC Fade exmaple * Renamed LEDCFade example to LEDCSoftwareFade Added valueMax parameter for ledcAnalogWrite * Remove usage of LED_BUILTIN constant to solve CI errors
This commit is contained in:
parent
8c1e7018c9
commit
a36ef2aea8
@ -0,0 +1,57 @@
|
||||
/*
|
||||
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 first channel of 16 channels (started from zero)
|
||||
#define LEDC_CHANNEL_0 0
|
||||
|
||||
// use 13 bit precission for LEDC timer
|
||||
#define LEDC_TIMER_13_BIT 13
|
||||
|
||||
// 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 channel, uint32_t value, uint32_t valueMax = 255) {
|
||||
// calculate duty
|
||||
uint32_t duty = (LEDC_BASE_FREQ / valueMax) * min(value, valueMax);
|
||||
|
||||
// write duty to LEDC
|
||||
ledcWrite(channel, duty);
|
||||
}
|
||||
|
||||
void setup() {
|
||||
// Setup timer and attach timer to a led pin
|
||||
ledcSetup(LEDC_CHANNEL_0, LEDC_BASE_FREQ, LEDC_TIMER_13_BIT);
|
||||
ledcAttachPin(LED_PIN, LEDC_CHANNEL_0);
|
||||
}
|
||||
|
||||
void loop() {
|
||||
// set the brightness on LEDC channel 0
|
||||
ledcAnalogWrite(LEDC_CHANNEL_0, 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);
|
||||
}
|
Loading…
Reference in New Issue
Block a user