Quelques explications sur le réglage de la vitesse du moteur DC :
Le moteur est alimenté par un pont en H (Pour avoir les deux sens de rotation)
Le pont en H est piloté par le signal PWM fourni par un Arduino Uno
Dans l'Arduino Uno Le paramètre PWM peut être réglé de 0 à 255
Cependant il faut que la vitesse basse ait tout même une certaine valeur pour que le moteur puisse démarrer.
J'ai pris une plage de 30 à 255 que j'affinerai avec des essais en situation.
Le curseur du potentiomètre fournit une tension comprise entre 0 et 5 V qui sera appliquée sur une broche analogique de l'Arduino Uno.
Cette broche analogique est reliée a un convertisseur Analogique / numérique 10 Bits de l'arduino qui va nous fournir une valeur numérique comprise entre 0 et 1023
Partant de cette valeur de [0 , 1023] nous devons obtenir notre paramètre [30, 255]
Pour écrire le programme permettant cela j'ai demandé à Chat GPT 4 ne m'écrire les instrutions :
Ma question à Chat GPT :
En utilisant la broche A0 d'un Arduino Uno pour entrer une tension réglable de 0 à 5 V (Potentiomètre) Je cherche à obtenir un programme me donnant un paramètre PWM de 30 à 255 quand la broche A0 passe de 0 à + 5 V. Peux tu m'écrire le programme ? (Utiliser l'instruction "Map")
Chat GPT :
Bien sûr, je peux vous aider à écrire un programme Arduino pour faire cela. Le programme lira la tension sur la broche A0, qui est connectée à un potentiomètre, et convertira cette valeur en une sortie PWM sur une broche numérique. La fonction map sera utilisée pour convertir la valeur lue (qui varie de 0 à 1023 car l'Arduino Uno utilise une résolution de 10 bits pour l'analogique) en une valeur PWM (de 30 à 255). Voici le code :
// Définir la broche de sortie PWM, par exemple D3
const int pwmPin = 3;
void setup() {
// Initialiser la broche de sortie en tant que sortie
pinMode(pwmPin, OUTPUT);
}
void loop() {
// Lire la valeur de la broche A0
int sensorValue = analogRead(A0);
// Convertir la valeur lue (0-1023) en une valeur PWM (30-255)
int pwmValue = map(sensorValue, 0, 1023, 30, 255);
// Écrire la valeur PWM sur la broche de sortie
analogWrite(pwmPin, pwmValue);
// Petite pause pour la stabilité
delay(10);
}
Comme vous pouvez le constater, Chat GPT s'en sort très bien.
Il m'a fait un premier calcul dans lequel il n'utilisait pas la commande "map" pourtant bien adaptée et il a corrigé à ma demande.
C'est magique