Okruh tachometru Arduino pro přesné odečty

Okruh tachometru Arduino pro přesné odečty

Tachometr je zařízení, které měří otáčky nebo úhlovou rychlost rotujícího tělesa. Liší se od rychloměru a počítadla kilometrů, protože tato zařízení se zabývají lineární nebo tangenciální rychlostí těla, zatímco tachometr aka „tach“ se zabývá zásadnějšími otáčkami za minutu.

Autor: Ankit Negi



Tachometr se skládá z počitadla a časovače, které oba společně poskytují RPM. V našem projektu uděláme totéž, pomocí našeho Arduina a některých senzorů nastavíme jak počitadlo, tak časovač a vyvine náš praktický a snadný tach .

Předpoklady

Počítadlo není nic jiného než zařízení nebo nastavení, které dokáže počítat jakoukoli určitou běžně se vyskytující událost, jako je předání tečky na disku během otáčení. Počítadla byla původně vyráběna pomocí mechanického uspořádání a spojů, jako jsou ozubená kola, západky, pružiny atd.

Nyní však používáme čítač, který má sofistikovanější a vysoce přesné senzory a elektroniku. Časovač je elektronický prvek, který je schopen měřit časový interval mezi událostmi nebo měřit čas.



V našem Arduino Uno existují časovače, které nejen sledují čas, ale také udržují některé důležité funkce Arduina. V Uno máme 3 časovače s názvem Timer0, Timer1 a Timer2. Tyto časovače mají následující funkce - • Časovač0 - Pro funkce Uno, jako delay (), millis (), micro () nebo delaymicros ().

• Timer1 - pro práci se servo knihovnou.

• Timer2 - Pro funkce jako tón (), notone ().



Spolu s těmito funkcemi jsou tyto 3 časovače také zodpovědné za generování PWM výstupu, když je v pinu určeném PMW použit příkaz analogWrite ().

Koncept přerušení

V Arduino Uno je skrytý nástroj, který nám umožňuje přístup k celé řadě funkcí známých jako Timer Interrupts. Přerušení je sada událostí nebo instrukcí, které jsou prováděny, když jsou nazývány přerušením aktuální funkce zařízení, tj. Bez ohledu na to, co kódy, které vaše Uno dříve provádělo, ale jakmile se přerušení nazývá Arduino, proveďte instrukci uvedenou v přerušení.

magnet na hřídeli motoru

Nyní lze Interrupt vyvolat za určitých podmínek definovaných uživatelem pomocí vestavěné syntaxe Arduino. Toto Interrupt budeme používat v našem projektu, díky kterému bude náš tachometr rezolutnější a přesnější než jiný projekt tachometru přítomný na webu.

Komponenty potřebné pro tento projekt tachometru využívající Arduino

• Hallův snímač (obr. 1)

modul snímače Hallova jevu

• Arduino Uno

Deska Arduino UNO

• Malý magnet

malý magnet

• Propojovací vodiče

• Rotující předmět (hřídel motoru)

Stejnosměrný motor

Nastavení obvodu

• Nastavení pro vytváření je následující -

• Na hřídeli, jehož rychlost otáčení se má měřit, je vybaven malým magnetem pomocí lepicí pistole nebo elektrické pásky.

• Senzor Hall Effect má detektor vpředu a 3 piny pro připojení.

• Kolíky Vcc a Gnd jsou připojeny k 5V a Gnd kolíku Arduina. Výstupní kolík snímače je připojen k digitálnímu kolíku 2 zařízení Uno, aby poskytoval vstupní signál.

• Všechny komponenty jsou upevněny v montážní desce a Hallov detektor je vyveden z desky.

Programování

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.

Znáte kód

Náš otáčkoměr využívá Hallův snímač Hallův snímač je založen na Hallově efektu pojmenovaném podle jeho objevitele Edwina Halla.

Hallův jev je jev generování napětí na vodiči nesoucím proud, když je magnetické pole zavedeno kolmo na tok proudu. Toto napětí generované v důsledku tohoto jevu pomáhá při generování vstupního signálu. Jak bylo zmíněno Interrupt, bude v tomto projektu použito, pro volání Interrupt musíme nastavit nějakou podmínku. Arduino Uno má 2 podmínky pro volání přerušení -

RISING- Při tomto použití se přerušení volá vždy, když vstupní signál přejde z LOW na HIGH.

FALING - Při tomto použití se přerušení volá, když signál přejde z HIGH na LOW.

Použili jsme RISING, co se stane, je to, že když se magnet umístěný v hřídeli nebo rotující objekt přiblíží k Hallovu detektoru Vstupní signál je generován a je vyvoláno Interrupt, Interrupt inicializuje funkci Interrupt Service Routine (ISR), která zahrnuje přírůstek počítá se hodnota a tím pádem se počítá.

K nastavení časovače jsme použili funkci millis () Arduina a previoustime (proměnná).

RPM se tedy nakonec vypočítá pomocí matematického vztahu -

RPM = počet / čas potřebný Převedením milisekund na minuty a přeskupením se dostaneme k vzorci = 60 * 1000 / (millis () - předchozí čas) * počty.

Zpoždění (1 000) určuje časový interval, po kterém bude hodnota RPM aktualizována na obrazovce, můžete toto zpoždění upravit podle svých potřeb.

Tuto získanou hodnotu RPM lze dále použít k výpočtu tangenciální rychlosti rotujícího objektu pomocí relace v = (3,14 * D * N) / 60 m / s.

Hodnotu otáček lze také použít k výpočtu ujeté vzdálenosti otočným kolem nebo kotoučem.

Místo tisku hodnot na sériový monitor může být toto zařízení užitečnější připojením LCD displeje (16 * 2) a baterie pro lepší využití.




Předchozí: Obvod ovladače krokového motoru pomocí IC 555 Další: Obvod digitálního kapacitního měřiče pomocí Arduina