const int motor = 14;
int PinA = 32;
int RPMmotor = 0;
unsigned int Pulsos_contador = 0;
unsigned long millisPulsos_passado = millis();
void contarMudancaPinA() {
Pulsos_contador++;
}
void setup() {
Serial.begin(115200);
pinMode(motor, OUTPUT);
pinMode(PinA, INPUT);
attachInterrupt(digitalPinToInterrupt(PinA), contarMudancaPinA, CHANGE);
}
void loop() {
if ((millis() - millisPulsos_passado) >= 1000) {
//double RPMmotor = Pulsos_contador * (60.0 / 90.0) * (1000.0 / (millis() - millisPulsos_passado));
double RPMmotor = Pulsos_contador * (2.3/ 360.0) * (1000.0 / (millis() - millisPulsos_passado));
Serial.print("RPM: ");
//Serial.println(RPMmotor*7.11111111129);
Serial.println(RPMmotor);
Pulsos_contador = 0;
millisPulsos_passado = millis();
}
if (Serial.available() > 0) {
int valor = Serial.parseInt();
if (valor >= 0 && valor <= 255) {
analogWrite(motor, valor);
}
}
}