Jump to content
ELFORUM - Forumul electronistilor

Tahometru


Guest

Recommended Posts

Ma poate cineva lamuri..daca vreau sa fac un tahometru, cu attachInterrupt(), fara sa punem problema de cod, ce frecventa pot citi maxim. (RPM) cu un Arduino UNO ?

Vreau sa fac un ECU pentru un motor (~20.000RPM) pe benzina. Aprinderea electronica...

Edited by Guest
Link to comment

Daca reusesti sa mentii intarzierile cauzate de apelarea intreruperii, durata continutului intreruperii si iesirea din intrerupere in limita a circa 10us atunci ar putea fi OK (ai la dispozitie aprox.3ms intre doua intreruperi). Poate ar fi mai bine sa folosesti programarea direct in C (Arduino are obiceiul de a adauga linii de cod suplimentare).

Link to comment

In principiu poti determina turatia unui motor in doua feluri: contorizand impulsuri intr-o perioada cunoscuta de timp SAU masurand durata intre doua impulsuri consecutive.

Functie de frecventa acestor impulsuri poti sa alegi varianta care ofera precizie mai buna.

Ca exemplu eu am folosit a doua metoda pt. a masura turatia motoarelor de barca preluand impulsuri de la o bujie sau de la iesirea bobinei de inductie (divizare cu 2, 1 sau 1/2 functie de sursa impulsurilor si tip de motor).

 

Link to comment

din cauza ca e un domeniu larg de frecvente ai nevoie de cel putin 24 biti. Cu timer1 pe 16 biti ai limitari destul de mari la masurarea turatiei. De pilda pentru un clk de 8MHz, folosind un prescaler clk/256, limitele sunt de la 28,6 rpm la 1875000 rpm. Pentru clk/1024 ai de la 7,15 rpm pana la 468750 rpm. Dar ca sa iti arate decent, turatiile mari trebuiesc reduse cu cel putin 10 deci o sa ai intre 7,15 rpm si ceva pe la 45000 rpm. Pentru clk/1024, daca vrei sa masoare corect sub 7,15 rpm trebuie neaparat sa folosesti 24 biti prin adaugarea a unei locatii de memorie la timer1. In asm asta se face usor dar in C...

Daca folosesti un cristal pe 4MHz si o sa ai de la 3,5 rpm pana la 22500 rpm.

Daca nu stii cum se face, iti pot spune exact ce intreruperi trebuie sa folosesti si cum sa setezi toti bitii din registri care tin de acele intreruperi.

Edited by cimitavita
Link to comment
Acum 15 ore, Aw Genetix a spus:

Vreau sa fac un ECU pentru un motor (~20.000RPM) pe benzina

 

Cred ca solutiile oferite sunt de ajuns (unele sunt chiar excesive) pentru ca userul sa depuna si putin efort de a cauta pe Google rezolvarea tehnica a restului de probleme pe care le ridica un tahometru.

Ca de obicei, il indemn pe userul initiator ca mai intai sa se documenteze si apoi sa puna intrebari. Stiu ca timpul lui este pretios, prea pretios ca sa isi piarda timpul cu cautarile, dar, in acelasi timp, si timpul nostru este la fel de pretios ca al lui (nu ca in Orwell...) si cred ca am prefera sa-l pierdem altfel ...

 

L.E.: Pentru "framantarile" userului AW Genetix am un hint: Nick Gammon

Edited by nico_2010
Link to comment

va mulțumesc pentru efort. 

nico, nu am inteles aluzia cu Nick Gammon, pare o mica răutate dar mulțumesc pentru dezbatere. 

 

PS: google nu stie prea multa romana. engleza e mai dificil la mine. 

Link to comment

stiu asta. doar ca nu intelegeam ce sa caut acolo... eu voiam doar o parere legata de potenta lui 328 adica arduino uno, de a manevra întreruperi la frecventa in cauza si cu, cod nativ. 

 

Va mulțumesc. 

Link to comment
Acum 4 ore, Aw Genetix a spus:

stiu asta. doar ca nu intelegeam ce sa caut acolo... eu voiam doar o parere legata de potenta lui 328 adica arduino uno, de a manevra întreruperi la frecventa in cauza si cu, cod nativ. 

 

Poate, doar sa stii ce vrei de la el! Eu as renunta la Arduino IDE daca te preocupa faptul ca Atmega328 la 16MHz programat in "limbajul" Arduino este prea lent.

1 oră în urmă, mihaicozac a spus:

Arduino 328 se mai poate iuţi puţin, există bootloadere pt. 20 şi 24MHz, raportările sunt pozitive, procesorul lucrează stabil. Şi eu am folosit la o aplicaţie varianta de 20MHz că la 16 eram cam la limită, şi merge perfect.

ATMega328 lucreaza pana la 20MHz "nativ", cum ar apune colegul nostru. Poti urca pana 28MHz fara probleme prea mari.

Link to comment

Nu ar fi o problema sa renunt eu la Arduino IDE, doar ca...e un proiect pentru licenta, si nu stie altfel domnul student....

Edited by Guest
Link to comment

nu trebuie schimbat si cristalul la 20MHz  si capacitorii de 33nF ? 

asta trebuie sa aiba arduino uno si-atat...

Edited by Guest
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