Obvod tachometra Arduino pre presné odčítanie

Vyskúšajte Náš Nástroj Na Odstránenie Problémov





Tachometer je zariadenie, ktoré meria otáčky alebo uhlovú rýchlosť rotujúceho telesa. Líši sa od rýchlomeru a počítadla kilometrov, pretože tieto zariadenia sa zaoberajú lineárnou alebo tangenciálnou rýchlosťou tela, zatiaľ čo tachometer a „k“ sa zaoberajú zásadnejšími otáčkami.

Autor: Ankit Negi



Tachometer sa skladá z počítadla a časovača, ktoré obidve tieto jednotky poskytujú RPM. V našom projekte urobíme to isté, pomocou nášho Arduina a niektorých senzorov nastavíme počítadlo aj časovač a vyvinieme našu šikovnú a ľahkú tachograf .

Predpoklady

Počítadlo nie je nič iné ako zariadenie alebo nastavenie, ktoré dokáže počítať každú určitú pravidelne sa vyskytujúcu udalosť, ako je prechod bodky na disk počas rotácie. Počítadlá sa spočiatku vyrábali pomocou mechanického usporiadania a spojení, ako sú ozubené kolesá, západky, pružiny atď.



Teraz však používame počítadlo, ktoré má sofistikovanejšie a veľmi presné snímače a elektroniku. Časovač je elektronický prvok, ktorý je schopný merať časový interval medzi udalosťami alebo merať čas.

V našom Arduino Uno sú časovače, ktoré nielen sledujú čas, ale zachovávajú aj niektoré dôležité funkcie Arduina. V Uno máme 3 časovače s názvom Timer0, Timer1 a Timer2. Tieto časovače majú nasledujúce funkcie - • Timer0 - pre funkcie Uno ako delay (), millis (), micro () alebo delaymicros ().

• Timer1 - pre prácu v servo knižnici.

• Časovač2 - pre funkcie ako tón (), nie jeden ().

Spolu s týmito funkciami sú tieto 3 časovače tiež zodpovedné za generovanie výstupu PWM, keď sa v kolíku určenom pre PMW použije príkaz analogWrite ().

Koncepcia prerušení

V Arduino Uno je prítomný skrytý nástroj, ktorý nám umožňuje prístup k celému množstvu funkcií, ktoré sú známe ako Timer Interrupts. Prerušenie je skupina udalostí alebo pokynov, ktoré sa vykonajú pri volaní prerušenia aktuálnej činnosti zariadenia, tj bez ohľadu na to, čo kódy, ktoré vaše Uno predtým vykonávalo, ale akonáhle sa Prerušenie volá Arduino, vykonajte inštrukciu uvedenú v Prerušení.

magnet na hriadeli motora

Teraz je možné prerušenie volať za určitých podmienok definovaných používateľom pomocou zabudovanej syntaxe Arduino. Toto prerušenie budeme používať v našom projekte, vďaka ktorému bude náš tachometer rezolútnejší a presnejší ako iný projekt tachometra na webe.

Komponenty potrebné pre tento projekt tachometra pomocou Arduina

• Hallov snímač (obr. 1)

modul snímača Hallovho efektu

• Arduino Uno

Doska Arduino UNO

• Malý magnet

malý magnet

• Prepojovacie vodiče

• Rotujúci predmet (hriadeľ motora)

Jednosmerný motor

Nastavenie obvodu

• Nastavenie vytvárania je nasledujúce -

• Na hriadeli, ktorej rýchlosť sa má merať, je namontovaný malý magnet pomocou lepiacej pištole alebo elektrickej pásky.

• Senzor Hall Effect má detektor vpredu a 3 piny pre pripojenie.

• Kolíky Vcc a Gnd sú pripojené k 5 V a Gnd kolíku Arduina. Výstupný kolík snímača je pripojený k digitálnemu kolíku 2 zariadenia Uno na zabezpečenie vstupného signálu.

• Všetky komponenty sú pripevnené v montážnej doske a Hallov detektor je vyvedený z dosky.

Programovanie

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
}

Nahrajte kód.

Poznajte kód

Náš otáčkomer využíva snímač Hall Effect Snímač Hall Effect je založený na Hallovom efekte pomenovanom podľa jeho objaviteľa Edwina Halla.

Hallov jav je jav generovania napätia na vodiči prenášajúcom prúd, keď je magnetické pole zavedené kolmo na tok prúdu. Toto napätie generované v dôsledku tohto javu pomáha pri generovaní vstupného signálu. Ako už bolo spomenuté Prerušenie bude v tomto projekte použité, aby sme mohli volať Prerušenie, musíme nastaviť určité podmienky. Arduino Uno má 2 podmienky na volanie po prerušení -

RISING- Ak sa použije, prerušenie sa vyvolá vždy, keď vstupný signál klesne z LOW na HIGH.

FALING - Ak sa použije toto, prerušenie sa zavolá, keď signál ide z HIGH do LOW.

Použili sme RISING, čo sa stane, je to, že keď sa magnet umiestnený v hriadeli alebo rotujúci objekt priblíži k Hallovmu detektoru, vygeneruje sa vstupný signál a vyvolá sa prerušenie, prerušenie iniciuje funkciu prerušenia servisnej rutiny (ISR), ktorá zahŕňa prírastok počíta sa hodnota, a teda dochádza k počítaniu.

Použili sme funkciu millis () Arduina a previoustime (premenná) v korešpondencii s nastavením časovača.

RPM sa teda nakoniec počíta pomocou matematického vzťahu -

RPM = počet / čas potrebný Prepočet milisekúnd na minúty a preskupenie sa dostaneme k vzorcu = 60 * 1000 / (millis () - previoustime) * count.

Oneskorenie (1 000) určuje časový interval, po ktorom sa na obrazovke aktualizuje hodnota otáčok, toto oneskorenie môžete upraviť podľa svojich potrieb.

Táto získaná hodnota RPM sa môže ďalej použiť na výpočet tangenciálnej rýchlosti rotujúceho objektu pomocou vzťahu- v = (3,14 * D * N) / 60 m / s.

Hodnotu otáčok za minútu možno použiť aj na výpočet vzdialenosti prejdenej rotujúcim kolieskom alebo diskom.

Namiesto tlače hodnôt na sériový monitor môže byť toto zariadenie užitočnejšie pripojením LCD displeja (16 * 2) a batérie pre lepšie využitie.




Predchádzajúci: Obvod vodiča krokového motora pomocou IC 555 Ďalej: Obvod merača digitálnej kapacity pomocou Arduina