Sari la conținut
ELFORUM - Forumul electronistilor

Numarator de impulsuri de la 2 encodere


Vizitator MarkyZiP

Postări Recomandate

Vizitator 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 spre comentariu
  • Răspunsuri 3
  • Creat
  • Ultimul Răspuns

Top autori în acest subiect

  • sofian

    1

  • Cristiano

    1

  • Abram Burel

    1

Zile populare

Top autori în acest subiect

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 spre comentariu

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 spre comentariu

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 spre comentariu

Creează un cont sau autentifică-te pentru a adăuga comentariu

Trebuie să fi un membru pentru a putea lăsa un comentariu.

Creează un cont

Înregistrează-te pentru un nou cont în comunitatea nostră. Este simplu!

Înregistrează un nou cont

Autentificare

Ai deja un cont? Autentifică-te aici.

Autentifică-te acum



×
×
  • Creează nouă...

Informații Importante

Am plasat cookie-uri pe dispozitivul tău pentru a îmbunătății navigarea pe acest site. Poți modifica setările cookie, altfel considerăm că ești de acord să continui.Termeni de Utilizare si Ghidări