Circuit del tacòmetre Arduino per a lectures precises

Proveu El Nostre Instrument Per Eliminar Problemes





Un tacòmetre és un dispositiu que mesura la RPM o la velocitat angular d’un cos en rotació. Es diferencia del velocímetre i del comptaquilòmetres, ja que aquests dispositius tracten la velocitat lineal o tangencial del cos, mentre que el tacòmetre, també conegut com a 'tac', fa referència a la RPM més fonamental.

A càrrec d’Ankit Negi



El tacòmetre es compon d’un comptador i un temporitzador que treballen junts i proporciona el RPM. En el nostre projecte farem el mateix, utilitzant el nostre Arduino i alguns sensors, configurarem un comptador i un temporitzador i desenvoluparem el nostre manutenció fàcil i pràctica .

Requisits previs

El comptador no és res més que un dispositiu o configuració que pot comptar certs esdeveniments regulars com passar un punt al disc mentre està en rotació. Inicialment els taulells es construïen mitjançant la disposició mecànica i els enllaços com engranatges, trinquets, molles, etc.



Però ara estem fent servir comptadors amb sensors i sistemes electrònics més sofisticats i precisos. El temporitzador és un element electrònic que és capaç de mesurar l'interval de temps entre esdeveniments o mesurar el temps.

Al nostre Arduino Uno hi ha temporitzadors que no només fan un seguiment del temps, sinó que també mantenen algunes de les funcions importants d’Arduino. A Uno tenim 3 temporitzadors anomenats Timer0, Timer1 i Timer2. Aquests temporitzadors tenen les funcions següents: • Temporitzador0- Per a funcions de Uno com delay (), millis (), micros () o delaymicros ().

• Temporitzador1- Per al funcionament de la servoteca.

• Temporitzador 2: per a funcions com el to (), notone ().

Juntament amb aquestes funcions, aquests tres temporitzadors també són responsables de generar la sortida PWM quan s’utilitza l’ordre analogWrite () al pin designat per PMW.

Concepte d’interrupcions

A Arduino Uno hi ha una eina oculta que pot donar-nos accés a un munt de funcions conegudes com a temporitzadors. L’interrupció és un conjunt d’esdeveniments o instruccions que s’executen quan s’anomena interrompre el funcionament actual del dispositiu, és a dir, independentment de què codis que el vostre Uno executava abans, però un cop es diu Arduino una interrupció, executeu la instrucció esmentada a la interrupció.

imant a l’eix del motor

Ara Interrupt es pot trucar a determinades condicions definides per l’usuari mitjançant una sintaxi Arduino incorporada. L’utilitzarem en el nostre projecte que fa que el nostre tacòmetre sigui més resolut i més precís que l’altre projecte de tacòmetre present al web.

Components necessaris per a aquest projecte de tacòmetre amb Arduino

• Sensor d’efecte Hall (Fig.1)

mòdul de sensor d’efecte hall

• Arduino Un

Arduino UN board

• Imant petit

imant petit

• Filferros de pont

• Objecte giratori (eix del motor)

DC motor

Configuració del circuit

• La configuració per crear és la següent:

• A l'eix la velocitat de rotació del qual s'ha de mesurar està equipat amb un petit imant amb pistola de cola o cinta elèctrica.

• El sensor d’efecte Hall té un detector al davant i 3 pins per a connexions.

• Els pins Vcc i Gnd estan connectats als pins 5V i Gnd d'Arduino respectivament. El pin de sortida del sensor està connectat al pin digital 2 de l’Uno per proporcionar el senyal d’entrada.

• Tots els components estan fixats en un tauler de muntatge i el detector Hall s’assenyala des del tauler.

Programació

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
}

Pengeu el codi.

Coneix el codi

El nostre tacòmetre utilitza el sensor d’efecte Hall El sensor d’efecte Hall es basa en l’efecte Hall que porta el nom del seu descobridor Edwin Hall.

L’efecte Hall és un fenomen de generació de tensió a través d’un conductor que transporta corrent quan s’introdueix un camp magnètic perpendicular al flux de corrent. Aquest voltatge generat a causa d’aquest fenomen ajuda a la generació de senyals d’entrada. Com es va esmentar Interrupt s’utilitzarà en aquest projecte, per trucar a Interrupt hem de configurar alguna condició. Arduino Uno té 2 condicions per trucar a interrupcions

RISING- Quan s’utilitza això, es criden les interrupcions cada vegada que el senyal d’entrada passa de BAIX a ALT.

FALING: quan s’utilitza això, s’anomena interrupció quan el senyal passa d’ALTA a BAIXA.

Hem utilitzat RISING, el que passa és que quan l’imant col·locat a l’eix o a l’objecte giratori s’acosta al detector Hall es genera el senyal d’entrada i s’inicia la interrupció, Interrupt inicia la funció de rutina de servei d’interrupció (ISR), que inclou el recompte valora i, per tant, té lloc el recompte.

Hem utilitzat la funció millis () d'Arduino i previoustime (variable) en correspondència per configurar el temporitzador.

Així, el RPM es calcula finalment mitjançant la relació matemàtica

RPM = Recomptes / Temps necessari Convertint els mil·lisegons en minuts i la reordenació, arribem a la fórmula = 60 * 1000 / (milis () - temps previoust) *.

El retard (1000) determina l'interval de temps després del qual s'actualitzarà el valor de RPM a la pantalla; podeu ajustar aquest retard segons les vostres necessitats.

Aquest valor de RPM obtingut es pot utilitzar per calcular la velocitat tangencial de l'objecte en rotació mitjançant la relació v = (3,14 * D * N) / 60 m / s.

El valor de RPM també es pot utilitzar per calcular la distància recorreguda per una roda o disc giratori.

En lloc d'imprimir valors al monitor sèrie, aquest dispositiu es pot fer més útil connectant una pantalla LCD (16 * 2) i una bateria per a un millor ús.




Anterior: Circuit de control de motor pas a pas amb IC 555 Següent: Circuit de mesurador de capacitat digital mitjançant Arduino