Encodeur en quadrature + sn74hc74n

Salut,

Ca y est j'ai ma bascule D (en fait j'en ai deux) sn74hc74n

Donc j'ai 'fait les branchements, si quelqu'un qui s'y connait la dedans peut me dire si c'est bien ca, ca serai cool, merci.

"Nous positionnerons par défaut /CLR et /PR au niveau haut, le canal A est branché sur l'entrée CK, et le signal B de l'encodeur est envoyé sur la patte D"
Pour que ce soit au niveaux haut, j'ai connecter au Vin C'est bien comme ça ?
Merci

Voici comment il dise de branché sur Fribotte :

Voila la denomination des broche de la datasheet :

Et voici mes connections:

Lien vers la datasheet :SN74HC74N datasheet(1/16 Pages) TI | DUAL D-TYPE POSITIVE-EDGE-TRIGGERED FLIP-FLOPS WITH CLEAR AND PRESET
Fribotte Fribotte : Base de données technique - Réalisation d\\\'un variateur

Merci

Yep!

Tes photographies ne sont pas accessibles :

[#10171] Vous n'avez pas la permission de voir cette pièce jointe

(perso, j'ai pas de compte chez robotmaker...)

Nous allons donc avoir du mal à juger de tes connections.

Pourrais-tu publier tes images chez un hebergeur (de ton choix) auquel nous aurions tous accés !!!

@+

Zoroastre.

Up, j'ai edité, mais on ne voit pas les photos, jusque un link.

Merci

Bonjour
Bizarre ,car c'est bon de mon coté :wink:
Tous les liens fonctionnent
A+

Pour que ce soit au niveaux haut, j'ai connecter au Vin

CLR et PRE à Vcc (=> 5V ARDUINO) pas au Vin de l'Arduino

Pourquoi câbler les deux bascules si une seule suffit ?

Oula.... J'ai pas connecté au Vin de l'arduino mais au Vin du 74hc74, cad le +5v.
Desolé !
IL faut un demi 74hc74 par moteur.

Merci de vaut reponse.

Bonjour !

Donc, le cablage du74hc74 est theoriquement bon, MAIS, il ne detecte pas le sens ...

Voila mon code, si ca peut aider.

// avec le 74hc74

volatile int sens;
#define encoder0PinA  2
volatile double comp=0 ;


void setup (){

Serial.begin (115200);
attachInterrupt (0, comptage,FALLING);
  pinMode(encoder0PinA, INPUT);
  pinMode (3,INPUT);
  pinMode (3,HIGH);
  //turn on pullup resistor
  digitalWrite(encoder0PinA, HIGH);
  pinMode (13,OUTPUT);
}
void loop (){
  
}




void comptage ()
{
  sens = digitalRead (3);
  if (sens == 1)
  { comp ++; }
  else if (sens ==0)
  { comp -- ; }
   
Serial.print (comp);
Serial.print("         ");
   Serial.print ("Sens =");
   Serial.println (sens, BIN);
  
}

Si quelqu'un peut m'aider..
Thanks

Ne mélangeons pas les problèmes. La détection de sens et purement hardware. Il faut utiliser des moyens hardware pour valider. Cela évite de mettre au point un soft et du hard en même temps.
Pour voir le sens détecté par ton montage une LED sur la sortie de la bascule devrait suffire. Ou mieux 2 LED tête-bêche ente les sorties Q et /Q de la bascule (sans oublier l'inévitable résistance).

Ok, merci. J'essai de suite.

Tu as raison, seulement une seul led est allumé, et l'est toujours..

Merci

Une remarque me vient as-tu bien mis des résistances de pullups sur les entrées CK et D (enfin je dis pullup en supposant que le commun de l'encodeur est à la masse)

Non, il n'en parle pas sur le site.

Jesis:
Non, il n'en parle pas sur le site.

Bon et bien maintenant tu sais ce qui te reste à essayer

Victoire ! C'est bien ca ! J'ai rajouter des pull up de 4.7k.

La led s'allume en marche avant et s'eteint en marche arriere. Cepandant ma led et branche a Q et non /Q (Q-->led-->gnd)

Grand merci a toi !

Edit: en faite je dit des betise, la led clignote trés rapidement en marche avant; je m'en suis rendu compte quand j'ai envoyé mon code, la broche sens me renvoie 0 en marche arriere et des 1 et des 0 de facon aleatoire en marche avant... Pull up trop petite ??

Bon, meme avec des pull up de 10k ca fait pareil...

Une idée ? (je ne suis pas expert dutout en la matiere...)

Enfete, donc, il manque plein de detaile sur le plans du shemas de Fribotte.....

Encodeur optique ou mécanique?

Un encodeur mécanique peut générer des rebonds. Ce qui envoie plusieurs impulsions sur l'entrée d'horloge ou qui fait que le signal sur D n'est pas stable lors du front montant de CK. Pour "soigner" ça, avec des pullup de 4,7k, il faudrait placer des condensateurs de filtrage entre les entrées et la masse. Je pense que des condensateurs de l'ordre 47nf devraient faire l'affaire.

Ok, merci ,je vais essayé....
Mais encodeur sont a capteur Hall.

Avec des encodeur à effet Hall tu ne devrais normalement pas avoir de rebonds.
La liaison de masse entre les capteurs et l'arduino est-elle bonne?
Les niveaux en sortie de l'encodeur sont-ils corrects :
niveau 0 < à 1,5V
niveau 1 > à 3V

L'alimentation de ton 74HC74 est-elle de bonne qualité?
As-tu placé un condensateur de découplage sur les bornes d'alimentation du 74HC74?

la sortie de chaque codeur est bonne, car j'ai deja fait des comptage avec les deux.

Le 74hc74 et alimenté par l'arduino, il n'y a pas de conensateur .
Merci