Bonjour 0axel
Tu ne peut pas mesurer un variation de tension sur une sortie PWM (broche 10), mais tu peux voire une variation de rapport cyclique, visible à l'oscillo.
Mets toujours ton code au complet.
Cordialement
jpbbricole
Bonjour 0axel
Tu ne peut pas mesurer un variation de tension sur une sortie PWM (broche 10), mais tu peux voire une variation de rapport cyclique, visible à l'oscillo.
Mets toujours ton code au complet.
Cordialement
jpbbricole
Bonjour, j'ai pas trop eu le temps de travailler sur tout ce que vous m'avez dit, je vous laisse le code quand même et je regarderai quand j'aurai plus de temps tout ça
Merci
int compteur = 0;
int broche_PWM = 10;
int Valeur_PWM = 0;
const int kmhHzMax = 25;
const int kmhPwmMax = 800; //Max 1023
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
Valeur_PWM = map(compteur, 0, kmhHzMax, 0, kmhPwmMax);
Serial.print("PWM "); Serial.println(Valeur_PWM); //Vitesse vehicule
compteur = 0;
analogWrite(broche_PWM,Valeur_PWM);
}
Bonjour 0axel
PWM c'est de 0 à 255 sur un port de l'Arduino, C'est une c......e que j'avais laissé dans mon exemple, excuses.
Si tu veux plus précis et que tu as besoin de plusieurs sorties PWM, il y a le PCA9685:
Cordialement
jpbbricole
Bonjour 0axel
J'ai contrôlé ton code avec un L298 et un moteur CC 12V, ça fonctionne impec.
PWM va de 0-255 (j'ai corrigé ma bourde )
const int kmhPwmMax = 255; //Max 255
Le moteur ne va pas forcément démarrer à 1Hz (PWM 19), mon moteur, à vide, démarre bien à 4HZ (PWM 30), ça fait déjà une diminution de la plage.
Autre remarque, un top par tour, ça ne fait "que" 25 division du compteur est-ce une "finesse" suffisante, l'aiguille va avancer par sauts.
Dernier truc
volatile int compteur = 0;
Les variables traitées dans une interruptions et qui sont utilisée en dehors de cette interruption doivent être précédées d'un volatile.
Cordialement
jpbbricole
Super merci pour tout ça. Du coup ça fonctionne j'arrive sur tinkercad a faire fonctionner le système. Je vais maintenant m'orienter sur le choix des composants (le moteur principalement) et si j'ai encore des soucis je reviendrai vers vous
This topic was automatically closed 120 days after the last reply. New replies are no longer allowed.