Bienvenue aux nouveaux arrivants sur FantasPic !
- Pensez à lire les règles durant votre visite, il n'y en a pas beaucoup, mais encore faut-il les respecter .
- N’hésitez pas à faire des remarques et/ou suggestions sur le Forum, dans le but de l'améliorer et de rendre vos prochaines visites plus agréables.
- Vous pouvez regarder votre "panneau de l'utilisateur" afin de configurer vos préférences.
- Un passage par "l'utilisation du forum" est recommandé pour connaître les fonctionnalités du forum.
--- L’équipe FantasPic ---
- Pensez à lire les règles durant votre visite, il n'y en a pas beaucoup, mais encore faut-il les respecter .
- N’hésitez pas à faire des remarques et/ou suggestions sur le Forum, dans le but de l'améliorer et de rendre vos prochaines visites plus agréables.
- Vous pouvez regarder votre "panneau de l'utilisateur" afin de configurer vos préférences.
- Un passage par "l'utilisation du forum" est recommandé pour connaître les fonctionnalités du forum.
--- L’équipe FantasPic ---
Modérateur : Jérémy
Code pour Encodeur incremental rotatif
- paulfjujo
Expert- Messages : 2597
- Âge : 73
- Enregistré en : juillet 2015
- Localisation : 01800
- Contact :
bonsoir,
voici une version pour "encodeur incremental rotatif" utilisant l'interruption RB0 pour se caler sur le signal CLK
(on l'appelellera Pulse_A) servant de reference pour l'autre signal DT ( Pulse_B).
il faut 2 fronts , 1 montant et 1 descendant pour detecter le sens de rotation et incrementer/dcrementer un compteur.
Le code est resumé à l'usage de l'encoder et d'un LCD 2x16...
Le test de l'encoder fonctionne tout aussi bien avec rajout de 2 UARTS (avec Interruptions) + mesure ADC .
reception et decodage de message UART...
Pour la demo , le programme tourne sur un cycle de 1 seconde via IT Timer0.. mais peut etre accéléré.
Le fait de gerer via interruption n'interfere pas ( ou vraiment si peu) que c'est transparant dans le main program..qui peut alors faire bien d'autre chose:
affichage amelioré OLED ? ...
Nota: il n'y a pas de filtre Hardware sur les signaux encoder
mais une tempo soft..
Tout est dans le zip...
code source + documentation incluse via les Ac (Active comments) specifiques à MikroC.
Je n'ai pas de schema particulier .. vu qu'il n'y a que 5 fils à raccorder pour l'encoder
Le LCD s'enfiche sur le PORTD de la carte.
j'ai testé OK, la routine d'interrupt encoder sur un encoder 500 pulses/ tour.
voici une version pour "encodeur incremental rotatif" utilisant l'interruption RB0 pour se caler sur le signal CLK
(on l'appelellera Pulse_A) servant de reference pour l'autre signal DT ( Pulse_B).
il faut 2 fronts , 1 montant et 1 descendant pour detecter le sens de rotation et incrementer/dcrementer un compteur.
Le code est resumé à l'usage de l'encoder et d'un LCD 2x16...
Le test de l'encoder fonctionne tout aussi bien avec rajout de 2 UARTS (avec Interruptions) + mesure ADC .
reception et decodage de message UART...
Pour la demo , le programme tourne sur un cycle de 1 seconde via IT Timer0.. mais peut etre accéléré.
Le fait de gerer via interruption n'interfere pas ( ou vraiment si peu) que c'est transparant dans le main program..qui peut alors faire bien d'autre chose:
affichage amelioré OLED ? ...
Nota: il n'y a pas de filtre Hardware sur les signaux encoder
mais une tempo soft..
Tout est dans le zip...
code source + documentation incluse via les Ac (Active comments) specifiques à MikroC.
Je n'ai pas de schema particulier .. vu qu'il n'y a que 5 fils à raccorder pour l'encoder
Le LCD s'enfiche sur le PORTD de la carte.
j'ai testé OK, la routine d'interrupt encoder sur un encoder 500 pulses/ tour.
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.
Code pour Encodeur incremental rotatif
-
Jérémy
Administrateur du site- Messages : 2725
- Âge : 45
- Enregistré en : juillet 2015
- Localisation : Dans le sud
- Contact :
Excellent Paul, merci pour ce programme de qualité .
J'avoue ne pas avoir tout compris malheureusement, mais on sent le gros niveau ....
C'est un encodeur optique ou mécanique ? un lien vers la DS ?
Pour la participation, je suis sur mon compte à rebours en ce moment , et j’ai bientôt finis
J'avoue ne pas avoir tout compris malheureusement, mais on sent le gros niveau ....
C'est un encodeur optique ou mécanique ? un lien vers la DS ?
Pour la participation, je suis sur mon compte à rebours en ce moment , et j’ai bientôt finis
Code pour Encodeur incremental rotatif
- paulfjujo
Expert- Messages : 2597
- Âge : 73
- Enregistré en : juillet 2015
- Localisation : 01800
- Contact :
C'est un encodeur optique ou mécanique ?
Mecanique, comme le tien,je suppose
voir aussi les AC ( Active Comment) dans le source C , photo du composant en passant la souris dessus le AC.( // Encoder)
En sortie d'interrupt tu dispose du sens : horaire et trigo , et du cumul de pulses comptabilisées.
Le BP de l'encorder ne sert ici qu'à faire la RAZ du comptage
le comptage est limité ici à +- 500
On pourrait aussi utiliser l'interrupt sur BP1 pour modifier le pas d''incrementation comptage
ou d'affectation du comptage à seconde ou minutes ...
question: il est ou le BP DS (datasheet) ?
VU, mais non visible en mode edition
pas de datasheet sur ce composant (Chintoque)
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.
Qui est en ligne
Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 114 invités