Electronique > Réalisations > Affichage / Mesure > Compte tours 001b

Dernière mise à jour : 22/07/2012

Présentation

Le compte-tours 001b présenté ici est basé sur l'emploi d'un PIC de type 16F628A, un composant qui a quelques broches de plus que le PIC 12F675 utilisé dans le compte-tours 001, mais qui reste toutefois assez léger. Comparé à son "ancètre" 001, ce compte-tours 001b est plus précis (quartz externe) et permet de spécifier le nombre de temps et de cylindres et d'adapter ainsi l'affichage en fonction du moteur utilisé. L'affichage peut se faire en nombre de tours par minutes ou en nombre d'impulsion par secondes (en Hz). Pour un moteur 4 temps / 4 cylindre, un comptage de 200 impulsions par seconde pourra ainsi être visualisé sous la forme "6000 trs / min" ou sous la forme "200 Hz". La précision étant de l'ordre du Hz, et le nombre de tours étant obtenu par calcul, la précision en affichage "Nombre de tours / minute" ne pourra évidement pas être de l'ordre du tours / minute. Comptez sur une précision de quelques dizaines de tours dans le pire des cas, ce qui n'est pas si mal si on la compare à celle des indicateurs à aiguille traditionnels...

Schéma

Même type de montage que le compte-tours 001, seul le microcontrôleur change.

compte_tours_001b

Fonctionnement général
Il existe plusieurs façons de réaliser un compte-tours, les deux les plus répandues sont les suivantes :
- conversion fréquence / tension après mise en forme par un monostable et intégration par un réseau RC;
- comptage du nombre d'impulsion dans un laps de temps donné.
C'est cette seconde solution qui a été retenue ici.
Le comptage d'impulsions est réalisé dans une "fenêtre" de temps précisement calibrée à une seconde, grâce à l'usage du Timer 1 du PIC qui autorise une bonne précision. En mode d'affichage "impulsions par seconde", le nombre d'impulsions comptées est directement affiché, tel quel. En mode d'affichage "tours par minutes", la valeur affichée correspond au nombre d'impulsions comptées, multiplié par un nombre qui dépend du type de moteur (nombre de temps et nombre de cylindres). La période de comptage est de 1 seconde et n'intègre pas les routines d'affichage : le raffraichissement des valeurs n'a pas lieu toutes les secondes, mais un poil plus, ce qui n'a pas d'incidence sur la précision de la mesure.

Méthode de calcul
Elle se base sur la formule suivante :
F = (N / 30) * (C / T)
formule qu'on peut bien sûr retourner à notre avantage :
N = (F * T * 30) / C

F = fréquence des impulsions issues du rupteur
N = nombre de tours par minute
C = nombre de cylindres
T = nombre de temps pour chaque cylindre
Quelques exemples d'affichage :

Méthode de comptage
La fenêtre de mesure de 1 seconde peut démarrer selon deux "principes" et dépend de la position du cavalier (jumper JP1) :
- RB0 = 0 -> démarrage timer de mesure systématique après affichage du dernier nombre de tours calculé, sans tenir compte des impulsions entrantes;
- RB0 = 1 -> démarrage timer de mesure au moment où une nouvelle impulsion d'horloge arrive sur l'entrée de comptage (détection front montant).
La deuxième méthode permet une mesure plus précise et plus régulière, mais en contrepartie l'affichage reste figé à la dernière valeur mesurée en absence d'impulsion à l'entrée du montage. Rien ne vous interdit de tester les deux méthodes pour voir celle qui vous convient le mieux. L'entrée RB0 doit impérativement être reliée soit à la masse soit au +5 V, sinon le comptage risque d'avoir des loupés.

Horloge de référence
On aurait pu exploiter l'oscillateur interne 4 MHz du PIC pour simplifier le montage, mais j'ai préféré ici opter pour un quartz, car la précision de l'oscillateur interne peut varier dans d'assez grandes proportions en fonction de la température ambiante. Et dans une voiture...

Affichage des valeurs
L'affichage du nombre d'impulsions mesurées ou du nombre de tours / minutes est assuré sans aucun multiplexage, au moyen de registres à décallages de type CD4094. Les données à afficher sont transmises sous forme sérielle en sortie DATA (sortie RB4 du PIC), et les registres sont synchronisés et verrouillés via les lignes CLOCK (RB5) et STROBE (RB6). Les afficheurs peuvent être quelconques du moment qu'il s'agit d'afficheurs à cathode commune (point commun à la masse). Selon la couleur et la luminosité souhaitée, vous pourrez modifier la valeur des résistances qui sont en série avec chaque segment.

Mode d'affichage
Le mode d'affichage permet de spécifier le nombre de temps (1, 2 ou 4) et le nombre de cylindres (1, 2, 4, 6 ou 8) du moteur. Ce circuit est donc adapté pour des moteurs 4 temps / 1 cylindres ou 2 temps / 6 cylindres, par exemple. A chaque nouvel appui sur le bouton poussoir SW1, le type de moteur change et la méthode de calcul des impulsions comptées est adaptée en conséquence. En même temps, l'affichage montre le nombre de temps et de cylindres en cours de sélection, pendant 1 seconde environ. Après quoi l'affichage affiche à nouveau les impulsions entrantes ou leur correspondance en tours / minute. L'affichage suivant montre une sélection effectuée pour un moteur 4 temps / 6 cylindres (lettre "t" sur le second afficheur pour le nombre de temps et lettre "c" sur le quatrième afficheur pour le nombre de cylindres).

compte_tours_001b_disp_4t6c

Ce même affichage est montré lors de la mise en route de l'appareil. Le dernier choix effectué par l'utilisateur est sauvegardé en mémoire EEProm, et donc conservé même lorsque l'alimentation générale est coupée pendant longtemps. Sur une voiture, pas besoin de laisser le montage alimenté en permanence.

Etage d'entrée
Sur le schéma présenté ci-avant, l'entrée du compte-tours s'effectue sur la borne 6 (RB0) du PIC, qui lui-même est alimenté en +5 V. On doit donc y appliquer un signal respectant la norme TTL si l'on veut que tout se passe bien. Un exemple d'étage d'entrée à ajouter au compte-tours est proposé à la page compte-tours 001, merci de vous y reporter le cas échéant.

Logiciel du PIC

L'ensemble des fichiers (code source MikroPascal Pro V5.30, fichier assembleur *.asm et fichier compilé *.hex) est disponible dans une unique archive zip.
Compte-tours 001b - 16F628 - Version du 22/07/2012
Si vous souhaitez recevoir par la poste un PIC préprogrammé et prêt à utiliser, merci de consulter la page PIC - Sources.

Circuit imprimé

Non réalisé. 

Prototypes

-
Prototype de Justin D.
Photos envoyées par Justin, qui a réalisé ce compte-tours après modification du logiciel pour affichage sur cinq chiffres au lieu de quatre.

compte_tours_001b_proto_jd_001a compte_tours_001b_proto_jd_001b compte_tours_001b_proto_jd_001c

Merci à lui pour ses retours !

Prototype de Guillaume
Et voici le proto de Guillaume qui lui aussi a adopté une version à cinq afficheurs.

compte_tours_001b_proto_g_001a compte_tours_001b_proto_g_001b compte_tours_001b_proto_g_001c

Guillaume a modifié le code source pour bénéficier d'un taux de raffraichissement de 10 Hz au lieu de 1 Hz. Comme en procédant ainsi le nombre d'impulsions mesurées est divisé par 10, il faut le multiplier par dix pour retrouver la bonne valeur à afficher. La précision s'en ressent forcement aussi.

Historique

22/07/2012
- Mise à jour du code pour MikroPascal V5.30.
- Meilleure précision de comptage possible. Désormais, la fenêtre de mesure de 1 seconde peut reprendre sur le front montant d'une impulsion d'horloge (détails dans le texte).
- Désormais, la sélection du nombre de temps et de cylindres est plus rapide (plus agréable même quand on ne l'effectue qu'une fois).

19/02/2012
- Ajout photos prototype de Guillaume.

24/01/2010
- Première mise à disposition.