Répondre à la discussion
Affichage des résultats 1 à 4 sur 4

Contrôler un ESC en PWM alors qu'il fonctionne en Dshot



  1. #1
    Corentin49

    Contrôler un ESC en PWM alors qu'il fonctionne en Dshot

    Bonsoir ^^.
    Actuellement élève en deuxième année de classe prépa je réalise actuellement des tests de performance de moteurs brushless.
    Ce qui m'intéresse c'est avant tout la consommation de mes moteurs en fonction de leur vitesse de rotation.
    Mais je souhaiterai aussi connaître précisément la valeur de tension qui est envoyée dans mon moteur au travers de mon ESC ()

    Donc j'utilise un programme Arduino où j'envoi à mon ESC un rapport cyclique de PWM mais vu que l'ESC est censé fonctionner en Dshot j'imgagine bien le problème :/

    Mais alors pourquoi est-ce que mon moteur tourne quand même ? ( avec des valeurs de vitesses plus faibles...)
    Y a t-il moyen de communiquer en Dshot avec mon ESC via Arduino ?

    Je vous laisse mon programme (pour information la vitesse de mon moteur est mesurée à l'aide d'une interruption, un aimant est en fait sur l'axe du moteur et un capteur effet hall détecte son passage à chaque tour). Merci d'avance

    Code HTML:
    #include <Servo.h>
    int valeur = 0; // Variable potentiomètre
    Servo esc ;
    int capteurpin = 2;
    unsigned long temps = 0;
    unsigned long duree = 1000;
    volatile unsigned int compteur = 0 ;
    
    void setup() {
      esc.attach(8);
      esc.writeMicroseconds(1000); // On attribue la valeur min
      Serial.begin(9600);
      temps = millis();
      attachInterrupt(digitalPinToInterrupt(capteurpin),increment,CHANGE);
      }
    
    
    void loop() {
      // Lecture du potentiomètre pour régler la vitesse
      valeur = analogRead(A0);
      int valeuresc = map (valeur , 0 , 1023, 1000, 2000);
      esc.writeMicroseconds(valeuresc); // On attribue la variable mappée qu'on attribue à l'esc
     
    
      if (millis() - temps > duree) {
        temps = millis();
        Serial.println(compteur);
        Serial.println(valeuresc);
        compteur = 0;
      }
     }
    void increment() {
      compteur++;
      }
    
      

    -----


  2. #2
    jiherve

    Re : Contrôler un ESC en PWM alors qu'il fonctionne en Dshot

    bonjour
    de ce que j'ai compris le DSHOT(nom pompeux pour designer une liaison série) est totalement numérique alors que la PWM c'est plus proche de l'analogique, il y a donc fort peu de chance que cela puisse fonctionner . Ceci n’empêche pas pour autant que certaines valeurs de PWM soient interprétées comme un message valide.
    Pour "causer" de façon fiable il faudrait créer une liaison série ce qui n'est pas trop compliqué avec un µC mais les interfaces série du micro embarqué sur Arduino ne savent pas gérer par hard plus de 9bit, il faudra donc passer par du soft(en assembleur of course) ce qui sera lent.
    data sheet ESC ?
    JR
    l'électronique c'est pas du vaudou!

  3. #3
    Corentin49

    Re : Contrôler un ESC en PWM alors qu'il fonctionne en Dshot

    Rebonjour,
    Je n'ai pas trouvé clairement le datasheet de mon ESC mais voici le modèle : https://www.amazon.fr/Zantec-LittleB...ay&sr=8-1&th=1

  4. #4
    jiherve

    Re : Contrôler un ESC en PWM alors qu'il fonctionne en Dshot

    Bonsoir
    cela n'aide pas beaucoup mais des modèles voisins semblent compatible de plusieurs protocoles.
    JR
    l'électronique c'est pas du vaudou!

Sur le même thème :

Discussions similaires

  1. [Divers] Alarme congélateur spheris alors que tout fonctionne
    Par Emilia 200314 dans le forum Dépannage
    Réponses: 9
    Dernier message: 03/10/2018, 18h48
  2. Réponses: 26
    Dernier message: 07/04/2015, 10h31
  3. [Thermique] Pas de chauffage alors que la chaudière fonctionne ! [résolu]
    Par Aleroy50 dans le forum Dépannage
    Réponses: 9
    Dernier message: 04/12/2012, 18h59
  4. Grand Servomoteur fonctionne pas, alors que petit fonctionne
    Par victorjung dans le forum Électronique
    Réponses: 3
    Dernier message: 04/02/2011, 21h45
  5. Réponses: 1
    Dernier message: 30/10/2006, 12h06