Jump to content
ELFORUM - Forumul electronistilor

Numarator de impulsuri de la 2 encodere


Guest MarkyZiP

Recommended Posts

Guest MarkyZiP

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 !!!

Link to comment
  • Replies 3
  • Created
  • Last Reply

Top Posters In This Topic

  • sofian

    1

  • Cristiano

    1

  • Abram Burel

    1

Popular Days

Top Posters In This Topic

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

Link to comment

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).

Link to comment

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).

Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now



×
×
  • 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.Terms of Use si Guidelines