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.
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) / Coù
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 :
- 4 T / 1 C : 10 imp. / seconde (600 imp. / minute) -> affichage 1200 trs / min
- 4 T / 4 C : 200 imp. / seconde (12000 imp. / minute) -> affichage 6000 trs / min
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).
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.
Merci à lui pour ses retours !
Prototype de Guillaume
Et voici le proto de Guillaume qui lui aussi a adopté une version à cinq afficheurs.
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.