Advertisement
RuiViana

RPM_Hall.ino

Dec 17th, 2018
318
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.68 KB | None | 0 0
  1. unsigned long rotacao = 0;                            // Contador de pulsos do hall
  2. float rpm = 0;                                        // Para calculo de RPM
  3. unsigned long tempoMillis;                            // Controle do tempo entre intervalos
  4. unsigned long tempoMedida = 100;                      // Intervalo de medida  em mseg (procure o melhor valor que te atenda)
  5. //------------------------------------------------------------------------
  6. void setup()
  7. {
  8.   //  Serial.begin(9600);                             // Use a velocidade da sua serial
  9.   Serial.begin(115200);
  10.   attachInterrupt(0, hall_detectado, RISING);         // Inicializa o intterrupt (Arduino digital 2)
  11.   tempoMillis = millis();                             // Inicialisa o tempo de comparacao
  12. }
  13. //------------------------------------------------------------------------
  14. void loop()                                           // Mede RPM
  15. {
  16.   if ( millis() - tempoMillis >= tempoMedida)         // Compara se passou o intervalo de medidas
  17.   {
  18.     tempoMillis = millis();                           // Restaura o tempo de comparacao
  19.     rpm = (rotacao * 60000) / tempoMedida;            // Qde de rotatação corrigido pelo tempoMedida, em um minuto (60000 mseg)
  20.     Serial.println("RPM: "); Serial.println(rpm, 2);  // So para debug
  21.   }
  22. }
  23. //------------------------------------------------------------------------
  24. void hall_detectado()                                 // Esta funcao é chamada sempre que um pulso magnetico/interrupt for detectado
  25. {
  26.   rotacao++;                                          // Incrementa a contagem a cada pulso do hall
  27.   //Serial.println("pulso");                          // So para debug
  28. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement