Krug Arduino tahometra za precizno očitavanje

Krug Arduino tahometra za precizno očitavanje

Tahometar je uređaj koji mjeri RPM ili kutnu brzinu rotirajućeg tijela. Razlikuje se od brzinomjera i brojača kilometara, jer se ovi uređaji bave linearnom ili tangencijalnom brzinom tijela, dok se tahometar zvani 'tach' bavi temeljnijim RPM-om.



Napisao Ankit Negi

Tahometar se sastoji od brojača i mjerača vremena koji obadva zajedno rade RPM. U našem projektu učinit ćemo isto, koristeći naš Arduino i neke senzore, postavit ćemo brojač i tajmer te razviti naš praktičan i lagan tah .





Preduvjeti

Brojač nije ništa drugo do uređaj ili postavka koja može brojati bilo koji redovan događaj kao što je dodavanje točke na disk tijekom rotacije. U početku su brojači građeni mehaničkim rasporedom i spojevima poput zupčanika, čegrtaljki, opruga itd.

Ali sada koristimo brojač koji ima sofisticiranije i vrlo precizne senzore i elektroniku. Timer je elektronički element koji može mjeriti vremenski interval između događaja ili mjeriti vrijeme.



U našem Arduino Uno postoje mjerači vremena koji ne samo da prate vrijeme već i održavaju neke od važnih funkcija Arduina. U Unu imamo 3 mjerača vremena pod nazivom Timer0, Timer1 i Timer2. Ovi odbrojavači imaju sljedeće funkcije - • Odbrojavanje0 - Za Uno funkcije kao što su delay (), milis (), micros () ili delaymicros ().

• Timer1 - za rad servo knjižnice.

• Timer2 - Za funkcije poput tona (), notone ().

Zajedno s ovim funkcijama, ova su 3 tajmera odgovorna i za generiranje PWM izlaza kada se naredba analogWrite () koristi u pin-u određenom za PMW.

Koncept prekida

U Arduino Uno prisutan je skriveni alat koji nam može dati pristup čitavom mnoštvu funkcioniranja poznatim pod nazivom Timer Interrupts.Interrupt je skup događaja ili uputa koji se izvršavaju kad se pozovu da prekidaju trenutno funkcioniranje uređaja, tj. Bez obzira na sve kodove koje je vaš Uno izvršavao prije, ali kada se jedan prekid zove Arduino, izvršite uputu spomenutu u prekidu.

magnet na osovini motora

Sada se Prekid može pozvati pod određenim uvjetom koji je definirao korisnik pomoću ugrađene Arduino sintakse. Koristit ćemo ovaj prekid u našem projektu koji čini naš tahometar odlučnijim i preciznijim od ostalih projekata Tahometra prisutnih na webu.

Komponente potrebne za ovaj projekt Tahometra koji koristi Arduino

• Hallov senzor efekta (slika 1)

modul senzora Hall efekta

• Arduino Uno

Arduino UNO ploča

• Mali magnet

mali magnet

• Žice kratkospojnika

• Rotirajući objekt (osovina motora)

Istosmjerni motor

Postavljanje kruga

• Postavljanje za izradu je sljedeće -

• U osovini čija se brzina rotacije mjeri ugrađen je mali magnet pomoću ljepila ili električne trake.

• Hall Effect senzor ima detektor sprijeda i 3 pina za priključke.

• Vcc i Gnd pinovi povezani su s 5 V i Gnd pinom Arduina. Izlazni pin senzora spojen je na digitalni pin 2 Uno-a radi pružanja ulaznog signala.

• Sve su komponente učvršćene u nosaču, a detektor Hall je istaknut s ploče.

Programiranje

int sensor = 2 // Hall sensor at pin 2
volatile byte counts
unsigned int rpm //unsigned gives only positive values
unsigned long previoustime
void count_function()
{ /*The ISR function
Called on Interrupt
Update counts*/
counts++
}
void setup() {
Serial.begin(9600)
//Intiates Serial communications
attachInterrupt(0, count_function, RISING) //Interrupts are called on Rise of Input
pinMode(sensor, INPUT) //Sets sensor as input
counts= 0
rpm = 0
previoustime = 0 //Initialise the values
}
void loop()
{
delay(1000)//Update RPM every second
detachInterrupt(0) //Interrupts are disabled
rpm = 60*1000/(millis() - previoustime)*counts
previoustime = millis() //Resets the clock
counts= 0 //Resets the counter
Serial.print('RPM=')
Serial.println(rpm) //Calculated values are displayed
attachInterrupt(0, count_function, RISING) //Counter restarted
}

Učitajte kod.

Znati kod

Naš tahometar koristi Hall Effect senzor Hall Effect senzor temelji se na Hallovom efektu nazvanom po njegovom otkrivaču Edwinu Hallu.

Hall Effect je pojava stvaranja napona na vodiču koji nosi struju kada se magnetsko polje uvodi okomito na protok struje. Ovaj napon generiran je zbog pomoći ove pojave u stvaranju ulaznog signala. Kao što je spomenuto, prekid će se koristiti u ovom projektu, a za pozivanje prekida moramo postaviti neko stanje. Arduino Uno ima 2 uvjeta za pozivanje na prekide-

RISING - Kada se ovo koristi, prekidi se pozivaju svaki put kad ulazni signal prijeđe iz LOW u HIGH.

FALING - Kada se ovo koristi, prekida se pozivaju kada signal ide od HIGH do LOW.

Koristili smo RISING, ono što se događa je da kada se magnet smješten u osovini ili rotirajući objekt približe detektoru Halla generira se ulazni signal i pozovu Interrupt, Interrupt pokreće funkciju Interrupt Service Rutine (ISR), koja uključuje povećanje u vrijednost brojanja i tako se brojanje odvija.

Za postavljanje tajmera koristili smo milis () funkciju Arduina i previoustime (varijablu) u korespondenciji.

Tako se RPM konačno izračunava pomoću matematičke relacije-

RPM = Brojanje / Potrebno vrijeme Pretvarajući milisekunde u minute i preslagivanje, dolazimo do formule = 60 * 1000 / (milis () - vrijeme prije) * broji.

Kašnjenje (1000) određuje vremenski interval nakon kojeg će se vrijednost RPM ažurirati na zaslonu, a to kašnjenje možete prilagoditi prema svojim potrebama.

Ova dobivena vrijednost okretaja u minuti može se dalje koristiti za izračunavanje tangencijalne brzine rotirajućeg objekta koristeći odnos v = (3,14 * D * N) / 60 m / s.

Vrijednost okretaja u minuti može se koristiti za izračunavanje prijeđene udaljenosti rotirajućeg kotača ili diska.

Umjesto ispisa vrijednosti na serijski monitor, ovaj uređaj može biti korisniji spajanjem LCD zaslona (16 * 2) i baterije radi bolje upotrebe.




Prethodno: Upravljački krug koračnog motora pomoću IC 555 Dalje: Krug digitalnog mjerača kapaciteta pomoću Arduina