INHOUDSOPGAWE:

Motorspoedmeting met Arduino: 6 stappe
Motorspoedmeting met Arduino: 6 stappe

Video: Motorspoedmeting met Arduino: 6 stappe

Video: Motorspoedmeting met Arduino: 6 stappe
Video: Найти и обезвредить (1982) фильм 2024, Julie
Anonim
Motorspoedmeting met behulp van Arduino
Motorspoedmeting met behulp van Arduino
Motorspoedmeting met behulp van Arduino
Motorspoedmeting met behulp van Arduino
Motorspoedmeting met behulp van Arduino
Motorspoedmeting met behulp van Arduino

Is dit moeilik om rpm van die motor te meet ??? Ek dink nie so nie. Hier is 'n eenvoudige oplossing.

Slegs een IR -sensor en Arduino in u kit kan dit doen.

In hierdie pos sal ek 'n eenvoudige handleiding gee om te verduidelik hoe om die toerusting van enige motor te meet met behulp van IR -sensor en Arduino UNO/nano

Benodighede:

1. Arduion uno (Amazon) / Arduion nano (Amazon)

2. IR -sensor (Amazon)

3. DC -motor enige (Amazon)

4. LCD 16*2 (Amazon)

Gereedskap gebruik

1. Soldeerbout (Amazon)

2. Wire Stripper (Amazon)

Stap 1: Stap: 1 Verseker die werkstoestand van sensors en toestelle

Wat is 'n IR -sensor? IR -sensor is 'n elektroniese toestel wat die lig uitstraal om 'n voorwerp van die omgewing te voel. 'N IR -sensor kan die hitte van 'n voorwerp meet en die beweging opspoor. Gewoonlik straal al die voorwerpe in die infrarooi spektrum een of ander vorm van termiese straling uit. Hierdie tipe stralings is onsigbaar vir ons oë, maar 'n infrarooi sensor kan hierdie stralings opspoor.

'N Gelykstroommotor is 'n soort elektriese masjien wat elektriese energie omskakel in meganiese energie. Gelykstroommotors neem elektriese krag deur gelykstroom, en skakel hierdie energie om in meganiese rotasie.

GS -motors gebruik magnetiese velde wat ontstaan as gevolg van die elektriese strome wat gegenereer word, wat die beweging van 'n rotor binne die uitsetas dryf. Die uitsetkoppel en -snelheid hang af van beide die elektriese inset en die ontwerp van die motor.

Wat is Arduino?

Arduino is 'n open source elektroniese platform wat gebaseer is op hardeware en sagteware wat maklik is om te gebruik. Arduino -borde kan insette lees - lig op 'n sensor, 'n vinger op 'n knoppie of 'n Twitter -boodskap - en dit in 'n uitset verander - 'n motor aktiveer, 'n LED aanskakel, iets aanlyn publiseer. U kan u bord vertel wat u moet doen deur 'n stel instruksies aan die mikrobeheerder op die bord te stuur. Om dit te kan doen, gebruik u die Arduino -programmeertaal (gebaseer op bedrading) en die Arduino -sagteware (IDE), gebaseer op verwerking.

Laai ARDUINO IDE af

Stap 2: Hoe werk dit?

So, wat is die logika hieragter ??

Dit werk baie soortgelyk aan encoder. Encoders is moeilik om te verstaan vir beginners. Al wat u moet weet, is dat die IR -sensor 'n pols genereer en ons vind die tydsinterval tussen elke pols.

In hierdie geval stuur die IR -sensor 'n polsslag na Arduino wanneer die IR -straal ooit met motorskroewe onderskep word. Normaalweg gebruik ons skroewe met twee lemme, maar ek het skroef met drie lemme gebruik soos in die figuur getoon. Afhangende van die aantal skroefblaaie, moet ons 'n paar waardes verander terwyl ons RPM bereken.

Kom ons kyk na 'n propeller met twee lemme. Vir elke omwentelmotor sal die lem die IR -straal twee keer onderskep. Die IR -sensor sal dus pulse produseer wanneer hulle ooit onderskep.

Nou moet ons 'n program skryf wat die getalpulse wat deur IR -sensor geproduseer word, kan meet op 'n spesifieke tydsinterval.

Daar is meer as een manier om 'n probleem op te los, maar ons moet kies watter een die beste is in hierdie kodes; ek het die tydsduur tussen die onderbrekings (IR -sensor) gemeet.

u kan hierdie formule gebruik om die RPMRPM = ((1/duur)*1000*1000*60)/lemme te meet

waar, duur - tydsinterval tussen pulse.

60 sekondes tot minute

1000 - meul tot sek

1000 - mikro tot mill

lemme - geen vlerke in die skroef nie.

LCD -skerm - Die Arduino werk die opdrag- en dataregisters van die LCD -skerm op. Wat die ASCII -karakters op die LCD -skerm vertoon.

Stap 3: programmeer u Arduino met behulp van Arduino IDE

#insluit

LiquidCrystal lcd (9, 8, 7, 6, 5, 4); const int IR_IN = 2; // IR -sensor INVOER ongetekende lang voorkoms; // Om ongetekende lang tydsduur te stoor; // Om tydsverskil ongetekende lang lcdrefresh op te slaan; // Om tyd op te slaan vir lcd om int rpm te verfris; // RPM waarde boolean currentstate; // Huidige toestand van IR -insetskandering Booleaanse voorkoms; // Toestand van IR -sensor in vorige scan -leemte -opstelling () {pinMode (IR_IN, INPUT); lcd.begin (16, 2); prevmicros = 0; prevstate = LAAG; } leemte lus () {////////////////////////////////////////////////// /////////////////////////////////////////// RPM Meting currentstate = digitalRead (IR_IN); // Lees die toestand van die IR -sensor as (prevstate! = Currentstate) // As daar insetverandering is {if (currentstate == LOW) // As insette slegs van HIGH na LOW verander {duration = (micros () - prevmicros); // Tydsverskil tussen omwenteling in mikrosekonde rpm = ((60000000/duur)/3); // rpm = (1/ time millis)*1000*1000*60; prevmicros = micros (); // stoor tyd vir berekening van die nekrevolusie}} prevstate = currentstate; // stoor hierdie scan (vorige scan) data vir die volgende skandering //////////////////////////////////// //////////////////////////////// ((millis ()-lcdrefresh)> = 100) {lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Motorsnelheid"); lcd.setCursor (0, 1); lcd.print ("RPM ="); lcd.print (rpm); lcdrefresh = millis (); }}

Stap 4: Simulasie met Proteus

Simulasie met behulp van Proteus
Simulasie met behulp van Proteus

Hierdie projek het uitstekend gewerk toe ek dit probeer probeer het met behulp van proteus.

In plaas daarvan om IR -sensor te gebruik, het ek 'n DC -pulsgenerator gebruik, wat die IR -puls simuleer wat soortgelyk is aan die een wat gegenereer word wanneer die IR -strale die propellers se lemme tref.

u moet veranderings aan u program aanbring, afhangende van die sensor wat u gebruik

IR -sensor met LM358 moet hierdie opdrag gebruik.

if (currentstate == HIGH) // As insette slegs van LAAG na HOOG verander

IR -sensor met LM359 moet hierdie opdrag gebruik.

if (currentstate == LOW) // As insette slegs van HOOG na LAAG verander

Stap 5: Uitvoering van hardeware

Uitvoering van hardeware
Uitvoering van hardeware
Uitvoering van hardeware
Uitvoering van hardeware
Uitvoering van hardeware
Uitvoering van hardeware

Gebruik die simulasieprente of verwys na die programkodes vir 'n skematiese weergawe en maak die verbindings dienooreenkomstig. Laai die programkode op na Arduino en meet die toerusting van enige motor. Bly ingeskakel vir my volgende plasing en kyk na my YouTube -kanaal.

Aanbeveel: