Ciao!
in questo post vedremo come variare frequenza e risoluzione del segnale pwm generato da una scheda dotata di chip ESP32.
Se non sai cos'è il PWM ti consiglio di leggere prima questo post.
Il modulo ESP32 ha una periferica chiamata "ledc" (LED Control) pensata per pilotare led tramite il PWM.
Per maggiori informazioni vi rimando alla reference riguardanti la periferica ledc
Questo è tutto, per qualsiasi domanda lascia pure un commento!
Seguimi sulle mie pagine per rimanere sempre aggiornato sui nuovi post!
in questo post vedremo come variare frequenza e risoluzione del segnale pwm generato da una scheda dotata di chip ESP32.
Se non sai cos'è il PWM ti consiglio di leggere prima questo post.
"ledc" permette di modificare sia la frequenza che la risoluzione del segnale PWM generato,
ad esempio è possibile impostare una frequenza di 5KHZ con una risoluzione massima di 13bit (quindi 8192 possibili livelli di intensità del led differenti).
Ecco un foglio di calcolo utile per calcolare la frequenza massima in base alla risoluzione di cui abbiamo bisogno.
Qui sotto invece trovate uno sketch di esempio nel quale vengono impostate frequenza e risoluzione del segnale PWM, viene poi pilotato un led collegato al pin 16 con un effetto dissolvenza.
- // pin da cui uscirà il segnale PWM
- // 16 corrisponde al pin GPIO16
- #define ledPin 16
- // settaggi proprietà pwm
- #define freq 312500
- #define ledChannel 0
- #define resolution 8
- void setup() {
- // funzione per configurare le proprietà del PWM
- ledcSetup(ledChannel, freq, resolution);
- // collega il canale al pin fisico da pilotare
- ledcAttachPin(ledPin, ledChannel);
- }
- void loop(){
- // incrementa il duty cicle dallo 0 al 100%
- for(int dutyCycle = 0; dutyCycle <= 255; dutyCycle++){
- ledcWrite(ledChannel, dutyCycle);
- delay(15);
- }
- // decrementa il duty cicle dal 100% a 0
- for(int dutyCycle = 255; dutyCycle >= 0; dutyCycle--){
- ledcWrite(ledChannel, dutyCycle);
- delay(15);
- }
- }
Per maggiori informazioni vi rimando alla reference riguardanti la periferica ledc
Questo è tutto, per qualsiasi domanda lascia pure un commento!
Seguimi sulle mie pagine per rimanere sempre aggiornato sui nuovi post!
Nessun commento:
Posta un commento
Lascia un commento qui sotto, ti risponderò il prima possibile!