Bonjour
J'ai démarré un nouveau projet, avec comme but d'afficher la vitesse de ma voiture dans un afficheur qui puisse être mieux placé dans le champ de vision que le compteur d'origine (dans le style speed visio de Valeo).
Comme je possède un véhicule relativement récent, il y a un fil info vitesse, et j'ai pu y brancher un nouveau cable en accédant aux branchements du compteur d'origine grâce à des informations trouvées sur les forums auto.
Pour la phase suivante, j'ai espionné avec un oscillo numérique de poche les infos qui circulaient sur ce cable.
Le signal est un signal carré, le niveau bas est à 0, le niveau haut à 13 V.
A 40 km/h, la demi-période est d'environ 10 ms, à 80 km/h de 5 ms. La loi qui donne la vitesse serait donc: vitesse=400/demi-période.
Enfin, j'ai développé le prototype.
Pour la partie électronique, je récupére le signal du cable sur une entrée numérique de l'arduino, après l'avoir adaptée au niveau de tension acceptable, en utilisant un pont diviseur (6 k/10 k), ce qui donne 4,88 V en entrée en niveau haut.
Pour la partie logicielle, je me contente pour l'instant, dans la boucle principale, de déterminer la demi-période du signal, d'en déduire la vitesse, et de l'afficher.
Je n'ai pas opté, dans ce projet, pour l'utilisation des interruptions (par exemple sur signal montant), mais plutôt sur un test en continu de la valeur (haute ou basse) de mon entrée vitesse.
Voici la partie du code qui effectue le "calcul" dans la fonction principale void loop()
valBitInfoVitesse=digitalRead(bitInfoVitesse);
while(valBitInfoVitesse==LOW)
{
valBitInfoVitesse=digitalRead(bitInfoVitesse);
}
t=micros();
while(valBitInfoVitesse==HIGH)
{
valBitInfoVitesse=digitalRead(bitInfoVitesse);
}
ecartMicroS=micros()-t;
vitesse=400000/ecartMicroS;
ecrireNombre(vitesse);
J'ai testé l'ensemble sur mon véhicule, en fait en deux fois. Dans la première version, j'affichais seulement la valeur de la demi-période, en mS. Dans une deuxième version, après avoir rajouté le calcul, c'est la vitesse que j'affichais.
Ces deux expériences ont eu un résultat plutôt mitigé. La demi- période (ou dans la deuxième expérience, la vitesse) étaient très instables, bien que globalement cela tourne autour des valeurs attendues, mais avec très souvent des résultats aberrants.
Mes compétences en électronique sont limitées, mais j'imagine que c'est l'environnement perturbé du véhicule qui crée ces problèmes. Peut-être faut-il diminuer la valeur des deux résistances du pont pour augmenter l'intensité (si oui, jusqu'où aller)? L'arduino est alimenté par la prise allume-cigare, cela pose-t-il problème? Y a t-il des choses à faire?
Merci pour votre aide, et bonnes fêtes de fin d'année à tous.