Codeur incrémental et raspberry

NC: Not Conected / Non Conecté

tout simplement suis-je bête

salut,
je reviens à la charge. j’ai l’encodeur, et par sécurité, j’ai branché entre la sortie du codeur et l’entrée GPIO un convertisseur de niveau logique. Mais, après test au multimètre, l’encodeur fait bien son cycle. par contre est-ce que quelqu’un peut me dire pourquoi rien ne s’affiche dans la console lorsque j’éxècute se programme :https://github.com/modmypi/Rotary-Encoder/blob/master/rotary_encoder.py.
La je suis vraiment embêté car si j’arrive pas a faire fonctionner un programme tout près fait, je ne sais pas comment je vais réussir à en faire un moi-même;
Merci par avance

heu… quel encodeur? Tu veux bien dire encodeur ou codeur?

Désolé, j’écris trop vite et n’importe quoi, c’est un codeur désolé. si je commence à tout mélanger bonjor la compréhension.

C’est quoi ton convertisseur de niveaux logiques?
Peux tu faire un schéma de ton montage?
test au multimètre, lequel?

Je ne suis pas certain, mais je crois que c’est un programme pour donner la position et non la vitesse. En plus, il m’inspire pas…

Le convertisseur de niveaux logique c’est le code 33332 chez Gotronic
ar-convertisseur-de-4-niveaux-logiques-2595-22272
Pour le schéma, je sais pas quel logiciel il faut (compatible avec ubuntu) sinon j’en fait un à la main
J’ai pris un multimètre RMS standard, juste pour voir si il y avait bien une variation de tension entre entre le GND et la voix A du codeur. Et c’est bien le cas
Pour le programme, pour moi c’était un truc de compteur non?

voilà pour un schéma à main levé, le GPIO n’est pas représenté entièrement et le moins du codeur est bien au GND, mauvaise manip lors du tracé:blush:

Ok…

Pourquoi a tu été chercher un codeur TTL (tension de sortie 5V) alors que tu avais déjà sélectionné un codeur à sortie « collecteur ouvert » qui était parfait pour fonctionner avec le Rpi?

Ton convertisseur permet de convertir des signaux de faible tension en signaux de tension plus grande, pas de bol, c’est de l’inverse dont tu as besoin! un pont diviseur de tension sera beaucoup mieux dans ton cas.

https://www.gotronic.fr/art-convertisseur-de-4-niveaux-logiques-2595-22272.htm#complte_desc

Convertisseur de niveaux bidirectionnel permettant de convertir jusqu’à 4 signaux de 1,5 à 7 V (LV) en 4 signaux de LV à 18 V (HV).

euh bah parce qu’on m’a dit de prendre celui là.

Citation Convertisseur de niveaux bidirectionnel permettant de convertir jusqu’à 4 signaux de 1,5 à 7 V (LV) en 4 signaux de LV à 18 V (HV). Idéal pour adapter un niveau différent entre un capteur et un microcontrôleur par exemple pour utiliser un capteur 3,3 Vcc sur une carte Arduino (5 Vcc). Convient pour le bus I2C, SPI et série.
Bidirectionnel, sa veut pas dire que sa fonctionne dans les deux sens? n’empêche que sa me coûte rien de faire un pont diviseur

J’avoue que je me suis moi-même posé la question, mais en regardant le schéma de ce convertisseur, je ne suis pas convaincu.

dommage…

Oui c’est en effet dommage, je n’ai pas eu le temps de tester avec un pont diviseur, mais dès que je peut je le fait. C’est bizarre cette histoire de code. Sa fonctionne pour les autre et pas pour moi

Je ne suis pas un spécialiste en programmation, mais apparemment ce programme compte/décompte une position, je ne vois pas de division par le temps, donc pas de calcul de vitesse.

Je suis d’accord avec toi, se programme normalement doit faire un compteur du genre +1 dans un sens et -1 dans l’autre. Ce n’est pas se qui m’intéresse on est d’accord. Mais, se qui m’intéresse c’est de savoir si se code tout près fait fonctionnait chez moi. Ce qui n’est pas le cas, il y a rien dans le terminal. Bien entendu en adaptant les noms de broche à mon cas

Bonjour,

Avant d’incriminer le programme, as-tu vérifié les tensions que tu as en sortie du convertisseur,
avec un multimètre ou un oscilloscope ?

Si non, vérifier le signal en sortie du codeur.

Comme @Alynx le dit, as-tu essayé un pont diviseur ?
Attention à bien calculer/choisir les valeurs des résistances. Avant de brancher le pont diviseur aux GPIO bien vérifier la valeur mesurée de la tension au milieu du pont, et s’assurer qu’elle ne dépasse pas les 3,3V maximum.

Du coté du code Python, il me semble assez basique, je ne voit pas trop pourquoi il ne fonctionnerait pas. Pour simuler ton codeur, rien ne t’empêche de remplacer le codeur par 2 bouton poussoirs.

C’est une procédure de dépannage classique, quand quelque chose ne fonctionne pas on isole les étapes, puis on réalise des points de mesure. Quand on a un doute sur une fonction on la remplace par quelque chose de plus basique.

A+

N’oublies pas de calculer les résistances pour que le courant « à vide » du pont diviseur soit au moins égal à 10x le courant absorbé par l’entrée du Rpi, ce courant doit normalement être très faible.

Bonsoir,
merci pour les réponse, je pense que le pont diviseur sera testé demain. Les tensions en sortie du codeur sont bonnes, j’ai 5V au depard entre GND et channel A et quand je tourne , je varie entre 0 et 5V, donc déjà, le codeur et à éliminer. J’ai testé aussi au convertisseur et sa à l’aire d’être pareil enfin le sa à l’aire veut dire que il ya eu un truc bizarre quand j’ai tourné au début et après c’est revenue à la normal avec 3.29V en sortie max.
Je suis daccord pour dire que c’est bizarre que se soit le programme mais je n’arrive pas à trouver un truc simple dans le programme python pour faire une detection de fronts montants. Si vous avez un autre lien que je n’ai pas encore vu sur la detection de fronts montants en python, se serait sympas. Merci à vous et bonne soirée

Pour le programme, relis le post no 35 et le lien qui va avec :wink:

Les 0.8V de tension maxi à l’état bas de ton capteur suffisaient peut être à rendre passant le transistor MOS qui est dans ton convertisseur et donc à envoyer un étant haut en sortie quand il ne le fallait pas.

Je n’ai pas eu le temps de tester le pont diviseur, j’avais tout le câblage de la machine à faire mais demain normalement je test. Tu a peut être raison, parce que dans se cas je n’aurait pas de niveaux bas. je vais voir sa.

Bonjour,
Voilà test avec pont diviseur : pas de résultat concluant, le programme n’écrit rien dans le terminal et je ne comprend pas pourquoi. Pour le pont diviseur j’ai pris des résistances de 1,2 Kohm et 2,2 Kohm