Les logiciels Windows de Tiercelin
Transmission des données du Compte-tours en NMEA
Ce programme permet de transmetre une phrase NMEA RPM des données du compte-tours sur un port série ( ici le port USB de la carte UNO )
Etage d’entrée pour le compte-tour
Je me suis inspiré de ce site :
http://www.sonelec-musique.com/electronique_realisations_compte_tours_001.html
Merci à son auteur.
Voici le circuit :
L’entrée est à relier à la borne W de l’alternateur ou du compte tours
La sortie est à relier à une borne de masse et une borne digitale (2) de l’Arduino .
Le programme Arduino pour le compte-tours :
//les variables
int etatrpm = HIGH;
int inpinrpm = 2;
String laphraserpm;
String laphraserpmfin;
String rpmini;
String lesrpm;
int checkrpm;
unsigned int rpm;
unsigned long duration;
// l’initialisation
void setup()
{
Serial.begin(9600);
pinMode(inpinrpm, INPUT);
}
// le programme principale
void loop()
{
duration = 0;
duration = pulseIn(inpinrpm, LOW);
if (duration != 0)
{rpm = 30*10000/duration;}
else
{rpm = 0;}
lesrpm = String(rpm);
rpmini = "$ERRPM,E,1,”;
laphraserpmfin = ",,,";
laphraserpm = rpmini + lesrpm + laphraserpmfin;
checkrpm = getCheckSum(laphraserpm);
laphraserpm =laphraserpm + "*";
Serial.print(laphraserpm);
Serial.println(checkrpm,HEX);
delay(500);
}
// fonction pour calculer le checksum
int getCheckSum(String phrase) {
int checksum = 0;
int longueur = 0;
longueur = phrase.length();
for(int i = 1; i < longueur; i++)
{
checksum = checksum ^ int(phrase[i]);
}
return checksum;
}