Encodeur en quadrature + sn74hc74n

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

Re ! Il n'y a pas moyen, j'ai rajouter un condenstuer de 100µ sur l'alim du composant, mais ca ne change rien...
:~

Bonjour !

Voila, apres plusieur recherche (semi infructueuse) sur le traitement du signal en quadrature des encodeurs. J'en suis arrivé a ecrire ce bout de code (pour le principe et sans bascule D)

if (chanel_a ==0 && chanel_b == 0) 
{ if (chanel_a==0 && chanel_b == 1) 
  {sens=1; }} 
else 
{ sens = 0; }

Si j'integre ce bout de code dans une interuption, est ce que ca marchera ??
Je ne suis servis de ça :

Uploaded with ImageShack.us

J'espere que quelqu'un me dise oui !
Ou que quelqu'un repondra ...

Bonjour,
pourquoi t'inquietes-tu du sens de rotation de ton encodeur ?. Il est fixe sur l'axe d'un moteur dont TU decides du sens de rotation.
Il ne faut pas confondre codeur (qui est fixe sur un moteur) et encodeur (qui est tourne a la main dans n'importe quel sens et a n'importe quelle vitesse)
Il te restes juste a compter les transitions des signaux A et B pour savoir de quel angle ton moteur a tourne !!
Et voila
Bon boulot
Jacques

Merci de ta reponse Jacques.

Je ne souhaite pas connaitre l'angle de l'axe, mais le sens en traintant les signaux des codeur A et B.
Par exemple, je met mes moteur en route via une pile (connecté a rien d'autre) et connecte mes encodeur sur l'arduino, et l'arduino m'affiche le nombre de tick, qui me permet de determiner le nombre de tour et le sens de rotation de l'axe.
Voila.
Donc, est ce que cet extrait de code peut marcher ? etant donné que je ne trouve pas asser d'information concernat la mise en oeuvre des 74hc74.
Merci.

J'ai essayé mon bout de code... je l'ai tourné dans tout les sens pendant 4hr..... Sans resultat... Je me demande si c'est possible....

Si c'est possible ..... de faire quoi ?

Pourrais-tu nous expliquer depuis le debut ce que tu voudrais bien faire.
On a eu droit a un moteur, puis un encodeur, puis un HC74, puis un bout de code, ... c'est un peu confus.

Si tu veux etre aide, il faut au minimum presenter clairement ton projet !

Jacques

Si c'est possible de detecté le sens de rotation du moteur via les codeurs.
Le 74hc74 devai me permettre de me faciliter la tache, en m'indiquant le sens de rotation. Mais comme ca ne marche pas, je me suis penché sur la detection de sens sans ce composant, d'ou le bout de code.

MON Projet = Detecter le sens de rotation d'un moteur via des codeurs.

Voila, j'espere que maintenant c'est clair
(meme si sa la toujours été pour moi, mais vous ete pas dans ma tete XD )

Oui c'est parfaitement possible. On te le dit depuis le 22 decembre 2011 dans une autre discussion que tu avais initiee.
Il ne faut pas dire que cela ne marche pas avec un HC74, il faut dire que tu n'es pas arrive a le faire marcher.
Maintenant, quand on lit ton dernier message, on a l'air de t'embeter, alors je te laisse a tes elucubrations.
Jacques

C'est ca, @+
Vive l'ambiance !

On te le dit depuis le 22 decembre 2011 dans une autre discussion que tu avais initiee

Il aurait fallu le dire plus tôt. On peut pas deviner et on ne connait pas tout l'historique du forum.
Dans la doc de ton moteur(celle qu'Artouste a donnée), il est indiqué d'utiliser des pullup de 1k sur les sorties channel A et B.

Si on se réfère à la doc du moteur et au schéma que tu as donné au début de ce fil de discussion si:
channel A est connecté sur la broche CK de la bascule
channel B est connecté sur le D de la bascule
alors la sortie Q de la bascule doit être à 1 lorsque tu fais tourner le moteur dans le sens des aiguille d'une montre
et la sortie Q de la bascule doit être à 0 lorsque le moteur tourne dans le sens inverse des aiguilles d'une montre.

Ce montage est sûr. Il doit fonctionner. En fait si le montage avec la bascule D qui est très simple (et moins sujet aux problèmes qu'un morceau de code qui fonctionne sous interruption) ne donne pas de résultat satisfaisant, ce n'est même pas la peine d'essayer de faire fonctionner le truc sur l'arduino avec des IT.
Si tu n'arrives pas à le faire fonctionner correctement (pour autant que la câblage du circuit soit correct) alors je pense qu'il y a un problème dans le capteur de rotation.

Ou alors ce n'est pas la bonne doc dans le premier fil de discussion que tu avais ouvert.

alors la sortie Q de la bascule doit être à 1 lorsque tu fais tourner le moteur dans le sens des aiguille d'une montre
et la sortie Q de la bascule doit être à 0 lorsque le moteur tourne dans le sens inverse des aiguilles d'une montre

Oui, c'est ca, mais ca marche que dans un sens, j'ai que des 1 dans un sens et des 1 et 0 dans l'autre.
Merci

Je ne peux que répéter ce que j'ai dit précédemment. Il y a soit une erreur de câblage soit une panne de l'encodeur (ou de la bascule).

J'ai essayé avec une autre bascule.... resultat identique....
pfff....
1clr --> +5v
1pre -->+5v
D --> codeur A +pull up -->arduino comptage (interupt)
clk --> codeur B + pull up
Gnd --> gnd
Q ou /Q --> arduino sens

....