Il y a peu, j'ai décrit sur ce forum un tachymètre basé sur un Arduino et un afficheur LCD, avec deux versions de soft: une avec interrupts et une sans.
Le code doit pouvoir facilement être adapté pour l'application de ce fil.
-----
Il y a peu, j'ai décrit sur ce forum un tachymètre basé sur un Arduino et un afficheur LCD, avec deux versions de soft: une avec interrupts et une sans.
Le code doit pouvoir facilement être adapté pour l'application de ce fil.
Un civet, un plat de côtes et puis, glissez-moi une petite paupiette avec.( Lino Ventura)
Bonjour,
Non ce n'est pas plus long en assembleur si on maitrise ce dernier ,c'est çà le plus long. Mais une fois acquise cette maitrise on gagne du temps surtout en calcul et de la compacité pour le code.Bien sur il faudra aussi lire et comprendre les data sheet ce qui semble être passé de mode pour beaucoup.
JR
l'électronique c'est pas du vaudou!
Oui .Non ce n'est pas plus long en assembleur si on maitrise ce dernier ,c'est çà le plus long. Mais une fois acquise cette maitrise on gagne du temps surtout en calcul et de la compacité pour le code. Bien sur il faudra aussi lire et comprendre les data sheet ce qui semble être passé de mode pour beaucoup.
J'ai testé ton code sandrecarpe, il a l'air de marcher mais il donne une vitesse de rotation beaucoup trop élevée jusqu'à 10 000 tr/min alors que la capacité de mon moteur est d'environ 3000 tr/min. J'ai mis une vitesse assez faible où on peut voir la led de mon capteur s'allumer dès que le trou passe donc une vitesse plutôt faible mais le programme m'affiche déjà plus de 1000 tr/min
As-tu modifié le nombre de trou pour que cela corresponde à ton dispositif?
Oui j'ai bien modifié, il n'y a qu'un trou sur mon disque. J'ai compté le nombre de tours à l'oeil nu: le problème vient de la fonction qui calcule le nombre de tours, elle affiche 100tours lorsque je n'en ai compté qu'une vingtaine.
Pas certain que c'est cela le pb, mais je te suggererais de mettre delay(1) dans la fonction d'interruption (pour eviter de prendre une oscillation comme une serie de trous). Sandre a mentionne que cela ferait hurler les puristes, mais au pire tu leurs diras que c'est ma faute .
Salut,
On pourrais voir le schéma électronique du capteur ?
Ça aurait été intéressant de voir la forme du signal de sortie du capteur
S'il faut en arriver là c'est qu'une erreur de conception traine quelque pert (matérielle ou logicielle).
Oui je soupçonne (peut-être à tort) qu'il manque un condensateur quelque part.
Question pour toi: si au lieu de delay(1) on mettait:
Est-ce que ça hérisserait moins le derrière des poils ou pas vraiment?Code:temps1=milli(s); temps2=milli(s); while (temps1 > temps2-1) { temps2=millis(); }
Je ne connais pas Arduino, je ne sais pas ce que fait le "delay".
L'interruption doit uniquement servir à déclencher la mesure de temps, éventuellement avec un "anti-rebond" mais il ne devrait pas être nécessaire si le hard est bien fait.
Je ne l'ai pas malheursement pas trouvé. Lien où j'ai acheté mon capteur: http://www.ebay.com/itm/400364492556?rmvSB=true