Vitesse Moteur???

Bonjour,
Je suis un petit nouveau sur Arduino…
Je rencontre un souci au niveau d’un sketch que j’essaie de modifier, je rencontre un problème sur la vitesse de rotation de deux moteurs, je ne comprend pas comment modifier cette vitesse.
Voici une copie du code:

int pwm_a = 3; //PWM control for motor outputs 1 and 2
int pwm_b = 9; //PWM control for motor outputs 3 and 4
int dir_a = 2; //direction control for motor outputs 1 and 2
int dir_b = 8; //direction control for motor outputs 3 and 4

void setup()
{
pinMode(pwm_a, OUTPUT); //Set control pins to be outputs
pinMode(pwm_b, OUTPUT);
pinMode(dir_a, OUTPUT);
pinMode(dir_b, OUTPUT);

analogWrite(pwm_a, 2000); //set both motors to run at (2000/255 = 39)% duty cycle (slow)
analogWrite(pwm_b, 2000);

}

void loop()
{
//Avance ralenti 1s
digitalWrite(dir_a, LOW);
digitalWrite(dir_b, LOW);
analogWrite(pwm_a, 1000);
analogWrite(pwm_b, 1000);
delay(1000);
//Avance acélérer 2s
analogWrite(pwm_a, 2000);
analogWrite(pwm_b, 2000);
delay(2000);

J’ai essayé de modifier “pwm_a, 2000” par “pwm_a, 1000” croyant que je divisais la vitesse de rotation par 2, mais sans suces >:(
De plus je ne comprend pas bien la formule de calcul utilisée dans le commentaire “set both motors to run at (2000/255 = 39)% duty cycle (slow)
Quel serait la formule a utiliser pour faire varier la vitesse de rotation de ces moteurs basic (non pas à pas)?
Merci de votre aide.
Cordialement

Bonjour,

La valeur dans analogWrite doit être comprise entre 0 et 255. Les valeurs que tu utilises sont trop grandes.

Bonjour 3Sigman
merci pour l'info, en fait c'est un sketch qui a l'origine est fourni par "velleman" pour le POWER SHIELD "KA03",
et donc comme je ne maitrise pas totalement le "analogWrite" je me suis contenté de prendre comme c'est ècrit....
Par contre si il existe une formule magic pour tomber a coup sur sur les bonnes valeurs en % ou en décimal je suis preneur, j'ai lu qq part qu'il y a une histoire de fréquence pour transformer du logique 0 - 5v en analogique 0 à ...... mais j'ai pas tout saisi comme le tuto est en anglais...
De ce pas je vais essayer le 0 - 255 en partant du principe que 127 représente environ 50%...
Dit moi si je me trompe?
Cordialement
JL

C'est ça, 127 correspond à 50%.

Ok ça fonctionne nickel! je vais pouvoir peaufiner mes réglages....

En fait le principe de calcul du pourcentage est simple (valeur 0 à 255 / 255) soit 127/255=50% ..... 255/255=100%

Est ce que tu a des infos en français sur (l'histoire des fréquences pour transformer du logique 0 - 5v en analogique 0 à ......) du moins quel sont les limites et éventuellement des formules pour récupérer les valeurs fournies par une photorésistance ou autre qui donne des valeurs analogiques.

Cordialement.

Il ne faut pas confondre entrée et sortie. Le PWM, c'est une sortie, la photorésistance est un capteur, ça se branche sur une entrée du micro-contrôleur.
En entrée, la tension entre 0 et 5V est égale à la valeur lue * 5V et divisée par 1024 (car les entrées analogiques sont sur 10 bits.

En code, ça donne ça:

float tension;
int valeurLue;

valeurLue = analogRead(0);  // Lecture de l'entrée analogique 0
tension = (float)valeurLue * 5. / 1024;

Ah! OK tout s'éclaire enfaite je m’embrouillais avec l'entrée (lecture potentiomètre) et la sortie (contrôle moteur)
Effectivement les formule de calcul ne sont pas les mêmes....
Je vais cogiter tout ça et je ne manquerai pas de revenir vers toi si j'ai un souci...
Enfin je ne suis plus seul dans mon coin...
je me suis mis à l’Arduino il n'y a pas longtemps, c'est pour occuper et initier mon gamin de 9ans pendant les vacances ont fait des petits montages ludiques

Très Cordialement

Bonjour 3Sigman,

Suite a ton bout de code que tu m'a fourni:
float tension;
int valeurLue;
valeurLue = analogRead(0); // Lecture de l'entrée analogique 0
tension = (float)valeurLue * 5. / 1024;

Je compte l'utiliser avec un capteur de température à 2 fils, un fil sur le 5V et l'autre sur une entrée analogique (0)puis rediriger la valeur sur le moniteur et par la suite sur un afficheur lcd...

Ma question, sur quel paramètre il faut agir pour avoir une valeur juste "étalonnée en °C", car je suppose que la valeur par défaut doit être en°F?.

D'avance merci!.
Cordialement.

Ca dépend de ton capteur... Tu dois récupérer sa documentation.

Bonjour a vous
Je vais aller acheter la sonde thermomètre mercredi ou jeudi et je reviens vers vous avec les ref et doc....
@+