Jump to content
ELFORUM - Forumul Electronistilor
Sign in to follow this  
MarkyZiP

Numarator de impulsuri de la 2 encodere

Recommended Posts

Hello !!!

 

Va propun spre rezolvare urmatoarea problema:

 

- avem 2 encodere care la o rotatie furnizeaza 250 de impulsuri (TTL);

- aceste encodere se afla montate pe axul a doua valturi ce sunt actionate de motoare (fiecare valt cu motorul sau);

- mai stim ca unul din valturi se invarte ceva mai repede decat celalalt (cu 10 % pana la 60%), viteza valturilor intre 10 rpm si 120 rpm;

- Cum se poate masura viteza data de cele 2 encodere si afisa (pe un afisor cu LED-uri) diferenta dintre ele (eventual diferenta data in procente).

 

Cu un singur PIC sa faci doua task-uri presupun ca e o provocare. Eu am incercat cu instructiunile "btfss" sau "btfsc" pentru o perioada de timp dupa care sa afisez dar apar probleme mari mai ales daca se schimba viteza si nu mi se pare ca masurarea ar avea o acuratete prea buna.

 

Va multumesc si va astept cu idei !!!

Share this post


Link to post
Share on other sites

Se poate face simplu asa :iesirile celor doua encodere le pui la intrarea a doua timere (TMR0 si TMR1)si la fiecare secunda citesti valoarea din ele si o afisezi pe display cu leduri

Share this post


Link to post
Share on other sites

O chestie simplificatoare ar fi sa desparti masurarea de calcul si afisare. Adica o perioada (sa zicem pentru simplitate 1 secunda) numeri si o alta perioada calculezi ce trebuie si afisezi.Avand in vedere "generozitatea" numarului de impulsuri oferite de traductori si vitezele de lucru, probabil ca perioada e mult mai mica (de exemplu 10ms), dar suficient de mare pentru a nu avea prea multe griji referitoare la durata calculeleor si afisarii.In conditiile astea, un "interrupt on change" poate fi suficient si merge chiar si pentru mai multe motoare (fiecare cu pinul lui).Totusi, avand in vedere cele circa 30K impulsuri pe secunda (33us), chiar si la un clock de 20KHz e nevoie ca traductorul sa ofere semnal "pur".In conditiile astea, numaratoarea poate avea loc chiar si la 4KHz. Un PIC16F630 ar putea fi suficient (7+1 biti afisaj, 2 intrare), daca te multumesti cu XX% (ceea ce inseamna ca ceasul intern are o "precizie" suficienta).

Share this post


Link to post
Share on other sites

Pentru a simplifica software-ul, foloseste modulele CCP (de ex. cu un 18F242, eventual cu prescaler 1:16), in felul asta poti face linistit calculul si afisarea simultan. Alternativ, poti folosi un numarator hardware care sa reduca frecventa pulsurilor (similar cu prescalerul de la modulul CCP).

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.