Arduino Guide
PWM is used to generate analog signals to drive servos or buzzers
Function:
Sets up a PWM channel, frequency, and resolution.
Syntax:
void ledcSetup(uint8_t channel, double freq, uint8_t resolution_bits)
Function:
Binds the LEDC channel to a specified IO port for output.
Syntax:
void ledcAttachPin(uint8_t pin, uint8_t channel)
Example:
#include <M5StickC.h>
void setup() {
M5.begin();
ledcSetup(8, 1,10);
// Set the frequency of LEDC channel 8 to 1 and the resolution to
// 10 bits, that is, the duty cycle can be selected from 0 to
// 1023. Set LEDC channel 8 frequency to 1, resolution to 10 bits, meaning the duty cycle can range from 0 to 1023.
ledcAttachPin(32,8);
// Set LEDC channel 8 to output on IO32. Set LEDC channel 8 for output on IO32.
}
void loop() {}
Function:
Writes a duty cycle percentage to a channel.
Syntax:
void ledcWrite(uint8_t channel, uint32_t duty)
Example:
#include <M5StickC.h>
int freq = 1800;
int channel = 0;
int resolution_bits = 8;
int buzzer = 2;
void setup() {
M5.begin();
ledcSetup(channel, freq, resolution_bits);
ledcAttachPin(buzzer, channel);
}
void loop() {
ledcWrite(channel, 128);
delay(1000);
ledcWrite(channel, 0);
delay(1000);
}