Turinys:

Variklio greičio matavimas naudojant „Arduino“: 6 žingsniai
Variklio greičio matavimas naudojant „Arduino“: 6 žingsniai

Video: Variklio greičio matavimas naudojant „Arduino“: 6 žingsniai

Video: Variklio greičio matavimas naudojant „Arduino“: 6 žingsniai
Video: Chapter 14 - Tom Swift and his Electric Runabout by Victor Appleton 2024, Lapkritis
Anonim
Variklio greičio matavimas naudojant „Arduino“
Variklio greičio matavimas naudojant „Arduino“
Variklio greičio matavimas naudojant „Arduino“
Variklio greičio matavimas naudojant „Arduino“
Variklio greičio matavimas naudojant „Arduino“
Variklio greičio matavimas naudojant „Arduino“

Ar sunku išmatuoti variklio apsisukimus? Aš nemanau. Štai vienas paprastas sprendimas.

Jūsų rinkinyje gali tai padaryti tik vienas IR jutiklis ir „Arduino“.

Šiame įraše pateiksiu paprastą pamoką, paaiškinančią, kaip išmatuoti bet kurio variklio apsisukimų dažnį naudojant IR jutiklį ir „Arduino UNO/nano“

Priedai:

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

2. IR jutiklis („Amazon“)

3. DC variklis bet koks („Amazon“)

4. LCD 16*2 („Amazon“)

Naudojami įrankiai

1. Lituoklis („Amazon“)

2. Vielos nuėmiklis („Amazon“)

1 veiksmas: 1 veiksmas: 1 Užtikrinkite jutiklių ir prietaisų darbo sąlygas

Kas yra IR jutiklis? IR jutiklis yra elektroninis prietaisas, skleidžiantis šviesą, kad jaustų tam tikrą aplinkos objektą. IR jutiklis gali išmatuoti objekto šilumą ir aptikti judesį. Paprastai infraraudonųjų spindulių spektre visi objektai skleidžia tam tikrą šiluminę spinduliuotę. Šio tipo spinduliai mūsų akims nematomi, tačiau infraraudonųjų spindulių jutiklis gali aptikti šias spinduliuotes.

Nuolatinės srovės (DC) variklis yra elektros mašinos tipas, kuris elektros energiją paverčia mechanine energija. Nuolatinės srovės varikliai ima elektros energiją per nuolatinę srovę ir šią energiją paverčia mechaniniu sukimu.

Nuolatinės srovės varikliai naudoja magnetinius laukus, atsirandančius dėl sukurtų elektros srovių, o tai lemia rotoriaus, pritvirtinto išėjimo velene, judėjimą. Išėjimo momentas ir greitis priklauso nuo elektros įėjimo ir variklio konstrukcijos.

Kas yra Arduino?

„Arduino“yra atviro kodo elektronikos platforma, pagrįsta lengvai naudojama aparatine ir programine įranga. „Arduino“plokštės gali skaityti įvestis - šviesą ant jutiklio, pirštą ant mygtuko ar „Twitter“pranešimą - ir paversti ją išvestimi - suaktyvinti variklį, įjungti šviesos diodą, ką nors paskelbti internete. Galite pasakyti savo valdybai, ką daryti, išsiųsdami instrukcijų rinkinį į plokštėje esantį mikrovaldiklį. Norėdami tai padaryti, naudokite „Arduino“programavimo kalbą (pagrįstą laidų jungtimi) ir „Arduino“programinę įrangą (IDE), pagrįstą apdorojimu.

Parsisiųsti ARDUINO IDE

2 žingsnis: kaip tai veikia?

Taigi kokia logika slypi už to ??

Jis veikia daug panašiai kaip kodavimo įrenginys. Pradedantiesiems sunku suprasti kodavimo įrenginius. Viskas, ką jums reikia žinoti, yra tai, kad IR jutiklis generuoja impulsą, ir mes išsiaiškiname laiko intervalą tarp kiekvieno impulso.

Tokiu atveju infraraudonųjų spindulių jutiklis siunčia impulsą „Arduino“, kai jo IR spindulys yra sulaikomas su variklių sraigtais. Paprastai mes naudojame sraigtus su dviem ašmenimis, bet aš naudoju sraigtus su trimis mentėmis, kaip parodyta paveikslėlyje. priklausomai nuo sraigto menčių skaičiaus, skaičiuojant apsisukimų dažnį, turime pakeisti kai kurias vertes.

pagalvokime, kad turime sraigtą, kuris turi du mentes. Kiekvieno apsisukimo variklio ašmenys du kartus sulaiko IR spindulį. Taigi IR jutiklis skleis impulsus, kai tik perims.

Dabar turime parašyti programą, kuri galėtų išmatuoti IR jutiklio sukurtus impulsus tam tikru laiko intervalu.

Yra daugiau nei vienas problemos sprendimo būdas, tačiau turime pasirinkti, kuris iš šių kodų yra geriausias. Išmatavau trukmę tarp pertraukų (IR jutiklis). Naudojau „micros“() funkcijas, norėdamas išmatuoti impulsų trukmę mikrosekundėmis.

šią formulę galite naudoti norėdami išmatuoti RPM RPM = ((1/trukmė)*1000*1000*60)/ašmenys

kur, trukmė - laiko intervalas tarp impulsų.

60 sekundžių iki minučių

1000 - malūnas iki sek

1000 - mikro iki malūno

mentės - sparnų skaičius sraigte.

LCD ekranas - „Arduino“atnaujina LCD ekrano komandų ir duomenų registrus. Kuris LCD ekrane rodo ASCII simbolius.

3 veiksmas: užprogramuokite „Arduino“naudodami „Arduino IDE“

#įtraukti

„LiquidCrystal lcd“(9, 8, 7, 6, 5, 4); const int IR_IN = 2; // IR jutiklis INPUT unsigned long prevmicros; // Ilgai laikyti nepasirašytą laiką; // Norėdami išsaugoti laiko skirtumą unsigned long lcdrefresh; // Norėdami išsaugoti laiką, kol LCD atnaujins int rpm; // RPM reikšmė loginė srovė; // Dabartinė IR įvesties nuskaitymo loginė būsena; // IR jutiklio būsena ankstesnėje nuskaitymo void sąrankoje () {pinMode (IR_IN, INPUT); LCD. pradžia (16, 2); prevmicros = 0; prevstate = LOW; } void loop () {/////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////// RPM Matavimo srovės stipris = digitalRead (IR_IN); // Skaitykite infraraudonųjų spindulių jutiklio būseną, jei (išankstinė būsena! = Dabartinė būsena) // Jei įvestis pasikeičia {if (srovės stipris == LOW) // Jei įvestis keičiasi tik iš HIGH į LOW {duration = (micros () - prevmicros); // Laiko skirtumas tarp apsisukimų mikrosekundžių aps/min = ((60000000/trukmė)/3); // aps/ min = (1/ laiko milis)*1000*1000*60; prevmicros = mikros (); // saugoti laiką nect revoliucijai apskaičiuoti}} prevstate = currentstate; // išsaugokite šiuos nuskaitymo (ankstesnio nuskaitymo) duomenis kitam nuskaitymui ///////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////// LCD ekranas, jei ((milis ()-lcdrefresh)> = 100) {lcd.clear (); lcd.setCursor (0, 0); lcd.print („Variklio greitis“); lcd.setCursor (0, 1); lcd.print ("RPM ="); lcd.print (aps / min); lcdrefresh = milis (); }}

4 žingsnis: modeliavimas naudojant „Proteus“

Modeliavimas naudojant „Proteus“
Modeliavimas naudojant „Proteus“

Šis projektas puikiai veikė, kai bandžiau tai imituoti naudodamas proteus.

Vietoj IR jutiklio aš naudojau nuolatinės srovės impulsų generatorių, kuris imituos IR impulsą, panašų į tą, kuris susidaro, kai IR spinduliai patenka į sraigto mentes.

turite keisti savo programą, priklausomai nuo naudojamo jutiklio

IR jutiklis su LM358 turi naudoti šią komandą.

if (currentstate == HIGH) // Jei įvestis keičiasi tik iš LOW į HIGH

IR jutiklis su LM359 turi naudoti šią komandą.

if (currentstate == LOW) // Jei įvestis keičiasi tik iš HIGH į LOW

5 žingsnis: aparatinės įrangos vykdymas

Techninės įrangos vykdymas
Techninės įrangos vykdymas
Techninės įrangos vykdymas
Techninės įrangos vykdymas
Techninės įrangos vykdymas
Techninės įrangos vykdymas

Schematiškai naudokite modeliavimo paveikslėlius arba nurodykite programos kodus ir atitinkamai prijunkite. Įkelkite programos kodą į „Arduino“ir išmatuokite bet kurio variklio apsisukimų dažnį. Sekite mano kitą įrašą ir žiūrėkite mano „YouTube“kanalą.

Rekomenduojamas: