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);
}
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.
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 :