//Lazo abierto - Base
//Probar con 12V de fuente - Puente H da 11V
const int encoderPin1 = 25; //Encoder
int cont = 0; //pulsos del encoder
const int pwm = 14; //control PWM del motor
int vueltas = 0;
//tiempo
unsigned long previo = 0;
int intervalo = 1000;
//revoluciones
float rpm = 0;
void setup()
{
Serial.begin(115200);
pinMode(encoderPin1, INPUT);
pinMode(pwm, OUTPUT);
attachInterrupt(digitalPinToInterrupt(encoderPin1), Encoder, RISING);
analogWrite(pwm, 255);
//------------------------------------------------------------------------------
}
void loop()
{
unsigned long actual = millis();
if ((actual - previo) >= intervalo) {
Serial.printf("Numero de pulsos por segundo: %d\n", cont);
rpm = (cont * 60) / 234;
Serial.printf("Revoluciones por minuto: %.2f\n", rpm);
cont = 0;
previo = actual;
}
}
void Encoder()
{
cont++;
}