Moniteur de série n'affiche rien ou n'importe quoi sur esp32

Bonjour ,

je suis actuellement en train de réaliser un projet sur un robot qui joue du piano.

Je dois utiliser un codeur et j'ai voulu tester un code déjà réalisé sur le meme codeur que le mien mais rien ne s'affiche sur le moniteur. J'ai donc essayé de voir si le moniteur étais le problème avec un simple code qui compte jusqu'à 10, le problème vient bien du moniteur .J'utilise un Esp 32 le problème peut venir d'ici?
Pouvez-vous m'aider.

cordialement,
Oscar2805

PS :Voici le code:


volatile long temp, counter = 0; //This variable will increase or decrease depending on the rotation of encoder
    
void setup() {
  Serial.begin (9600);

  pinMode(2, INPUT_PULLUP); // internal pullup input pin 2 
  
  pinMode(3, INPUT_PULLUP); // internalเป็น pullup input pin 3
   //Setting up interrupt
  //A rising pulse from encodenren activated ai0(). AttachInterrupt 0 is DigitalPin nr 2 on moust Arduino.
  attachInterrupt(0, ai0, RISING);
   
  //B rising pulse from encodenren activated ai1(). AttachInterrupt 1 is DigitalPin nr 3 on moust Arduino.
  attachInterrupt(1, ai1, RISING);
  }
   
  void loop() {
  // Send the value of counter
  if( counter != temp ){
  Serial.println (counter);
  temp = counter;
  }
  }
   
  void ai0() {
  // ai0 is activated if DigitalPin nr 2 is going from LOW to HIGH
  // Check pin 3 to determine the direction
  if(digitalRead(3)==LOW) {
  counter++;
  }else{
  counter--;
  }
  }
   
  void ai1() {
  // ai0 is activated if DigitalPin nr 3 is going from LOW to HIGH
  // Check with pin 2 to determine the direction
  if(digitalRead(2)==LOW) {
  counter--;
  }else{
  counter++;
  }
  }
et le code tout simple :
void setup() {
  Serial.begin(115200);
  Serial.println("Test ARDUINO");
}

void loop() {
  for (int i = 0 ; i < 10 ; i++) {
    Serial.print("compteur : ");
    Serial.println(i);
    delay(1000);
  }
  delay(10000);
}

:warning:

Post mis dans la mauvaise section, on parle anglais dans les forums généraux. ➜ déplacé vers le forum francophone.

Merci de prendre en compte les recommandations listées dans "Les bonnes pratiques du Forum Francophone”

———

votre code ressemble à une code prévu pour AVR

Bonsoir

1_L'ESP32 possède un module hardware permettant de traiter directement les encodeurs sans passer par des interruptions, une librairie d'ont je n'ai pas le nom sous la main sait faire cela.

Une autre librairie 'ESP32Encoder' gère les codeurs par interruptions; elle est disponible dans le gestionnaire de Bibliothèques

2_ la gestion des interruptions sous IDE Arduino pour ESP32 diffère des AVR, voir les deux exemples du groupe "ESP32 / GPIO"

J'ai essayer ESP32Encoder le code semble marcher mais le moniteur affiche une série de symbols.
Je pense que c'est le moniteur qui a un problème car le code commence par afficher" Encoder count:" et ceci n'apparait pas.

Je ne vois pas comment je dois déplacer?

Tu as deux codes : dans le premier il y a

et dans le second :

Ces chiffres correspondent au réglage de la vitesse de communication entre l'ESP et le PC : tu dois avoir la même valeur dans la console de l'IDE, ici :

Le plus simple est de mettre 115200 partout (dans les deux codes et dans la console).

Bonjour

vérifier que le débit (bauds) du terminal (en bas à droite) est bien identique celui programmé dans le Setup() avec Serial.begin

Edit : Grillé par @lesept !!

Je l’ai fait pour vous

Merci beaucoup !!!!

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