Electronique > Réalisations > Affichage / mesures > Indicateur rapport vitesse 002

Dernière mise à jour : 20/08/2023

Présentation

Ce projet fait suite à celui de l'indicateur de rapport vitesse 001 qui avait été élaboré suite à la demande d'un internaute, propriétaire d'une moto Suzuki Bandit DL650. Ce dernier souhaitait disposer d'un affichage du rapport de vitesse sur un afficheur sept segments à LED.

indicateur_rapport_vitesse_002_pcb_3d_a

Je ne connaissais à l'époque strictement rien au sujet, aussi m'avait-t-il parût intéressant de m'y plonger. A la suite de la réalisation, j'ai reçu plusieurs courriers concernant cet indicateur de rapport vitesse 001, pour des adaptations diverses pour d'autres types de moto. Cela m'a conduit à réfléchir un peu à une façon de faire légèrement différente. Le présent indicateur 002 est plus simple à réaliser, il convient pour plusieurs types de moto (et même voitures) et est "extensible".

Deux versions sont disponibles, compatibles broche à broche :
- schéma 002
: avec PIC 16F88 (tous profils répartis en deux goupes)
- schéma 002b
: avec PIC 16F1847 (tous profils dans un seul groupe)

Le portage sur PIC 16F1847 est justifié par le fait que ce dernier est plus performant, mieux distribué et moins cher que le PIC 16F88.

   

Avertissement

Pour des raisons de taille mémoire du programme, le nombre de profils est limité. Le PIC 16F88 dispose d'un espace mémoire de 4 Ko qui permet de faire tenir 6 profils différents. Pour aller plus loin, je n'ai pas beaucoup de solutions :
- soit je change de PIC, au profit d'un modèle "plus large" et dans ce cas on peut disposer d'un fichier *.hex unique;
- soit je scinde en plusieurs groupes les différents profils et dans ce cas on doit disposer de plusieurs fichiers *.hex, celui à utiliser dépendant du véhicule.
Pour la version avec PIC 16F88, j'ai choisi la deuxième méthode pour faire découvrir aux débutants uC comment utiliser des directives de compilation dans MikroPascal (je vous laisse regarder dans le code source livré).
Pour la version avec PIC 16F1847 qui possède 2 fois plus de mémoire, tous les profils tiennent dans un seul fichier compilé.

   

Principe général

Certains véhicules disposent d'un commutateur électromécanique ou système électronique qui délivre une tension bien précise selon la position du rapport de vitesse engagé. Cette tension est destinée à "alimenter" un indicateur de rapport vitesse dont le rôle est d'effectuer une simple translation (conversion) entre tension lue et nombre affiché. Le présent montage fait cela : le nombre affiché dépend de la tension appliquée sur son unique entrée analogique. Comme les diverses tensions que l'on peut trouver selon le rapport engagé diffèrent selon le type de véhicule, cet indicateur a été conçu pour permettre la "sélection" du véhicule, via quelques interrupteurs ou ponts de soudure. Les véhicules actuellement supportés par cet indicateur sont les suivants :
D'autres modèles peuvent être ajoutés à ce système d'affichage si on me communique la tension disponible pour chaque valeur de rapport engagé. Merci à ceux qui m'ont déjà fourni les tensions pour les modèles précités.

   

Schéma 002 - avec 16F88

En comparaison avec l'indicateur de rapport version 001, celui-ci est plus simple car le convertisseur externe ADC0831 a disparu de la circulation, au profit du convertisseur intégré dans le PIC 16F88.

indicateur_rapport_vitesse_002

Filtrage tension d'entrée
Ce filtrage est indispensable, car on peut facilement retrouver, superposé à la tension utile prise au point central du diviseur de tension mis en circuit par le capteur / commutateur de la moto, des tas de parasites de tous poils. Heureusement que l'on peut se contenter d'un filtre passe-bas simple, du premier ordre, qui prend ici la forme de R1 et de C1. La valeur du condensateur C1 pourra être augmentée sans problème jusqu'à 10 uF. Cela est même conseillé si vous constatez des affichages "indésirables" lors des changements de rapport. La diode zener D1 n'est pas obligatoire mais très fortement conseillée (modèle 400 mW ou plus), en vue de protéger l'entrée analogique du circuit intégré U1 dans le cas où une tension de valeur supérieure à +5 V arrivait à se faufiler à l'entrée du montage. Le courant qui la traverserait dans ce cas serait limité par la résistance R1 de 1000 ohms. La valeur de cette résistance R1 peut être baissée jusqu'à 100 ohms, mais dans ce cas utilisez une zener qui peut dissiper 1,3 W ou plus.

Régulation alimentation
La section d'affichage repose sur un circuit intégré qui doit être alimenté sous une tension de +5 V par rapport à la masse. Cette tension de +5 V est délivrée par un régulateur de tension intégré de type LM7805, à partir de la tension +12 V de la batterie de la moto. Une diode de redressement de type 1N4007 (D2) est montée en amont du régulateur de tension afin de protéger le montage en cas d'inversion accidentelle de polarité. Cette diode est facultative et vous pouvez la remplacer par un strap, mais je vous conseille vivement de la laisser en place. La chute de tension qu'elle provoque est négligeable et le régulateur aura toujours sur son entrée une tension suffisante pour travailler dans de bonnes conditions. Un condensateur à l'entrée du régulateur et un autre sur sa sortie lui permettent de bien se comporter et de ne pas entrer en oscillation pour un oui ou pour un non. Ce qui serait mauvais pour l'équilibre physique de la moto, comme on peut l'imaginer.

Conversion analogique / numérique

La conversion analogique / numérique est assurée par le CAN de résolution 10 bits intégré au PIC. L'entrée analogique est établie sur le port RA0. La comparaison de la tension lue avec les valeurs connues dépend du type de la moto, il est nécessaire d'indiquer au PIC à quel véhicule il a affaire pour savoir quelle table de valeurs utiliser. La sélection du type de moto s'effectue via les entrées RA1, RA2, RA3, RA5, RA6 et RA7, qui se voient appliquer un état logique répondant à la table ci-après.

La colonne Grp (groupe) indique le fichier hex à utiliser, une valeur de type "1,2" indique que vous pouvez utiliser de façon indifférente le fichier *_grp_001.hex ou *_grp_002.hex, une valeur de type "1" indique que vous devez impérativement utiliser le fichier *_grp_001.hex et une valeur de type "2" indique que vous devez impérativement utiliser le fichier *_grp_002.hex. Pour le programme du PIC 16F1847, tous les profils sont contenus dans le même fichier, il n'y a pas de notion de groupe.

La colonne Val indique la valeur décimale de chaque codage binaire (pour vous aider à vous y retrouver dans le code source livré).


- Grp Statut RA7 RA6 RA5 RA3 RA2 RA1 Val
Suzuki DL650
1,2 V 0 0 0 0 0 0 0
Suzuki DL650 + GPACK (*) 1,2 NV 0 0 0 0 0 1 1
Susuki SV650 1,2 V 0 0 0 0 1 0 2
Suzuki SV650 + GPACK (*) 1,2 V 0 0 0 0 1 1 3
Suzuki SV1000N 1,2 V 0 0 0 1 0 0 4
Suzuki SV1000N + GPACK (*) 1,2 NV 0 0 0 1 0 1 5
Suzuki SV1000S
1,2 V 0 0 0 1 1 0 6
Suzuki SV1000S + GPACK (*) 1,2 V 0 0 0 1 1 1 7
Susuki GSXR (2000 à 2003) 1,2 NV 0 0 1 0 0 x 8/9
Susuki GSX14000 1 NV 0 0 1 0 1 x 10/11
Renault Megane 2L 16S 2 V 1 0 0 0 0 x 32/33
NV = Non Validé - merci de me contacter pour confirmer si OK
V = Validé
x = indifféremment état haut (1) ou bas (0)
(*) GPACK : utilitaire électronique de débridage qui se présente sous la forme d'un boîtier à ajouter sur la moto et qui permet de faire croire au calculateur de bord que la moto est en 4ème alors qu'elle est en réalité en 2ème ou en 3ème. Ce boîtier contient une simple résistance (2,2 kO, 6,8 kO ou 15 kO selon moto visée), voir schéma de câblage suivant.

indicateur_rapport_vitesse_xxx_gpack_001a

Les entrées du PIC qui servent à la configuration peuvent être positionnées à l'état logique désiré via des micro-switches (mini-interrupteurs) ou avec des cavaliers (jumper). Vous pouvez aussi les câbler directement sur la masse ou au +5 V, avec des petits ponts de soudure faisant contact entre des ilots de cuivre sur le circuit imprimé. La deuxième solution est plus économique et prend moins de place, mais il est moins facile de reconfigurer l'appareil après installation puisqu'il faut ressortir le fer à souder. A titre d'exemple, le schéma montre les micro-switches en position pour la Suzuki SV1000S : seul l'interrupteur relié sur RA2 (broches 2-13 de SW1) est en position ON et ramène un état logique haut, les autres entrées de sélection sont à l'état logique bas grâce au réseau de résistances RP1.

Affichage
Pour l'affichage, on exploite la quasi totalité du port B du PIC, l'afficheur sept segments prend possession des sept lignes RB0 à RB6. L'état logique de chaque ligne de ce port dépend du nombre à afficher, et est déterminé de façon permanente après lecture de la tension d'entrée. La ligne RB7 est la seule ligne du port B à être configurée en entrée. Si cette ligne RB7 est laissée en l'air (non connectée et donc à l'état logique haut car le pullup interne du PIC est activé) alors l'affichage de la position Neutre se fait avec le chiffre "0". Si la ligne RB7 est mise à la masse (état logique forcé à zéro avec cavalier JP1 mis en place) alors l'affichage de la position Neutre se fait avec la lettre "n". Pour le profil 32/33 (Renault Megane 2L 16S), l'afficheur indique la lettre "A" pour la position marche arrière.

Horloge du PIC
On utilise ici l'horloge interne 8 MHz du PIC, dont la précision n'est pas un critère de choix tellement il a peu d'importance ici. Une configuration d'horloge à 1 MHz aurait même amplement suffit.

   

Schéma 002b - avec PIC 16F1847

Même fonctionnement général, seul le PIC change.
   
indicateur_rapport_vitesse_002b  
   
Quasiment aucune différence de câblage par rapport au schéma 002, mais le fichier compilé à charger dans le PIC est bien sûr différent. Contrairement à la version avec PIC 16F88, on dispose ici d'une mémoire programme suffisante pour faire tenir tous les profils dans un seul fichier compilé (*.hex).

Fonction bonus : mode affichage "chiffre" ou "point"
Dans ce schéma 002b, vous noterez que la broche RA4 du PIC est utilisée, ce qui n'était pas le cas avec la version à base de 16F88. Dans une prochaine version, cette nouvelle ligne utilisée en entrée sur le PIC permettra de définir le mode principal d'affichage :
Dans le second cas (affichage point), une seule sortie est activée à la fois sur le PORTB du PIC : activation de RB0 pour la valeur "0", activation de RB1 pour la valeur "1", etc. jusqu'à activation de RB6 pour la valeur "6". Dans ce contexte d'utilisation, les LED devront être raccordées comme le sont les 7 segments de l'afficheur : cathode à la masse et anode sur la résistance correspondante.

   

Prototype

Essais réalisé avec ma platine EasyPic4 et avec une source de tension ajustable (potentiomètre délivrant une tension entre 0 V et +5 V). Bien utile pour vérifier le bon fonctionnement du système, mais moins intéressant que le prototype réalisé et monté par Cyril sur sa SV650, qui montre que l'indicateur est réalisé en deux circuits imprimés séparés, un pour l'électronique principale et l'autre pour l'afficheur seul (avec ses résistances de limitation de courant).

indicateur_rapport_vitesse_002_proto_ct_001aindicateur_rapport_vitesse_002_proto_ct_001bindicateur_rapport_vitesse_002_proto_ct_001cindicateur_rapport_vitesse_002_proto_ct_001d

Merci à lui pour ses retours et pour les photos !

   

Logiciel du PIC

Les archives dont les liens suivent incluent les fichiers compilés (format *.hex) pour PIC 16F88 et 16F1847.
Indicateur rapport vitesse 002 - 16F88 - (03/09/2017)
Indicateur rapport vitesse 002b - 16F1847 - (16/08/2023)
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é. Vue 3D uniquement là pour donner un aperçu des composants utilisés.

    

Historique

20/08/2023
- Ajout schéma 002b ; portage sur PIC 16F1847 du programme écrit initialement pour le PIC 16F88.
03/09/2017
- Ajustement valeurs pour modèle Susuky SV1000S avec GPack (l'affichage du rapport #3 posait problème, car la tension mesurée variait grandement pour ce dernier, en fonction de la vitesse).
20/08/2017
- Ajout validation modèle Susuky SV1000S avec GPack.
16/09/2012
- Correction bug affichage pour profil Suzuki GSX14000. Une partie du code logiciel n'était pas exécuté et c'est le profil d'un autre véhicule qui était utilisé à la place.
26/08/2012
- Ajout profil Suzuki GSX14000. Merci à Anthony pour les valeurs de tension correspondant à ce modèle.
- Création de groupes de profils pour permettre l'ajout de nouveaux modèles tout en conservant le PIC 16F88.
08/07/2012
- Ajout profil Suzuki SV1000N sans GPACK. Attention, j'ai un peu modifié l'ordre des modèles au niveau de la position des switches (ça ne devrait pas poser de problème puisque la nouvelle version sera plutôt utilisée par les détenteurs d'une SV1000N). Merci à Gilles pour ses relevés spécifiques à ce modèle.
04/03/2012
- Ajout profil Suzuki GSXR de 2000 à 2003 (moteur 600 à 1000 cc). Merci à Guillaume pour les infos tensions relevées.
12/02/2012
- Ajout schéma GPack.
- Ajout photos du prototype fonctionnel de Cyril.
29/01/2012
- Correction valeur tension pour position 6ème du profil Susuki SV650 avec ou sans GPack. La tension relevée dans ce rapport (ainsi que dans le rapport 0) est bien différente selon que l'indicateur de rapport est ou non raccordé (tension mesurée plus faible quand indicateur raccordé). En gros, l'influence de ce dernier n'est pas négligeable, mais seulement pour les tensions les plus élevées, comme si l'impédance de source augmentait avec la tension délivrée.
- La valeur du condensateur C1 à été augmenté, de 1 nF à 100 nF (pas très critique, simple précaution supplémentaire).
- Ajout profil pour voiture Renault Megane 2L / 16S, avec affichage de la lettre "A" pour marche arrière.
- Désormais, il est possible de spécifier si la position "Neutre" doit être affichée avec le chiffre "0" ou avec la lettre "n".
22/01/2012
- Correction bug logiciel mauvais paramétrage horloge PIC. Ca fonctionnait sur ma platine EasyPic4 équipée de son quartz 8 MHz mais pas en autonome.
- Ajout profil Suzuki SV650 avec ou sans GPACK, profil Suzuki DL650 avec GPACK et profil Suzuki SV1000S avec GPACK (pour ces deux derniers, attente validation).
- Désormais, une configuration de switches non reconnues est considérée comme sélection "0" (modèle Suzuki Bandit DL650).
30/05/2010
- Première mise à disposition.