alors tout d'abord j'ai aucune connaissance en programmation Arduino mais je suis ouvert pour apprendre.
J'ai pour projet avec un ami de modifier le compteur de sa voiture pour qu'il soit entrainer grâce a un moteur a courant continu au lieu des vieux câble d'époque ( La raison : le moteur a été swap et il souhaite garder le look de son ancien compteur)
Pour cela on pensais utiliser un capteur de proximité avec un aimant ou un effet hall (je sais pas ce qui sera le mieux) pour récupérer l'info du nombre de tours de roue par min pour le retranscrire au moteur qui sera branché au cul du compteur et remplacera les câbles
On est en train de faire des test pour définir le nombre de tour que le moteur doit faire pour afficher 100km/h par exemple et définir une courbe a partir de ces données ( Et faire de même avec le compte tours)
Donc si mes souvenirs de physique sont encore bon on devrait tirer une sinusoïde du capteur et sa fréquence variera en fonction du nombre de tours de roue, on souhaiterai donc contrôler le moteur en fonction de cette fréquence. (Pour le compte tours on veut réutiliser le capteur pmh qui est un effet hall donc la manip sera très similaire)
Maintenant je fait appel a vous parce que j'ai aucune idée pour arriver a tout ca. Je sais que l'Arduino est une bonne solution mais j'ai aucune idée de comment m'y prendre.
Je vous demande pas de le faire pour moi mais de m'éclairer et me guider pour que j'y arrive. C'est mieux que de copier comme un con et au moins je pourrais apprendre le fonctionnement en même temps
Voila merci d'avances a ceux qui nous ferons l'honneur de nous aider
Sujet intéressent et pas si compliqué à premier abord.
Il y a la possibilité optique avec un capteur à réflexion, il y a des modules "tout faits"
Il suffit d'avoir, sur la partie mobile, une zone (ou plusieurs) de contraste pour détecter le passage.
Il y a la possibilité magnétique
En incluant un ou plusieurs aimants à la partie mobile. Attention, avec ce type de capteurs à base de A3144 le sens de l'axe N/S ou S/N a son importance.
Les 2 méthodes génèrent des impulsions par lesquelles on peu en déduire des tours/minute et en extrapoler un signal PWM dont le rapport cyclique sera en rapport avec les t/Min. PWM qui va piloter le moteur CC qui va faire "comme" le câble.
Il est important de connaître les tours/minute du compteur ou compte/tours à déviation maximum pour savoir s'il faut un moteur à réducteur ou pas.
Le moteur CC pourrait être piloté par un circuit à base de L298.
Mais le principal problème et là
Je veux bien te "piloter", à condition que tu soit à l'aise avec l'environnement Arduino ainsi que son langage, il te faut faire quelques exercices des exemples, comme lire des impulsions sur un port d'entrée, en mesurer la période, comment faire varier l'intensité d'une LED au moyen de commandes PWM (analogWrite()).
Quels sont tes connaissances en électronique?
Je penchais plus sur un capteur magnétique que optique car dans une baie moteur on est pas a l'abris de saleté qui pourrais venir gêner le capteur optique
Ensuite j'ai prévu de définir la vitesse nécessaire en entré de mes compteur pour choisir mon moteur mais je ne m'y suis pas encore attelé
Et pour répondre a ta dernière question, je ne connait pas du tout l'environnement Arduino (A part passer mon imprimante 3d sous marlin avec l'ide je n'y ai jamais touché et encore la je suivait un guide sans vraiment comprendre)
je me documente depuis hier mais je me trouve face a tellement d'infos que je m'y perd
Je vais commencer a regarder les exercices que tu me parle, hier j'avais trouver comment faire tourner un moteur avec un potentiomètre sur tinkercad mais c'est tout
Je cherchais un moyen de lire une fréquence depuis un générateur de fonction au sein de tinker car il n'y a pas de capteur magnétique dans la bibliothèque mais je m'y perd encore plus au final
En fin de compte, ce n'est jamais que mesurer le temps entre 2 impulsions ou compter des impulsions pendant un temps défini qu'elle provienne d'un capteur magnétique, d'un capteur optique ou d'un générateur, c'est du même.
Dans Tinkercad recherches tachometer et motor pwm, motor pwm pour s'inspirer du programme, pas pour la commande du moteur, il est préférable d'utiliser du L298 comme driver.
j'ai pas mal chercher cet après midi et je suis arriver a un résultats
Voici le code que j'ai composer
int compteur = 0;
int broche_PWM = 10;
int Valeur_PWM = 0;
void interruption0()
{
compteur++;
}
void setup() {
Serial.begin(9600);
attachInterrupt(0,interruption0,RISING);
pinMode(broche_PWM, OUTPUT);
}
void loop() {
delay(1000);
Serial.print(compteur*60);
Serial.println(" RPM"); //Nbr tr/min a la roue
Serial.print(compteur);
Serial.println(" Hz"); //Passage de l'aimant devant le capteur/seconde
Serial.print(compteur*6.6096);
Serial.println(" Km/h"); //Vitesse vehicule
compteur = 0;
Valeur_PWM = analogRead(compteur*10);
analogWrite(broche_PWM,Valeur_PWM);
}
J'ai calculé que ma roue ne tournera pas plus que 25tr/sec d'ou le multiplicateur de 10 sur le analogread
Il se trouve par contre que la valeur prise au multimètre sur tinkercad en sorti de broche 10 est pas du tout fixe même si ma fréquence en entré ne change pas
La voiture est une Honda civic MK2 de 1983 avec son compteur d'origine
Le moteur est un 1.7 de civic de 2001. Je comptais récupérer son capteur pmh pour les tr/min du moteur et mettre un capteur quelques part sur la transmission pour la vitesse roue
On a déjà regarder a soit changer les bloc compteur pour du moderne mais on gardait pas le look et le budget était trop élevé.
Avec l'arduino je pensais trouver une solution moins onéreuse mais pas forcément plus simple
Je viens d'essayer si je supprime "analogread" comme tu me l'a conseiller ça ne sort plus aucun voltage
Sur cette pin 10 je souhaite un courant continu qui change en fonction de la fréquence en entré pin 2 avec les facteur de multiplication que j'ai appliqué selon les spécificités de mon système
La finalité est d'y brancher un moteur a courant continu à la place du multimètre
La valeur de compteur est déjà affiché en hz. Elle correspond au nombre de passage de mon aimant devant mon capteur que j'ai simulé grâce au générateur de fonction et qui est fixé à 20Hz
Dès que je rajoute la ligne pour inscrire les Valeur_PWM ça me met en vrac ma ligne "RPM" qui affiche des valeurs incohérente
Et Valeur_PWM oscille entre 0 et 1000 on dirais sans être constant
J'ai réalisé la solution de jpbbricole mais toujours pareil j'ai des valeurs de tension qui varient énormément en sortie de pin 10 et qui varient de la même façon qu'avec le code que j'avais fait avant
Si la mesure de la fréquence de rotation de la roue est bonne il n'y a aucune raison pour que la consigne du PWM fluctue.
Il faudrait peut-être travailler de manière un peu plus méthodique.
Tu écris le code qui mesure la fréquence de rotation de la roue.
Tu testes la valeur retournée en t'assurant qu'elle est juste et stable. Tu envoies la valeur par un Serial.writeln() et tu la visualises dans le traceur série.
Tu ajoutes la conversion fréquence en valeur PWM
Tu testes la valeur retournée en t'assurant qu'elle est juste et stable. Même principe qu'au pas (2)
Au passage, un aimant unique pour tester la fréquence de rotation de la roue c'est trop peu. La solution actuelle de multiplier par 10 la fréquence n'apporte rien, cela n'augmente pas la précision.
Si tu veux avoir une mesure de fréquence plus précise il faut :
soit qu'il y ait plus d'aimants sur la roue. C'est pour ça que sur les ABS on trouve une couronne avec un nombre important d'encoches. L'augmentation du nombre d'aimants améliore la résolution de la mesure, le temps de mesure étant fixe (1 seconde actuellement)
soit mesurer la période de rotation. En utilisant un timer pour compter le nombre d'impulsions d'une horloge de référence entre 2 passages de l'aimant devant le capteur. Là, l'augmentation du nombre d'aimant assurera une mesure plus rapide, la résolution de la mesure dépendant de la fréquence de l'horloge de référence.
Attention, la mesure de la période en règle générale donne un résultat plus rapidement, sauf à très basse vitesse et surtout à l'arrêt il faut une sécurité sinon on ne sort jamais de la fonction de mesure.