Go Down

Topic: Réalisation d'un afficheur de vitesse pour voiture (Read 3643 times) previous topic - next topic

Jean-François

D'un coté ta voiture en 0-12V et de l'autre ton arduino en 0-5V entre deux du vide et un signal lumineux, comme ton signal est carré ça devrait marcher, il suffit d'adapter la résistance de la led de l'optocoupleur (voir la datasheet qui s'y rapporte).



Voir sous optocoupleur au milieu de la page :

http://www.reality.be/elo/labos2/interfacein.htm


Pour la fréquence, je parlais principalement de la capacité de l'arduino qui ne pourra mesurer au-delà d'un certaine fréquence... mais tes besoins devraient être largement en deça des essais que j'avais fait :

http://arduino.cc/forum/index.php?topic=89413.0


Les opto on également une vitesse de "réaction", voir également sur la datasheet.
MacBook intel core 2 duo  os X snow Leopard 10.6<br/> eMac PPc G4  os X Leopard 10.5<br/>powerbook G4 os X Leopard 10.5
imac PPC G3 os X Pa

jeec

La solution initiale que j'avais adoptée a fini par fonctionner, mais de façon non satisfaisante.
Le vitesse trouvée n'est pas stable, je pense que c'est parce qu'elle est déterminée de façon logicielle, et que la détection des fronts se fait avec un décalage du au temps d'exécution
des instructions.
J'ai expérimenté une autre solution, avec le compteur d'impulsions du Timer1, qui, dans son utilisation comme compteur d'événement externe, compte à partir de la broche 5. C'est donc sur cette broche que j'ai branché le fil info vitesse de ma voiture (toujours après adaptation par pont diviseur).
Là, j'ai une mesure identique à celle du compteur d'origine du véhicule (restera à faire une correction, avec un GPS, si on veut une mesure plus précise).

Je suis parti des données fournies par Super_Cinci:

Quote
les capteurs vitesse utilisés sont donnés à une impulsion pour 20cm parcourus


Sachant que 20cm = 0.2 m = 0.2*10e(-3) km

On en déduit que:
Pour 1 km, on aura 1/0.2*10e(-3) impulsions
Pour 1 km/h, on aura 1/0.2*10e(-3) impulsions pendant 1 h
Pour V km/h, on aura V/0.2*10e(-3) impulsions pendant 1 h
Pour V km/h, on aura V/0.2*10e(-3) impulsions pendant 3.6*10e6 mS
Pour V km/h, on aura V impulsions pendant 3.6*10e6*0.2*10e(-3)=740 mS

La valeur de la vitesse V sera donc égale au contenu du compteur après 740 mS de comptage.

Ce qui donne:


Code: [Select]

void setup()
{
/* .... */
       
        //Initialisation du compteur
        TCCR1A=0;
}

void loop()
{
//Démarrage du comptage
bitSet(TCCR1B,CS12); // indique que l'horloge du compteur est externe (sur la broche 5)
bitSet(TCCR1B,CS11); // Comptage sur front montant
delay(740);  // délai en mS nécessaire pour compter un nombre d'impulsions égal à la vitesse
TCCR1B=0; // arret du comptage
ecrireNombre(TCNT1);
TCNT1=0; //réinitialisation du compteur
}


Je n'ai pas encore expérimenté l'ICP1, je vous tiendrai au courant dès que j'aurai des résultats.

NB: Dans ma voiture, j'alimente l'arduino avec la prise allume cigare, et en conséquence, le régulateur de l'arduino chauffe très fort. Est-il possible de coller dessus un radiateur pour limiter la chauffe? Si oui, comment s'y prendre?

jeec

Merci à Jean-François pour les infos sur l'opto-coupleur

Go Up