Mesurer sa consommation : Arduino + compteur de vélo !

Toutes les questions relatives à l'entretien de votre Voxan : mécanique, électricité, carrosserie et accessoires.

Modérateurs : Enzo, Manu, cr126

Répondre
Avatar du membre
michelm
Commission Technique
Messages : 3149
Enregistré le : vendredi 23 juillet 2004 7:49
Localisation : 63

Mesurer sa consommation : Arduino + compteur de vélo !

Message par michelm »

Salut à tous,

Je pensais l'avoir mis sur le forum, mais non apparemment.
C'est un petit montage pour pouvoir lire sa consommation instantanée mais surtout le cumul de ce qui a été consommé et donc ce qui reste dans le réservoir.

Une sorte de calculateur de bord, j'ai choisi de l'afficher sur un compteur de vélo qui n'est pas fait pour ça bien sûr.
Avantage du compteur de vélo :
pas bien cher,
facile à trouver,
étanche,
autonome (pile),
fiable,
pas trop grand pour l'installer mais visible.

Il est sensé recevoir des impulsions correspondant à une longueur parcourue pour afficher des Km/h, des km parcourus, la moyenne, le maxi en km/h...

Ici on va lui envoyer l'équivalent d'un volume d'essence injecté, tous les 0,1 litre d'essence par exemple une impulsion,
il va donc afficher des Litres / Heure, faire le cumul des litres etc.
Ce qui peut nous intéresser c'est donc le cumul de litres consommés à chaque plein et en déduire ce qu'il reste, bien utile je trouve sur le Scrambler par exemple.

Pour lui envoyer ces impulsions de consommation il faut mesurer le temps cumulé d'un injecteur ouvert, en fait sur un des fils d'injecteur il y a un + 12V permanent (contact mis) et sur l'autre des fois + 12 V et quand on passe à 0 V c'est qu'il est alimenté et ouvert.
Un seul injecteur suffit c'est juste un coefficient 2 pour avoir le total.

Il faut donc mesurer le temps à l'état bas ou 0 V, le cumuler et tous les xx ms envoyer une impulsion au compteur.

Je l'avais fait avec des circuits logiques et ça fonctionne bien depuis plusieurs années, maintenant il y a des cartes avec micro-contrôleurs très accessibles qui peuvent le faire sans beaucoup de câblage, avec quelques composants.

Donc il faut un Arduino, plus exactement avec un clone de Nano Arduino, voire plus petit un micro-contrôleur seul : Attiny 45 ou 85.
L'avantage du Nano c'est la prise USB pour charger le programme, le modifier, éventuellement lire des choses avec le port USB sur un PC, smartphone, tablette.

Il faut un régulateur qui transforme le 12V en 5V, une résistance de 100 kohms au moins (ça peut perturber l'injecteur), une petite diode zener 5,1 V pour protéger l'entrée de l'Arduino, le compteur de vélo style Sigma avec liaison filaire, avec si possible des gros chiffres bien visibles.
Il faudra quand même un petit transistor avec une résistance pour fermer la boucle des 2 fils du compteur de vélo, l'Arduino fournit des impulsions 0 _ 5 V mais ça ne va pas sur le compteur.

Il faudra que je fasse un schéma, j'avais fait celui avec les circuits logiques, et tester ce montage Arduino à la place du mien quand même pour voir si ça fonctionne aussi bien.

Remarques :

Pour que ça fonctionne bien il faut que la pression d'essence soit constante pour mesurer la consommation, elle ne l'est pas forcément mais globalement je n'ai pas trouvé de gros écarts entre la mesure et ce que je remettais à la pompe.

Il faut faire plusieurs pleins et ajuster les paramètres compteur de vélo ou du programme pour avoir une bonne mesure.

Utiliser un Arduino pour ne faire que ça c'est vraiment du luxe mais c'est si peu cher (enfin les clones made in china) et avec l'USB, que ça ne donne pas forcément envie d'utiliser un Attiny auquel il faudra ajouter aussi quelques composants et programmer en le retirant du circuit.
Pour donner un exemple on peut faire un allumage électronique cartographique multi-courbes etc avec ça (j'en ai fait un avec l'aide d'autres gars plus pointus que moi en programmation).

On pourrait aussi lui faire mesurer la température moteur, la tension batterie, les signaux des capteurs d'injection pour faire un diagnostic etc.
Mais il faudrait un autre afficheur bien sûr, à voir pour plus tard.

On peut lui ajouter un module Bluetooth pour envoyer des infos sur un smartphone.

Certains avec de l'Arduino Mega (plus puissant) font un calculateur d'injection, ça pourrait nous servir un jour...

Alors les Nanos, on en trouve pour environ 2,50€ exemple :
https://www.ebay.fr/itm/USB-Nano-V3-0-A ... uXdryBhXOg

Le plus cher c'est la boîte pour mettre le Nano !
Non il y aussi le compteur Sigma comme le BC509 environ 16 €

Les composants il faudrait aller chez un vendeur de composants, sinon il y a Farnell, Conrad etc mais les frais de port vont être importants.

Le code qui pourra être améliorer bien sûr, j'ai essayé de mettre un maximum de commentaires : "// blabla..."
Attention dans le code il y a aussi un générateur d'impulsions (500 Hz) pour tester le montage en simulant les impulsions de l'injecteur.

Code : Tout sélectionner

/*
Mesure du temps d'injection pour envoyer des impulsions à un compteur de vélo qui affiche la consommation en litres par heure
On doit programmer sur le compteur de vélo une longueur (tour de roue) qui correspondra à un volume d'essence afin d'afficher des L/H à la place de Km/H
L'injecteur est alimenté en +12V d'un coté sur un fil, lorsqu'il s'ouvre pour injecter de l'essence le fil de commande passe à 0 V
Attention on doit mettre une résitance d'au moins 100 k ohms et une diode zener 5.1V pour limiter la tension vers l'Arduino
Pour une simulation la broche 2 injecteur est connectée par un fil en 3 qui est la sortie simulation
*/

const int injecteur = 2;        // broche capteur injection
const int simul = 3;            // broche PWM pour simulation injecteur
const int consommation = 13;    // broche envoie consommation au compteur
unsigned long dureeInj = 0;     // variable utilisée pour stocker la durée d'une injection
unsigned long reposInj = 0;     // variable utilisée pour stocker la durée d'un repos d'injection
unsigned long cumulInj = 0;     // variable utilisée pour stocker le cumul des durées d'injection
boolean imp = false;            // impulsion sortie en cours vrai faux
unsigned long actu;             // temps actuel

void setup()
{
  Serial.begin(115200);
  pinMode(injecteur, INPUT);       // Injecteur est une entrée
  pinMode(simul, OUTPUT);          // Simulation est une sortie
  pinMode(consommation, OUTPUT);   // Sortie pour compteur
  digitalWrite (injecteur, HIGH);  // entrée injecteur est normalement à 1 au repos
  digitalWrite(consommation, LOW); // sortie consommation est à 0
}

void loop()
{
  analogWrite(simul, 220);             // Simulation test environ 500 hz avec une valeur moyenne à état 0 d'environ 0,3 ms à 220 soit 15 % de T = 2 ms (rapport cyclique de 0 à 255)

  dureeInj = pulseIn(injecteur, LOW);  // La durée d'injection se fait par mesure du temps d'injecteur à 0 donc lorsqu'il est commandé
  cumulInj = cumulInj + dureeInj;      // Le cumul des temps d'injection est la somme du dernier cumul + le dernier temps d'injection mesuré

  if (cumulInj >= 60000)               // Si le cumul injection est égal ou supérieur à 60 000, cette valeur doit être ajustée, en test on a environ 65 700 us mesurés
  { imp = true;                        // imp est vrai
    cumulInj = 0;                      // Cumul injection est remis à 0
    digitalWrite(consommation, HIGH);  // On envoie une impulsion de consommation au compteur, sortie etat haut
    actu = millis();                   // Temps actuel = millisecondes
    Serial.println("1");               // Info port série = 1
  }

  if (imp == true )                    // Si imp est vrai
  {
    if (millis() - actu >= 80)         // Si temps en millisecondes - actu est égal ou supérieur à 80 ms, çà decroche au dessus
    {
      digitalWrite(consommation, LOW); // On passe la sortie impulsion consommation à l'état bas
      imp = false;                     // On passe imp à l'état faux ou 0
      Serial.println("0");             // Info = 0
    }
  }
}

Un enregistrement (analyseur logique sur PC) de ce que ça donne, en haut les impulsions injecteur, en bas les impulsions vers le compteur de vélo :

Image
Marxiste tendance Groucho !

Qu'aurait dit Pascal de notre choix pour Voxan :
"Le coeur a ses raisons que la raison ne connait point..." !!

Road 1999 pré-série N°25, Scrambler 2003 N°83
Avatar du membre
Doc 78
Messages : 3058
Enregistré le : lundi 26 décembre 2005 17:15
Localisation : la celle st cloud (RP)

Re: Mesurer sa consommation : Arduino + compteur de vélo !

Message par Doc 78 »

ça y est on a retrouvé le fils naturel de Einstein!!

Doc 78
Fini l'été, on va se les geler
vivement le printemps, qu'on ouvre en grand.
Avatar du membre
dominique
Messages : 203
Enregistré le : dimanche 23 mai 2010 19:05
Adh : 938
Localisation : 19

Re: Mesurer sa consommation : Arduino + compteur de vélo !

Message par dominique »

Bien vu Michel, mais l'afficheur y dis quoi?
Conso ou autonomie? Parce que en fait c'est ça qui est important en temps réel.
Rock'n'Roll and british bikes
Avatar du membre
michelm
Commission Technique
Messages : 3149
Enregistré le : vendredi 23 juillet 2004 7:49
Localisation : 63

Re: Mesurer sa consommation : Arduino + compteur de vélo !

Message par michelm »

L'afficheur du compteur de vélo il indique la consommation en litres / heures comme si c'était des km / h,
ce qui surprend ceux qui voient sur mon compteur, par exemple, 15 km/h alors que je suis à l'arrêt moteur au ralenti :mrgreen
en fait ça indique 1,5 L/H au ralenti (j'ai un coefficient de 10 pour plus de précision).

Quand j’appuie sur le bouton du compteur de vélo je peux lire la distance journalière en fait la consommation d'essence journalière ou entre 2 pleins c'est elle qui est intéressante,
on a aussi la consommation totale qui ne présente pas forcément un grand intérêt pour nous.
On peut aussi avoir l'heure qui est plus précise que celle du compteur Voxan.

Sur le Scrambler j'ai constaté que le voyant s'allume à 11 litres consommés, soit environ 200 km parcourus, même si le voyant ne fonctionne pas je sais qu'à 11 litres il faut penser à faire le plein.

Je n'ai donc pas l'autonomie restante mais je sais ce qu'il reste dans le réservoir, à 12,5 litres consommés je m'inquiète sérieusement de la prochaine station.

Quand on fait le plein on fait un "reset" pour remettre à 0 le compteur journalier de la consommation d'essence.
Marxiste tendance Groucho !

Qu'aurait dit Pascal de notre choix pour Voxan :
"Le coeur a ses raisons que la raison ne connait point..." !!

Road 1999 pré-série N°25, Scrambler 2003 N°83
la treille
Messages : 886
Enregistré le : jeudi 01 juin 2006 21:49
Localisation : ardeche

Re: Mesurer sa consommation : Arduino + compteur de vélo !

Message par la treille »

Salut Michel je vois que tu es toujours en ebullition côté technique!Et puis ça occupe qd on est a la retraite.
Pour ta modif compteur de velo,tu pourrais nous faire un petit montage et des photos a poster sur le forum .Voir,aussi nous presenter ce projet a l' AG.
¨Pour ma part,comme le voyant de reserve du street ne s'allume plus (faut chercher pquoi);Qd je fais le plein je remets mon compteur (de velo rajouté)a zero et a environ 180;190 kms je vise la prochaine pompe au fameux breuvage.Et dans mon calculateur humain je mémorise la conso de la belle.
Avatar du membre
michelm
Commission Technique
Messages : 3149
Enregistré le : vendredi 23 juillet 2004 7:49
Localisation : 63

Re: Mesurer sa consommation : Arduino + compteur de vélo !

Message par michelm »

Salut La Treille,

Oui, il faut que je fasse des photos et un nouveau schéma avec le Nano, et montrer aussi l'ancien montage plus compliqué.
On va dire que l'ancien montage était de la logique câblée avec plusieurs circuits donc pas de programmation,
alors que le nouveau c'est de la logique programmée donc quasiment plus de câblage.

Pour le voyant de réserve je pense que c'est souvent une coupure de la sonde ou de la liaison entre sonde et bloc compteur.
Marxiste tendance Groucho !

Qu'aurait dit Pascal de notre choix pour Voxan :
"Le coeur a ses raisons que la raison ne connait point..." !!

Road 1999 pré-série N°25, Scrambler 2003 N°83
Avatar du membre
Doc 78
Messages : 3058
Enregistré le : lundi 26 décembre 2005 17:15
Localisation : la celle st cloud (RP)

Re: Mesurer sa consommation : Arduino + compteur de vélo !

Message par Doc 78 »

c'est top ton idée.
perso, pour m'être déjà fait piégé, je suis basique et prudent : entre 170 et 180 kms compteur depuis le dernier plein je refuel.
fastoche.

Doc 78
Fini l'été, on va se les geler
vivement le printemps, qu'on ouvre en grand.
Avatar du membre
michelm
Commission Technique
Messages : 3149
Enregistré le : vendredi 23 juillet 2004 7:49
Localisation : 63

Re: Mesurer sa consommation : Arduino + compteur de vélo !

Message par michelm »

Merci Doc.
Des fois la consommation est plus importante ou plus faible et ça rassure de voir où on en est.
Probable que les gars en Street sont plus stressés par l'autonomie restante que nous en Scrambler et seront peut-être plus intéressés à faire ce montage.
Marxiste tendance Groucho !

Qu'aurait dit Pascal de notre choix pour Voxan :
"Le coeur a ses raisons que la raison ne connait point..." !!

Road 1999 pré-série N°25, Scrambler 2003 N°83
la treille
Messages : 886
Enregistré le : jeudi 01 juin 2006 21:49
Localisation : ardeche

Re: Mesurer sa consommation : Arduino + compteur de vélo !

Message par la treille »

C'est tout a fait ça !Apres voir comment on peut faire un kit d'adaptation sans grosses modifs pour implanter ton idée.
Avatar du membre
michelm
Commission Technique
Messages : 3149
Enregistré le : vendredi 23 juillet 2004 7:49
Localisation : 63

Re: Mesurer sa consommation : Arduino + compteur de vélo !

Message par michelm »

Les modifs c'est se repiquer sur les fils d'un injecteur et ça peut se limiter à ça.
Il faut du + et - 12V après contact, mais comme il y aura le +12V sur un des fils d'injecteurs, il ne reste plus qu'à trouver une masse pour l'alimentation de l'électronique.
Les 2 fils fins (très fins !) du support compteur irons dans le boîtier électronique.
Marxiste tendance Groucho !

Qu'aurait dit Pascal de notre choix pour Voxan :
"Le coeur a ses raisons que la raison ne connait point..." !!

Road 1999 pré-série N°25, Scrambler 2003 N°83
Avatar du membre
Vincent SS#80
Messages : 746
Enregistré le : jeudi 13 mai 2010 13:31
Adh : 1074
Localisation : Aussonne (31)

Re: Mesurer sa consommation : Arduino + compteur de vélo !

Message par Vincent SS#80 »

bravo

intéressant pour les street attelés aussi.... :mrgreen

comment calibres tu le débit de l'injecteur ?
les cylindres, c'est comme les roues : 1, 2 voire 3 mais jamais plus.
Avatar du membre
michelm
Commission Technique
Messages : 3149
Enregistré le : vendredi 23 juillet 2004 7:49
Localisation : 63

Re: Mesurer sa consommation : Arduino + compteur de vélo !

Message par michelm »

Pour ma première version avec circuits logiques câblés, j'avais fait un calcul avec le débit injecteur théorique et les temps d'ouverture d'injecteur, mais en réel le débit était moins important alors j'ai modifié le câblage pour en tenir compte, avec l'Arduino il faut modifier une valeur dans le programme c'est plus simple.
Une fois dégrossi j'ajuste plus finement et facilement avec le paramètre du compteur de vélo : diamètre de roue.

Il faut que je retrouve le schéma du premier montage avec les valeurs obtenues par câblage...
Marxiste tendance Groucho !

Qu'aurait dit Pascal de notre choix pour Voxan :
"Le coeur a ses raisons que la raison ne connait point..." !!

Road 1999 pré-série N°25, Scrambler 2003 N°83
Avatar du membre
Vincent SS#80
Messages : 746
Enregistré le : jeudi 13 mai 2010 13:31
Adh : 1074
Localisation : Aussonne (31)

Re: Mesurer sa consommation : Arduino + compteur de vélo !

Message par Vincent SS#80 »

ok

je suis pas capable de développer un tel montage, par contre je tenterai bien le montage !
les cylindres, c'est comme les roues : 1, 2 voire 3 mais jamais plus.
Avatar du membre
michelm
Commission Technique
Messages : 3149
Enregistré le : vendredi 23 juillet 2004 7:49
Localisation : 63

Re: Mesurer sa consommation : Arduino + compteur de vélo !

Message par michelm »

Copies du schéma du premier montage avec des circuits logiques :

compteur diviseur CD4060 avec une fréquence (quartz) de 4 Mhz / 16
CD4011 c'est 4 portes NAND à 2 entrées pour l'entrée injecteur et les impulsions qui sortent du CD4060
l'autre CD4060 permet encore de diviser par 4096,
en sortie un petit transistor pour envoyer une impulsion au NE555 qui calibre une impulsion d'environ 11 ms qui permet de fermer la boucle du compteur de vélo, comme si c'était le capteur de roue d'origine du compteur de vélo Sigma BC500.

C'est juste pour info, avec l'Arduino ou un Attiny c'est plus simple, un seul circuit pour faire la mesure et le comptage.

Image
Marxiste tendance Groucho !

Qu'aurait dit Pascal de notre choix pour Voxan :
"Le coeur a ses raisons que la raison ne connait point..." !!

Road 1999 pré-série N°25, Scrambler 2003 N°83
Avatar du membre
michelm
Commission Technique
Messages : 3149
Enregistré le : vendredi 23 juillet 2004 7:49
Localisation : 63

Re: Mesurer sa consommation : Arduino + compteur de vélo !

Message par michelm »

Calcul du débit injecteur (estimation)

Injecteur IWP043 donné pour 330cc/mn à 3 bars

http://www.puissance-injection.biz/300c ... jets-.html

330cc/mn ça donne 5,5 mL / sec à 3 bars,
environ 6,42 mL / sec à 3,5 bars (en faisant une règle de 3)

en prenant sur le compteur de vélo 1 impulsion = 0,2 mL (Ws tour de roue = 2000)
on devrait être avoir un temps d'injection de l'ordre de 64 ms à mesurer pour envoyer une impulsion au compteur.

Ça sera à modifier, affiner dans le programme, car j'avais trouvé un écart assez notable.
Marxiste tendance Groucho !

Qu'aurait dit Pascal de notre choix pour Voxan :
"Le coeur a ses raisons que la raison ne connait point..." !!

Road 1999 pré-série N°25, Scrambler 2003 N°83
Avatar du membre
michelm
Commission Technique
Messages : 3149
Enregistré le : vendredi 23 juillet 2004 7:49
Localisation : 63

Re: Mesurer sa consommation : Arduino + compteur de vélo !

Message par michelm »

Je pensais mettre un Attiny 85 c'est largement suffisant, avec un régulateur 5V, condensateurs de filtrage etc. donc aussi un bout de circuit imprimé avec support, pour tout mettre,

mais j'ai vu ces petites cartes à 1€ (une fortune !) avec l'Attiny 85 :

https://www.ebay.fr/itm/Mini-ATTINY85-M ... Ruhwjdj17g

Ça parait pas mal, il y a le régulateur, LED de signalisation, condensateurs de filtrage, et on peut enlever l'Attiny 85 pour le programmer avec par exemple un Arduino Uno (c'est ce que je fais actuellement) si on ne veut pas utiliser l'USB qui prend si j'ai bien compris 2 ko sur les 8 ko disponibles

La carte complète vaut 1€, alors que l'Attiny 85 seul vaut dans les 1,20€ chez Farnell par exemple.
Par contre je ne sais pas si le régulateur tiendra 14 V permanent en entrée, c'est le point faible des Nano Arduino par exemple, avec une diode ou deux ça peut arranger (faire baisser la tension d'alimentation), mais ça fait des composants en plus bien sûr.

Avec 6 ko il y a largement de quoi mettre le programme actuel qui fait moins de 2 ko.

Le circuit est vraiment petit
https://i.ebayimg.com/images/g/eJAAAOSw ... -l1600.jpg
Marxiste tendance Groucho !

Qu'aurait dit Pascal de notre choix pour Voxan :
"Le coeur a ses raisons que la raison ne connait point..." !!

Road 1999 pré-série N°25, Scrambler 2003 N°83
Répondre