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.
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 :
- 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 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.
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.
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.
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 :
- Si RA4 = 0 (SW1[4-11] ouvert), alors mode affichage "chiffre" sur afficheur LED 7 segments
- Si RA4 = 1 (SW1[4-11] fermé), alors mode affichage "point" sur LED indépendantes
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).
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.
- fichier *_grp_001.hex (16F88) : à utiliser pour les
profils de véhicules inclus dans le groupe 1
- fichier *_grp_002.hex (16F88) : à utiliser pour les
profils de véhicules inclus dans le groupe 2
- fichier *.hex (16F1847) : à utiliser pour les
profils de véhicules inclus dans les groupes 1 et 2
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.