Compteur de vitesse et compte tour mécanique

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 :grin:

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:
image

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 :blush:)

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 :grin:

This topic was automatically closed 120 days after the last reply. New replies are no longer allowed.