#include <stdint.h>
#include <Arduino.h>
#include "driver/ledc.h"
void configurarPWM(void); // Declaración anticipada de la función configurarPWM
//DEFINICIÓN DE BOTONES
//const int pulsador_b3 = 14; // Pin 14
//const int pulsador_b4 = 4; // Pin 4
// Paso 1: selección de parámetros de la señal PWM
#define pwmChannel0 0 // 16 canales 0-15
#define pwmChannel1 1 // 16 canales 0-15
#define pwmChannel2 2 // 16 canales 0-15
#define pwmChannel3 3 // 16 canales 0-15
#define freqPWM0 1000 // Frecuencia en Hz
#define freqPWM1 1000 // Frecuencia en Hz
#define freqPWM2 1000 // Frecuencia en Hz
#define freqPWM3 1000 // Frecuencia en Hz
#define resolution 8 // 1-16 bits de resolución
const int Motor1A=2;
const int Motor1B=23;
const int Motor2C=18;
const int Motor2D=5;
#define pinPWM 15 // GPIO 2 para tener la salida del PWM
//VARIABLES DEL CONTADOR DE BOTÓN QUE SELECCIONA EL COLOR DE LED
int contador = 0;
//VARIABLE DEL CONTADOR PARA EL BRILLO DE LAS LEDS
//int dutycycle = 0;
void setup() {
// put your setup code here, to run once:
Serial.begin(115200);
Serial.println("Hello, ESP32!");
configurarPWM();
}
void loop() {
for (int NumMotor=0; NumMotor<=3; NumMotor++){ // va cambiando de CHANEL o sea de motor al puente H
for (int dutyCycle=0; dutyCycle<=255; dutyCycle++){
ledcWrite(NumMotor, dutyCycle); // ledChannel, dutyCycle
delay(15);
}
Serial.println("5 segundos de espera");
delay(5000);
for (int dutyCycle=255; dutyCycle>=0; dutyCycle--){
ledcWrite(NumMotor, dutyCycle); // ledChannel, dutyCycle
delay(15);
}
Serial.println("OTROS 5 segundos de espera");
delay(5000);
}
}
void configurarPWM(void)
{
// Paso 1: Configurar el módulo PWM
ledcSetup(pwmChannel0, freqPWM0, resolution);
ledcSetup(pwmChannel1, freqPWM1, resolution);
ledcSetup(pwmChannel2, freqPWM2, resolution);
ledcSetup(pwmChannel3, freqPWM3, resolution);
// Paso 2: seleccionar en que GPIO tendremos nuestra señal PWM
ledcAttachPin(Motor1A, pwmChannel0);
ledcAttachPin(Motor1B, pwmChannel1);
ledcAttachPin(Motor2C, pwmChannel2);
ledcAttachPin(Motor2D, pwmChannel3);
}