Go Down

Topic: Contrôle moteur/encodeur Arduino + L298N (Read 2087 times) previous topic - next topic

yaken

#15
Aug 03, 2018, 07:00 pm Last Edit: Aug 03, 2018, 09:41 pm by yaken
Je viens de tester une autre méthode et le résultat est identique (environ 11 000 impulsions par tour de l'arbre de sortie pour encoderValue)

Code: [Select]

void updateEncoder(){
  int MSB = digitalRead(codeurPinA); //MSB = most significant bit
  int LSB = digitalRead(codeurPinB); //LSB = least significant bit
 
  int encoded = (MSB << 1) |LSB; //converting the 2 pin value to single number
  int sum  = (lastEncoded << 2) | encoded; //adding it to the previous encoded value
 
  if(sum == 0b1101 || sum == 0b0100 || sum == 0b0010 || sum == 0b1011) encoderValue ++;
  if(sum == 0b1110 || sum == 0b0111 || sum == 0b0001 || sum == 0b1000) encoderValue --;
 
  lastEncoded = encoded; //store this value for next time
}



EDIT : Je viens encore de tester une nouvelle méthode et toujours le même résultat tick_codeur s'envole vers les 10 000 très rapidement.

Code: [Select]

#include <Encoder.h>
Encoder myEncoder(2,3);


void updateEncoder(){
    tick_codeur = myEncoder.read();
}

liveforever

#16
Oct 19, 2019, 10:16 pm Last Edit: Oct 19, 2019, 10:24 pm by liveforever
petite question de debutant :

A quoi servent les 2 resistances svp ?
Ca evite de passer par du code Pull up d'arduino ?

Go Up