Já estive a testar.. com o código referido não consigo grande coisa, a agulha inicialmente ficava sempre nas 7 (x1000) RPM, depois resolvi adicionar um debug e meti Serial.Begin(9600); no setup do código e a agulha passou para os 3 (x1000) RPM.. alterando o número no ciclo (de 65000 para outro qualquer) não influência, pelo menos com os valores que meti (10000, 40000,110000, etc..).
Encontrei no entanto um tópico a falar também disto, o user utilizou este código:
void setup() {
pinMode(9, OUTPUT);
}
void loop() {
tone(9, 33.3333333333333);
delay(2500);
tone(9, 66.66666666666667);
delay(2500);
tone(9, 100);
delay(2500);
tone(9, 133.3333333333333);
delay(2500);
tone(9, 166.6666666666667);
delay(2500);
tone(9, 200);
delay(2500);
tone(9, 233.3333333333333);
delay(2500);
tone(9, 266.6666666666667);
delay(2500);
noTone(9);
delay(2500);
}
e por acaso funciona +/-, fazendo o cálculo referido nesse tópico: "Use the calculations he provided, or to put is another way, frequency = RPM * cylinders/120." a agulha mantêm-se fiel até às 6 mil RPM depois é que começa a ficar mais atrás do objectivo.. não testei ajustar os valores das frequências mas se calhar é a solução.
Vídeo: