Sélectionnez votre langue

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".

Avertissement

Pour des raisons de taille mémoire du programme, le nombre de profils est limité. J'utilise ici un PIC 16F88 dont l'espace mémoire est 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.
J'ai choisi la deuxième méthode pour garder le 16F88 et 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é), mais rien ne m'empêchera à l'avenir, si un réel besoin s'en fait sentir, d'adapter le programme actuel vers un autre PIC.

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. Pour l'heure, les véhicules supportées par cet indicateur sont les suivants :

  • Moto Suzuki Bandit DL650
  • Moto Suzuki SV1000S
  • Moto Suzuki SV1000N de 2003 (modèle à injection)
  • Moto Susuki SV650
  • Moto Suzuki GSXR de 2000 à 2003 (600 cc to 1000 cc)
  • Moto Suzuki GSX14000
  • Voiture Renault Megane 2L / 16S

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

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. La diode zener D1 n'est pas obligatoire mais 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 produite 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 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, il aurait tout aussi bien pû être établi sur un autre port du PIC. 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 il doit 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 indifé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. 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 NV 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 microswitches (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 ilôts 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 microswithes 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 la question de l'affichage, on exploite la totalité du port B du PIC, l'afficheur sept segments prend possession de ses sept premières 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". C'est vous qui choisissez l'affichage que vous préférez. Pour le profil xxx, 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.

Prototype

Essais réalisé avec ma platine EasyPic4 et avec une source de tension ajustable (simple pot ajustable fournissant une tension ajustable en 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 montrent 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_001a indicateur_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

L'archive dont le lien suit inclue la totalité des fichiers utilisés : fichiers source au format MikroPascal Pro V5.30 et fichiers binaires au format .hex.

  • fichier *_grp_001.hex : à utiliser pour les profils de véhicules inclus dans le groupe 1
  • fichier *_grp_002.hex : à utiliser pour les profils de véhicules inclus dans le groupe 2

Indicateur rapport vitesse 002 - 16F88 - (11/09/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é. Vue 3D uniquement là pour donner un aperçu des composants utilisés.

Historique

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.