Je cherche donc à avoir sur un écran (ou une barre d'afficheurs 7 éléments) le nombre de tour minutes que va prendre un moteur de kart, ainsi qu'une barre de LED pour afficher une plage de T/min (avant rupteur).
Par contre, par rapport au lien plus haut,je ne fais pas de compétition donc je peux reprendre sur le capteur du point d'allumage, si j'ai bien compris.
Mais ensuite? J'aurais un signal carré? En 5v, 12v?
C'est un moteur rotax max (2t, 125cc, je suppose qu'il doit avoir une impulsion par tour?)
Il faudrait faire si j'ai bien compris, lire pendant disons 0.25s, puis afficher, puis relire en boucle?
J'ai pas bien compris pour avoir une lecture sans interruption...
dans le sujet auquel tu fais référence dans ton premier message il y a déjà de quoi faire : enrouler un fil, un montage (dont t'as le schéma) et même le code qui va avec (!)
Je ne sais pas ce qu'il te faut de plus...
Le lien ne précise pas le fonctionnement en prenant directement du capteur phm, qui semble être une meilleur solution. A moins que le fonctionnement reste le même (et le schéma aussi?)
le PMH c'est le capteur sur le volant moteur non ?
en effet c'est une toute autre chose à gérer, mais à moins que ce ne soit une contrainte obligatoire, au lieu de te compliquer la vie avec ca, tu peux prendre la solution toute faite exposée par Super_cinci qui est assez simple à mettre en œuvre tant au niveau électronique que code...
Oui c'est bien ça (enfin pmh je l'ai mal écrit).
Je pensais que ça serait plus simple de passer par là (pour un tour, il y a X crans, donc suffit de compte le nombre de crans, diviser par X et diviser par minute en gros), sans vraiment connaitre ce qui sort du capteur (le signal).
Je vais tester la méthode par le fil, car celui là est déjà bien écrit effectivement, mais bon si y'a mieux/plus fiable, pourquoi pas tester une autre façon de faire.
Roger01:
Je vais tester la méthode par le fil, car celui là est déjà bien écrit effectivement, mais bon si y'a mieux/plus fiable, pourquoi pas tester une autre façon de faire.
Tu as tout à fait raison, mais m'étant déjà intéressé par le passé, comme toi, au PMH, il semblerait que son utilisation soit plus difficile à mettre en place (mais pas impossible !) que se câbler sur l'allumage directement...
const float rmp_facteur = 3.75; // pour moteur 4 cylindres 4 temps : =15/(nombre d'étincelles par tour moteur)
volatile word rmp_count = 0; // variable de comptage vitesse du moteur
volatile word rmp_temp; // variable de lecture du timer
volatile word rmp_moteur; // contient la vitesse moteur en tr/min
ISR (INT0_vect){ // appelée à chaque étincelle de bougie
rpm_count++; // incrément compteur
}
ISR (TIMER1_COMPA_vect) { // appelée à chaque tour de timer, soit toutes les 1s.
rpm_temp = rmp_count; // lecture compteur.
rmp_count = 0; // RAZ compteur
rmp_moteur = rmp_temp * rmp_facteur; // convertion en tour / minutes
}
void setup(){
OCR1A = 62500; // mesure moteur toutes les 250ms
TCCR1A = 0x00; // configuration timer : mode normal CTC (RAZ sur comparaison OCR1A)
TCCR1B = 0x0B; // fréquence timer = 250KHz
TMISK1 = 0x02; // Interruption sur fin compteur
EICRA = 0x02; // interruption INT0 déclenchée sur front descendant (falling);
EIMSK = 0x01; // autoriser l'INT0
}
void loop(){
// ici, on utilise la valeur contenue dans rmp_moteur comme on veut (sans la modifier, cela va de soi). elle sera
// mise à jour une fois par seconde...
}
In function 'void __vector_1()':
8:3: error: 'rpm_count' was not declared in this scope
In function 'void __vector_11()':
12:3: error: 'rpm_temp' was not declared in this scope
In function 'void setup()':
21:3: error: 'TMISK1' was not declared in this scope
et sur l'IDE arduino ? (elle est gratuite, tu peux la télécharger et l'installer)...
Edit : c'est une simple erreur de frappe rmp/rpm !!!
Edit 2 : bon, il y a visiblement quelques erreurs de frappe, voici le code corrigé :
const float rmp_facteur = 3.75; // pour moteur 4 cylindres 4 temps : =15/(nombre d'étincelles par tour moteur)
volatile word rmp_count = 0; // variable de comptage vitesse du moteur
volatile word rmp_temp; // variable de lecture du timer
volatile word rmp_moteur; // contient la vitesse moteur en tr/min
ISR (INT0_vect){ // appelée à chaque étincelle de bougie
rmp_count++; // incrément compteur
}
ISR (TIMER1_COMPA_vect) { // appelée à chaque tour de timer, soit toutes les 1s.
rmp_temp = rmp_count; // lecture compteur.
rmp_count = 0; // RAZ compteur
rmp_moteur = rmp_temp * rmp_facteur; // convertion en tour / minutes
}
void setup(){
OCR1A = 62500; // mesure moteur toutes les 250ms
TCCR1A = 0x00; // configuration timer : mode normal CTC (RAZ sur comparaison OCR1A)
TCCR1B = 0x0B; // fréquence timer = 250KHz
TIMSK1 = 0x02; // Interruption sur fin compteur
EICRA = 0x02; // interruption INT0 déclenchée sur front descendant (falling);
EIMSK = 0x01; // autoriser l'INT0
}
void loop(){
// ici, on utilise la valeur contenue dans rmp_moteur comme on veut (sans la modifier, cela va de soi). elle sera
// mise à jour une fois par seconde...
}
Bon, c'est bizarre, sur 123d, si je met un bouton sur l'INT0 ça ne change rien à rmp_moteur.
Mais si je change ISR (INT0_vect) par ISR (INT2_vect) et que je met un bouton sur le port 2, là j'ai une réaction.
J'ai testé l'IDE mais ça semble être juste un compilateur. Pas trouvé de simulateur avec..
Je l'ai déjà mais je n'ai pas toute les pièces du coup, par rapport au schéma et encore moins le moyen de tester comme ça sans le moteur à coté du pc...
Je me suis attaqué au traitement d'un signal via le PMH ... pour l'instant PMH-Bruno 1:0
L'intêret pour moi était d'avoir un truc ultra fiable comparé auxlsystèmes par bobinages qui sont pas terribles terribles (J'ai monté du Koso , du Mod7 sur mes motos et j'ai jamais eu quelque chose de 100% fiable).
Puis techniquement c'est plus intéressant je trouve .
après t'as pas que le capteur Hall sur une bougie, tu peux aussi te brancher sur la bobine d'allumage et t'as un signal avec des pics plutôt fiable, mais il faut savoir le déparasiter, car si tu fais seulement un lissage soft tu ajoutes une latence perceptible...
Edit : Super_cinci qui est un pro de l'allumage m'avait filé ce schéma, je n'ai pas encore eu le temps de l'essayer, mais je lui fais confiance !
Zorro_X:
après t'as pas que le capteur Hall sur une bougie, tu peux aussi te brancher sur la bobine d'allumage et t'as un signal avec des pics plutôt fiable, mais il faut savoir le déparasiter, car si tu fais seulement un lissage soft tu ajoutes une latence perceptible...
Edit : Super_cinci qui est un pro de l'allumage m'avait filé ce schéma, je n'ai pas encore eu le temps de l'essayer, mais je lui fais confiance !
En faisant mon curieux , je suis tombé sur ton compteur Zcar, c'est du bon boulot !
BrUnO14200:
En faisant mon curieux , je suis tombé sur ton compteur Zcar, c'est du bon boulot !
Merci !
Si j'ai mis le lien dans mon profil, ce n'est pas "faire le curieux" !
Question électronique c'est quand même du bricolage et justement le filtrage je le fais logiciellement avec un debounce plus une moyenne fenêtrée et j'ai une latence de 150-200ms qui est perceptible à l'œil nu...
Je suis tombé dessus en allant sur le forum super5
Soit dit en passant, c'est cool qu'une communauté de gens s'amuse à faire vivre nos vieilles mamies à 4 roues.
Je suis plus branché japonaises mais pas du tout sectaire et ça fait plaisir de voir encore des "oldies" sur les routes !