Pages: 1 [2]   Go Down
Author Topic: Réalisation d'un afficheur de vitesse pour voiture  (Read 2946 times)
0 Members and 1 Guest are viewing this topic.
Forum Moderator
Geneva
Offline Offline
Faraday Member
*****
Karma: 30
Posts: 3227
Yoplait... le pt'it suisse
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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.
Logged

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

Offline Offline
Newbie
*
Karma: 0
Posts: 13
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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:
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?
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 13
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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

Pages: 1 [2]   Go Up
Jump to: