Aïe !
A mon avis, il faut d'abord commencer par monter ton moteur sur un banc de test, comme sur ma vidéo, ou entre les mâchoires d'un étaux, comme on le voit souvent.
Tu dois être capable de tester ton moteur et ta carte avant tout montage sur le robot.
Non, tu ne dois pas mettre de jumper, car tu utilises une commande avec un filtre passe bas sur l'entrée potentiomètre de la carte (entrée notée A sur ta photo).
Et pour la même raison, non, tu ne dois pas utiliser le potentiomètre de la carte car justement tu utilises le filtre passe bas sur l'entrée potentiomètre.
Le potentiomètre de la carte doit être calé à gauche ( si je me positionne par rapport à ta photo).
Tout est dans la vidéo, https://www.robot-ma...board/?p=116963 Tu peux voir concrètement les photos du câblage à partir de 4'56".
Dans ma vidéo, j'utilise un potentiomètre tout bête que j'ai connecté sur une entrée analogique de l'Arduino (la pin A7). Pour les tests, c'est ce potentiomètre qui commande la vitesse.
Sur mon robot, c'est ma radiocommande qui fait varier la vitesse.
Tu peux voir le code avec commande de la vitesse avec un potentiomètre à 2'05", mais je te le mets ici. Ce code est archi simple !
Le potentiomètre de commande de la vitesse est connecté à la pin A7 et la commande de direction à la pin A2.
Le filtre passe bas est connecté à la pin 3 et la direction à la pin 2.
J'ai l'habitude d'utiliser un bouton pour lancer le programme. Ce bouton est connecté à la pin A0, le code est à la ligne 15.
Dans la fonction loop():
- je lis la valeur de mon potentiomètre de commande vitesse
- je convertis cette valeur analogique (0 à 1023) en une valeur PWM (0 à 255)
- j'écris cette valeur PWM sur la sortie du filtre passe bas (pin 3)
- j'écris la valeur du bouton de commande de direction (pin A2) sur la sortie direction (pin 2)
// HBM-LPF- HoverBoard LowPass Filter and Potentiometer Control with ZS-X11H controller - 08/10/2022
const int START_PGM_BT = A0; // Start pgm button
const int PWM_PIN_OUT = 3; // 490Hz PWM Output
const int POT_PIN_IN = A7; // Analog potentiomer input
const int DIR_PIN_BT = A2; // Direction button
const int DIR_PIN_OUT = 2; // Direction Output
void setup() {
Serial.begin(9600);
pinMode(START_PGM_BT,INPUT_PULLUP);
pinMode(DIR_PIN_BT,INPUT_PULLUP);
pinMode(DIR_PIN_OUT, OUTPUT);
pinMode(PWM_PIN_OUT, OUTPUT);
Serial.print("\n\t To start pgm, click on the Start button"); while(digitalRead(START_PGM_BT)); delay(400); Serial.print("\n\t Started");
}
void loop() {
int potValue = analogRead(POT_PIN_IN); // read the potentiometer value
int PWM = map(potValue,0,1023,0,255); // convert potentiometer value to PWM value
analogWrite(PWM_PIN_OUT, PWM); // write PWM value to output with LowPass Filter
digitalWrite(DIR_PIN_OUT, digitalRead(DIR_PIN_BT)); // change direction when button actived
}