Arduino fordulatszámmérő áramkör a pontos leolvasásokhoz

Próbálja Ki A Műszerünket A Problémák Kiküszöbölésére





A fordulatszámmérő olyan eszköz, amely méri a forgó test fordulatszámát vagy szögsebességét. Ez különbözik a sebességmérőtől és a kilométer-számlálótól, mivel ezek az eszközök a test lineáris vagy tangenciális sebességével foglalkoznak, míg a fordulatszámmérő más néven a „tach” alapvetőbb fordulatszámmal foglalkozik.

Írta Ankit Negi



A fordulatszámmérő egy számlálóból és egy időzítőből áll, mindkettő együtt dolgozik az RPM-nek. Projektünkben ugyanezt fogjuk megtenni, az Arduino és néhány érzékelőnkkel beállítunk egy számlálót és egy időzítőt is, és fejlesztjük a praktikus és könnyű tach-t .

Előfeltételek

A számláló nem más, mint egy eszköz vagy beállítás, amely képes megszámolni minden olyan rendszeresen előforduló eseményt, mint például egy pont áthaladása a lemezben forgás közben. Kezdetben a pultokat mechanikus elrendezéssel és összekötőkkel építették, például fogaskerekek, racsnis, rugók stb.



De most kifinomultabb és rendkívül precíz érzékelőkkel és elektronikával rendelkező számlálót használunk. Az időmérő egy olyan elektronikus elem, amely képes mérni az események közötti időintervallumot vagy mérni az időt.

Az Arduino Uno-nkban vannak olyan időzítők, amelyek nemcsak nyomon követik az időt, hanem fenntartják az Arduino néhány fontos funkcióját. Az Unóban 3 időzítőnk van, Timer0, Timer1 és Timer2. Ezeknek az idõzítõknek a következõ funkciói vannak: • Timer0- Uno funkciókhoz, például késleltetés (), millis (), mikroszám () vagy delaymicros ().

• Timer1- A szervo könyvtár működéséhez.

• Timer2- Olyan funkciókhoz, mint a hang (), a notone ().

Ezekkel a funkciókkal együtt ez a három időzítő felelős a PWM kimenet előállításáért is, amikor az analógWrite () parancsot használják a PMW kijelölt tűjében.

A megszakítások fogalma

Az Arduino Uno alkalmazásban van egy rejtett eszköz, amely hozzáférést nyújthat számunkra a működéshez, amelyet időzítő megszakításnak nevezünk. A megszakítás olyan események vagy utasítások összessége, amelyeket akkor hajtanak végre, amikor hívják őket az eszköz jelenlegi működésének megszakításával, azaz nem számít, mi kódokat, amelyeket az Uno korábban végrehajtott, de ha egy megszakítást Arduino-nak hívnak, hajtsa végre a megszakításban említett utasítást.

mágnes a motor tengelyén

Most a megszakítást a felhasználó által meghatározott feltételekkel lehet meghívni a beépített Arduino Syntax segítségével. Ezt a megszakítást fogjuk használni projektünkben, amely a fordulatszámmérőnket határozottabbá és pontosabbá teszi, mint a weben lévő másik Tachometer projekt.

Ehhez a fordulatszámmérő projekthez szükséges alkatrészek az Arduino segítségével

• Hall-effektus érzékelő (1. ábra)

hall effekt érzékelő modul

• Arduino Uno

Arduino UNO tábla

• Kis mágnes

kis mágnes

• Áthidaló vezetékek

• Forgó tárgy (motor tengely)

DC motor

Áramkör beállítása

• A létrehozás beállítása a következő:

• A tengelyben, amelynek forgási sebességét meg kell mérni, ragasztópisztollyal vagy elektromos szalaggal kell felszerelni egy kis mágnessel.

• A Hall Effect érzékelő elülső részén található egy érzékelő és 3 érintkezős csatlakozó.

• A Vcc és a Gnd csapok az Arduino 5V-os és a Gnd-tűjéhez vannak csatlakoztatva. Az érzékelő kimeneti tüskéje az Uno digitális csatlakozójához van csatlakoztatva a bemeneti jel biztosításához.

• Minden alkatrész egy szerelőlapon van rögzítve, és a Hall detektor ki van emelve a tábláról.

Programozás

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
}

Töltse fel a kódot.

Ismerje a kódot

Fordulatszámmérőnk a Hall-effektus érzékelőt használja. A Hall-effektus-érzékelő a Hall-effektuson alapszik, amelyet felfedezőjéről, Edwin Hall-ról kaptak.

A Hall-effektus a feszültség keletkezésének jelensége egy áramvezető vezetékben, amikor a mágneses mező merőleges az áram áramára. Ez a jelenség miatt generált feszültség segít a bemeneti jel előállításában. Amint említettük, a megszakítást ebben a projektben fogjuk használni, hogy megszakítás hívásához be kell állítanunk néhány feltételt. Az Arduino Uno-nak 2 feltétele van a megszakítások hívására -

RISING - Ennek használatakor a megszakítást minden alkalommal meghívják, amikor a bemeneti jel LOW-ról HIGH-ra vált.

FALING - Ennek használatakor a megszakítást hívják, amikor a jel HIGH-ról LOW-ra vált.

A RISING-et használtuk, mi történik azzal, hogy amikor a tengelybe vagy a forgó tárgyba helyezett mágnes közel kerül a Hall-detektorhoz. A bemeneti jel generálódik és az Interrupt hívásra kerül, az Interrup elindítja az ISR (Interrupt Service Routine) funkciót, amely magában foglalja a a számlálás értéke és így a számlálás megtörténik.

Az időzítő beállításához az Arduino és a previoustime (változó) millis () függvényét alkalmaztuk.

Az RPM így végül kiszámításra kerül a matematikai összefüggés alapján.

RPM = Számlálás / Eltöltött idő Az ezredmásodpercek percekre és átszervezésre való átváltása a = 60 * 1000 / (millis () - previoustime) * számlálási képletre jut.

A késleltetés (1000) határozza meg azt az időintervallumot, amely után az RPM értéke frissül a képernyőn, ezt a késleltetést az Ön igényei szerint állíthatja be.

A kapott RPM ezen értékét tovább lehet használni a forgó tárgy tangenciális sebességének kiszámításához a v = (3,14 * D * N) / 60 m / s összefüggés segítségével.

Az RPM értéke felhasználható egy forgó kerék vagy tárcsa által megtett távolság kiszámítására is.

Az értékek soros monitorra történő nyomtatása helyett ez a készülék hasznossá válhat egy LCD kijelző (16 * 2) és akkumulátor csatlakoztatásával a jobb használat érdekében.




Előző: Léptetőmotor meghajtó áramköre az IC 555 segítségével Következő: Digitális kapacitásmérő áramkör az Arduino használatával