Dernière mise à jour :
03/09/2017
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.
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. Les véhicules actuellement supportés par cet
indicateur sont les suivants :
- Moto Suzuki Bandit DL650
- Moto Suzuki SV1000S
- Moto Suzuki SV1000S de 2003 avec GPack
- 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.
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, il aurait tout aussi bien pû être établi sur une
autre ligne d'entrée/sortie. 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. 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.
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 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". 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.
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).



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 - (03/09/2017)
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
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.