Kazalo:

Merjenje hitrosti motorja z uporabo Arduina: 6 korakov
Merjenje hitrosti motorja z uporabo Arduina: 6 korakov
Anonim
Merjenje hitrosti motorja z uporabo Arduina
Merjenje hitrosti motorja z uporabo Arduina
Merjenje hitrosti motorja z uporabo Arduina
Merjenje hitrosti motorja z uporabo Arduina
Merjenje hitrosti motorja z uporabo Arduina
Merjenje hitrosti motorja z uporabo Arduina

Je težko izmeriti vrtljaje motorja ??? Mislim, da ne. Tukaj je ena preprosta rešitev.

To lahko stori samo en IR senzor in Arduino v vašem kompletu.

V tem prispevku bom predstavil preprosto vadnico, ki pojasnjuje, kako izmeriti vrtljaje katerega koli motorja z uporabo IR senzorja in Arduino UNO/nano

Zaloge:

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

2. IR senzor (Amazon)

3. DC motor kateri koli (Amazon)

4. LCD 16*2 (Amazon)

Uporabljena orodja

1. Spajkalnik (Amazon)

2. Odstranjevalec žice (Amazon)

1. korak: 1. korak: 1 Zagotovite delovno stanje senzorjev in naprav

Kaj je IR -senzor? IR -senzor je elektronska naprava, ki oddaja svetlobo, da zazna nek predmet okolice. IR senzor lahko meri toploto predmeta in zazna gibanje. Običajno v infrardečem spektru vsi predmeti oddajajo neko obliko toplotnega sevanja. Te vrste sevanj so za naše oči nevidne, vendar jih infrardeči senzor zazna.

Motor z enosmernim tokom (DC) je vrsta električnega stroja, ki pretvarja električno energijo v mehansko energijo. Enosmerni motorji napajajo elektriko z enosmernim tokom in to energijo pretvarjajo v mehansko vrtenje.

Enosmerni motorji uporabljajo magnetna polja, ki izvirajo iz električnih tokov, ki poganjajo rotor, pritrjen znotraj izhodne gredi. Izhodni navor in hitrost sta odvisna od električnega vhoda in zasnove motorja.

Kaj je Arduino?

Arduino je odprtokodna elektronska platforma, ki temelji na enostavni strojni in programski opremi. Arduino plošče lahko preberejo vhode - luč na senzorju, prst na gumbu ali sporočilo v Twitterju - in ga spremenijo v izhod - aktivirajo motor, vklopijo LED, objavijo nekaj na spletu. Plošči lahko poveste, kaj naj stori, tako da mikrokrmilniku na plošči pošljete niz navodil. Če želite to narediti, uporabite programski jezik Arduino (na osnovi ožičenja) in programsko opremo Arduino (IDE), ki temelji na obdelavi.

Prenesite ARDUINO IDE

2. korak: Kako deluje?

Kakšna je torej logika tega ??

Deluje zelo podobno kodirniku. Kodirniki so za začetnike težko razumljivi. Vse kar morate vedeti je, da IR senzor generira impulz in ugotovimo časovni interval med vsakim impulzom.

V tem primeru bo IR senzor poslal impulz na Arduino, kadarkoli bo njegov IR žarek prestregel z motornimi propelerji. Običajno uporabljamo propelerje z dvema lopaticama, jaz pa sem uporabil propeler s tremi lopaticami, kot je prikazano na sliki. glede na število lopatic propelerja moramo spremeniti nekatere vrednosti pri izračunu vrtljajev.

pomislimo, da imamo propeler z dvema lopaticama. Za vsak obratni motor bo rezilo dvakrat prestreglo IR -žarek. Tako bo IR senzor proizvedel impulze, kadar koli bo prestregel.

Zdaj moramo napisati program, ki bi lahko meril število impulzov, ki jih proizvede IR senzor v določenem časovnem intervalu.

Obstaja več načinov za rešitev težave, vendar se moramo odločiti, kateri je najboljši v teh kodah. Izmeril sem trajanje med prekinitvami (IR senzor) Uporabil sem funkcije mikroskopov () za merjenje trajanja impulzov v mikrosekundah.

To formulo lahko uporabite za merjenje RPMRPM = ((1/trajanje)*1000*1000*60)/rezil

kjer, trajanje - časovni interval med impulzi.

60 sekund do minut

1000 - mlin na sekundo

1000 - mikro do mlina

rezila - brez kril v propelerju.

LCD zaslon - Arduino posodobi registre ukazov in podatkov LCD zaslona. Ki prikazuje znake ASCII na LCD zaslonu.

Korak: Programirajte svoj Arduino z uporabo Arduino IDE

#vključi

LCD tekoči kristal (9, 8, 7, 6, 5, 4); const int IR_IN = 2; // IR senzor INPUT brez podpisa dolgi prevmicros; // Za dolgotrajno shranjevanje časa brez podpisa; // Za shranjevanje časovne razlike unsigned long lcdrefresh; // Shranjevanje časa za osvežitev lcd int rpm; // vrednost RPM boolean currentstate; // Trenutno stanje logičnega predhodnega stanja skeniranja IR vhoda; // Stanje IR senzorja v prejšnji nastavitvi void scan () {pinMode (IR_IN, INPUT); lcd.begin (16, 2); prevmicros = 0; prevstate = LOW; } void loop () {//////////////////////////////////////////////// ///////////////////////////////////////// Merjenje RPM currentstate = digitalRead (IR_IN); // Branje stanja IR senzorja if (prevstate! = Currentstate) // Če pride do spremembe vhoda {if (currentstate == LOW) // Če se vhod spremeni le iz HIGH v LOW {duration = (micros () - prevmicros); // Časovna razlika med vrtljaji v mikrosekundah vrt/min = ((60000000/trajanje)/3); // vrt/ min = (1/ časovni milis)*1000*1000*60; prevmicros = micros (); // shranite čas za izračun revolucije nekta}} prevstate = currentstate; // shranite te podatke skeniranja (prejšnje skeniranje) za naslednje skeniranje /////////////////////////////////////// ////////////////////////////////////////////////// LCD zaslon, če ((millis ()-lcdrefresh)> = 100) {lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Hitrost motorja"); lcd.setCursor (0, 1); lcd.print ("RPM ="); lcd.print (vrt / min); lcdrefresh = millis (); }}

4. korak: Simulacija z uporabo Proteusa

Simulacija z uporabo Proteusa
Simulacija z uporabo Proteusa

Ta projekt je deloval popolnoma v redu, ko sem to poskusil simulirati s pomočjo proteusa.

Namesto IR senzorja sem uporabil DC impulzni generator, ki bo simuliral IR impulz, podoben tistemu, ki nastane, ko IR žarki zadenejo lopatice propelerjev.

program morate spremeniti glede na senzor, ki ga uporabljate

Ta ukaz mora uporabiti IR senzor z LM358.

if (currentstate == HIGH) // Če se vnos spremeni le iz LOW v HIGH

Ta ukaz mora uporabiti IR senzor z LM359.

if (currentstate == LOW) // Če se samo vnos spremeni iz HIGH v LOW

5. korak: Izvajanje strojne opreme

Izvajanje strojne opreme
Izvajanje strojne opreme
Izvajanje strojne opreme
Izvajanje strojne opreme
Izvajanje strojne opreme
Izvajanje strojne opreme

Za shematsko uporabo uporabite simulacijske slike ali si oglejte programske kode in ustrezno vzpostavite povezave. Naložite programsko kodo v Arduino in izmerite število vrtljajev motorja. Spremljajte mojo naslednjo objavo in si oglejte moj YouTube kanal.

Priporočena: