Sisukord:
- 1. samm: samm: 1 Veenduge, et andurid ja seadmed oleksid töökorras
- Samm 2: Kuidas see toimib?
- Samm: programmeerige Arduino Arduino IDE abil
- 4. samm: simulatsioon Proteuse abil
- Samm: riistvara täitmine
Video: Mootori kiiruse mõõtmine Arduino abil: 6 sammu
2024 Autor: John Day | [email protected]. Viimati modifitseeritud: 2024-01-30 08:45
Kas mootori pöördeid on raske mõõta ??? Ma ei usu. Siin on üks lihtne lahendus.
Teie komplektis saab seda teha ainult üks IR -andur ja Arduino.
Selles postituses annan lihtsa õpetuse, mis selgitab, kuidas mõõta mis tahes mootori pöörlemiskiirust IR -anduri ja Arduino UNO/nano abil
Tarvikud:
1. Arduion uno (Amazon) / Arduion nano (Amazon)
2. IR -andur (Amazon)
3. alalisvoolumootor (Amazon)
4. LCD 16*2 (Amazon)
Kasutatud tööriistad
1. Jootekolb (Amazon)
2. Traadi eemaldaja (Amazon)
1. samm: samm: 1 Veenduge, et andurid ja seadmed oleksid töökorras
IR -andur on elektrooniline seade, mis kiirgab valgust, et tajuda mõnda ümbritsevat objekti. IR -andur suudab mõõta objekti kuumust ja tuvastab liikumise. Tavaliselt kiirgavad infrapunaspektris kõik objektid mingisugust soojuskiirgust. Seda tüüpi kiirgus on meie silmadele nähtamatu, kuid infrapunaandur suudab neid kiirgusi tuvastada.
Alalisvoolumootor (DC) on teatud tüüpi elektrimasin, mis muudab elektrienergia mehaaniliseks energiaks. Alalisvoolumootorid võtavad elektrienergiat alalisvoolu kaudu ja muudavad selle energia mehaaniliseks pöörlemiseks.
Alalisvoolumootorid kasutavad tekitatud elektrivooludest tekkivaid magnetvälju, mis juhivad väljundvõllile kinnitatud rootori liikumist. Väljundmoment ja kiirus sõltuvad nii elektrisisendist kui ka mootori konstruktsioonist.
Mis on Arduino?
Arduino on avatud lähtekoodiga elektroonikaplatvorm, mis põhineb hõlpsasti kasutataval riist- ja tarkvaral. Arduino tahvlid on võimelised lugema sisendeid - valgust anduril, sõrme nupul või Twitteri sõnumit - ja muutma selle väljundiks - aktiveerides mootori, lülitades sisse LED -i, avaldades midagi võrgus. Saate oma plaadile öelda, mida teha, saates juhiste komplekti tahvli mikrokontrollerile. Selleks kasutate programmeerimiskeelt Arduino (põhineb juhtmestikul) ja töötlemisel põhinevat Arduino tarkvara (IDE).
Laadige alla ARDUINO IDE
Samm 2: Kuidas see toimib?
Mis loogika selle taga siis on ??
See töötab kodeerijaga sarnaselt. Algajatele on kodeerijatest raske aru saada. Kõik, mida pead teadma, on see, et IR -andur genereerib impulsi ja me selgitame välja ajavahemiku iga impulsi vahel.
Sel juhul saadab infrapunaandur Arduinole impulsi, kui selle infrapunakiir on mootorite propellerite abil kinni püütud. Tavaliselt kasutame kahe labaga propellereid, kuid mina olen kasutanud kolme labaga sõukruvi, nagu on näidatud joonisel. olenevalt propelleri labade arvust peame pöörete arvu arvutamisel muutma mõningaid väärtusi.
oletame, et meil on sõukruvi, millel on kaks tera. Iga pöörlemismootori korral võtab tera IR -kiirguse kaks korda kinni. Seega tekitab infrapunaandur impulsse, kui see kunagi vahele jääb.
Nüüd peame kirjutama programmi, mis võiks mõõta IR -anduri poolt teatud ajavahemiku jooksul toodetud arvimpulsse.
Probleemi lahendamiseks on rohkem kui üks viis, kuid me peame valima, milline neist koodidest on parim. Olen mõõtnud katkestuste vahelist kestust (IR -andur). Ma kasutasin mikros () funktsioone impulsside kestuse mõõtmiseks mikrosekundites.
selle valemi abil saate RPM RPM = ((1/kestus)*1000*1000*60)/terad
kus, kestus - impulsside vaheline ajavahemik.
60 sekundit minutini
1000 - mill sekundist
1000 - mikro kuni veski
labad - tiiviku tiibade arv.
LCD -ekraan - Arduino värskendab LCD -ekraani käsu- ja andmeregistreid. Mis kuvab LCD -ekraanil ASCII märke.
Samm: programmeerige Arduino Arduino IDE abil
#kaasake
LiquidCrystal LCD (9, 8, 7, 6, 5, 4); const int IR_IN = 2; // IR -andur INPUT allkirjastamata pikad eelvaated; // Et salvestada aega allkirjata pikka aega; // Ajavahe salvestamiseks unsigned long lcdrefresh; // Et salvestada aega lcd värskendamiseks int rpm; // RPM väärtus boolean currentstream; // IR sisendi skaneerimise praegune olek boolean prevstate; // IR -anduri olek eelmises skannimises tühimiku seadistus () {pinMode (IR_IN, INPUT); lcd.algus (16, 2); prevmicros = 0; prevstate = LOW; } void loop () {//////////////////////////////////////////////////////////// või /////////////////////////////////////////////////////////////////////// RPM Measurement currentstate = digitalRead (IR_IN); // Loe IR anduri olekut if (prevstate! = Currentstate) // Kui sisendis on muutusi {if (currentstate == LOW) // Kui sisend muutub ainult HIGH -st LOW -ks {duration = (micros () - prevmicros); // Ajavahe pöörde vahel mikrosekundites p/min = ((60000000/kestus)/3); // p/ min = (1/ aja millis)*1000*1000*60; prevmicros = mikros (); // salvestusaeg nekt -pöörde arvutamiseks}} prevstate = currentstate; // salvestage need skannimisandmed (eelnev skannimine) järgmise skannimise jaoks ////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////// või LCD- ekraan, kui ((millis ()-lcdrefresh)> = 100) {lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Mootori kiirus"); lcd.setCursor (0, 1); lcd.print ("RPM ="); lcd.print (p / min); lcdrefresh = millis (); }}
4. samm: simulatsioon Proteuse abil
See projekt töötas suurepäraselt, kui proovisin seda proteuse abil simuleerida.
IR -anduri kasutamise asemel kasutasin alalisvoolu impulssgeneraatorit, mis simuleerib IR -impulssi, mis sarnaneb sellele, mis tekib siis, kui IR -kiirgus tabab sõukruvi labasid.
peate oma programmis muudatusi tegema, sõltuvalt kasutatavast andurist
Seda käsku peab kasutama IR -andur koos LM358 -ga.
if (vooluhulk == HIGH) // Kui sisend muutub ainult LOW -lt kõrgele
IR -andur koos LM359 -ga peab seda käsku kasutama.
if (currentstate == LOW) // Kui sisend muutub ainult kõrgelt madalale
Samm: riistvara täitmine
Skemaatiliseks kasutamiseks kasutage simulatsioonipilte või vaadake programmikoode ja looge ühendused vastavalt. Laadige programmi kood Arduinosse ja mõõtke mis tahes mootori pööret. Jälgige minu järgmist postitust ja vaadake minu YouTube'i kanalit.
Soovitan:
DC MOTOR Käsiliigutus Kiiruse ja suuna juhtimine Arduino abil: 8 sammu
DC MOTOR Käeliigutus Kiiruse ja suuna juhtimine Arduino abil: Selles õpetuses õpime, kuidas juhtida alalisvoolumootorit käeliigutustega, kasutades arduino ja Visuino. Vaadake videot! Vaadake ka seda: Käeliigutuste õpetus
Alalisvoolu mootori kiiruse juhtimisahel: 5 sammu
Alalisvoolu mootori kiiruse juhtimisahel: Selles lühikeses artiklis uurime, kuidas moodustada alalisvoolumootori kiiruse negatiivse tagasiside ahel. Peamiselt saame teada, kuidas vooluring töötab ja mis on PWM -signaaliga? ja kuidas PWM -signaali kasutatakse reguleerimiseks
Kuidas juhtida droonita nelikopteri harjadeta alalisvoolumootorit (3 juhtme tüüpi), kasutades HW30A mootori kiiruse regulaatorit ja Arduino UNO -d: 5 sammu
Kuidas juhtida droonita nelikopteri harjadeta alalisvoolumootorit (3 juhtmega tüüpi), kasutades HW30A mootori kiiruse regulaatorit ja Arduino UNO-d: Kirjeldus: HW30A mootori kiiruse regulaatorit saab kasutada 4-10 NiMH/NiCd või 2-3-cell LiPo patareidega. BEC on funktsionaalne kuni 3 LiPo elemendiga. Seda saab kasutada harjadeta alalisvoolumootori (3 juhtme) kiiruse reguleerimiseks, maksimaalselt kuni 12Vdc
Harjadeta alalisvoolumootori kiiruse juhtimine Arduino ja Bluetooth-mooduli (HC-05) abil: 4 sammu
Harjadeta alalisvoolumootori kiiruse reguleerimine Arduino ja Bluetooth-mooduli (HC-05) abil: Sissejuhatus Arduino Bluetooth -kontroller)
Mootori pöörete arvu autonoomne juhtimine tagasiside süsteemi abil IR -põhise tahhomeetri abil: 5 sammu (piltidega)
Mootori pöörlemiskiiruste autonoomne juhtimine tagasisidesüsteemi abil IR -põhise tahhomeetri abil: alati on vaja automatiseerida protsess, olgu see siis lihtne/koletu. Mul tekkis idee seda projekti teha lihtsast väljakutsest, millega silmitsi seistes leidsin meetodid meie väikese maatüki kastmiseks/niisutamiseks. Praeguse toiteliini puudumise probleem