Cuprins:

Măsurarea vitezei motorului utilizând Arduino: 6 pași
Măsurarea vitezei motorului utilizând Arduino: 6 pași

Video: Măsurarea vitezei motorului utilizând Arduino: 6 pași

Video: Măsurarea vitezei motorului utilizând Arduino: 6 pași
Video: Control Position and Speed of Stepper motor with L298N module using Arduino 2024, Noiembrie
Anonim
Măsurarea vitezei motorului folosind Arduino
Măsurarea vitezei motorului folosind Arduino
Măsurarea vitezei motorului folosind Arduino
Măsurarea vitezei motorului folosind Arduino
Măsurarea vitezei motorului folosind Arduino
Măsurarea vitezei motorului folosind Arduino

Este dificil să măsoară rpm-ul motorului ??? Nu cred. Iată o soluție simplă.

Doar un singur senzor IR și Arduino din kitul dvs. pot face acest lucru.

În acest post voi oferi un tutorial simplu care explică cum se măsoară RPM-ul oricărui motor folosind senzorul IR și Arduino UNO / nano

Provizii:

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

2. Senzor IR (Amazon)

3. Motor DC orice (Amazon)

4. LCD 16 * 2 (Amazon)

Instrumente utilizate

1. Fier de lipit (Amazon)

2. Stripper de sârmă (Amazon)

Pasul 1: Pasul: 1 Asigurați-vă de starea de lucru a senzorilor și dispozitivelor

Ce este un senzor IR? Senzorul IR este un dispozitiv electronic, care emite lumină pentru a simți un obiect al împrejurimilor. Un senzor IR poate măsura căldura unui obiect, precum și detecta mișcarea. De obicei, în spectrul infraroșu, toate obiectele radiază o formă de radiație termică. Aceste tipuri de radiații sunt invizibile pentru ochii noștri, dar senzorul cu infraroșu poate detecta aceste radiații.

Un motor cu curent continuu (DC) este un tip de mașină electrică care transformă energia electrică în energie mecanică. Motoarele de curent continuu iau energie electrică prin curent continuu și transformă această energie în rotație mecanică.

Motoarele de curent continuu utilizează câmpuri magnetice care apar din curenții electrici generați, care alimentează mișcarea unui rotor fixat în arborele de ieșire. Cuplul și viteza de ieșire depind atât de intrarea electrică, cât și de proiectarea motorului.

Ce este Arduino?

Arduino este o platformă electronică open-source bazată pe hardware și software ușor de utilizat. Plăcile Arduino sunt capabile să citească intrările - lumină pe un senzor, un deget pe un buton sau un mesaj Twitter - și să-l transforme într-o ieșire - activând un motor, pornind un LED, publicând ceva online. Puteți spune tabloului dvs. ce trebuie să faceți trimițând un set de instrucțiuni microcontrolerului de pe placă. Pentru a face acest lucru, utilizați limbajul de programare Arduino (bazat pe cablare) și software-ul Arduino (IDE), bazat pe procesare.

Descărcați IDE ARDUINO

Pasul 2: Cum funcționează?

Deci, care este logica din spatele asta ??

Funcționează mult asemănător cu codificatorul. Codificatorii sunt greu de înțeles pentru începători. Tot ce trebuie să știți este că senzorul IR generează impuls și aflăm intervalul de timp dintre fiecare impuls.

În acest caz, senzorul IR va trimite un impuls către Arduino atunci când fasciculul IR este interceptat cu elice motoare. În mod normal, folosim elice cu două pale, dar am folosit elice cu trei pale așa cum se arată în figură. în funcție de numărul de pale de elice, trebuie să modificăm unele valori în timp ce calculăm RPM.

să considerăm că avem o elice care are două pale. Pentru fiecare motor de rotație, lama va intercepta de două ori raza IR. Astfel, senzorul IR va produce impulsuri atunci când interceptează vreodată.

Acum trebuie să scriem un program care ar putea măsura numărul de impulsuri produse de senzorul IR la un anumit interval de timp.

Există mai multe modalități de a rezolva o problemă, dar trebuie să alegem care este cea mai bună din aceste coduri. Am măsurat durata dintre întreruperi (senzor IR). Am folosit funcțiile micros () pentru a măsura durata impulsurilor în micro secunde.

puteți utiliza această formulă pentru a măsura RPMRPM = ((1 / durata) * 1000 * 1000 * 60) / lame

unde, durata - intervalul de timp dintre impulsuri.

60 - secunde până la minute

1000 - moară în sec

1000 - micro la moară

lame - nu aripi în elice.

Afișaj LCD - Arduino actualizează comenzile și registrele de date ale afișajului LCD. Care afișează caracterele ASCII pe ecranul LCD.

Pasul 3: Programați-vă Arduino utilizând Arduino IDE

#include

LiquidCrystal lcd (9, 8, 7, 6, 5, 4); const int IR_IN = 2; // senzor IR INPUT nesemnat lung prevmicros; // Pentru a stoca timpul nesemnat de lungă durată; // Pentru a stoca diferența de timp nesemnat lcdrefresh lung; // Pentru a stoca timpul pentru ca LCD să reîmprospăteze rpm; // valoare RPM boolean currentstate; // Starea actuală a scanării intrărilor IR prevstate boolean; // Starea senzorului IR în configurarea anulară a scanării anterioare () {pinMode (IR_IN, INPUT); lcd.inceput (16, 2); prevmicros = 0; prevstate = LOW; } void loop () {//////////////////////////////////////////////// /////////////////////////////////////// RPM Measurement currentstate = digitalRead (IR_IN); // Citiți starea senzorului IR if (prevstate! = Currentstate) // Dacă există o modificare a intrării {if (currentstate == LOW) // Dacă intrarea se schimbă doar de la HIGH la LOW {durata = (micros () - prevmicros); // Diferența de timp între revoluția în rotație microsecundă = ((60000000 / durata) / 3); // rpm = (1 / timp milis) * 1000 * 1000 * 60; prevmicros = micros (); // memorează timpul pentru calculul revoluției nectelor}} prevstate = currentstate; // stocați aceste date de scanare (scanare anterioară) pentru următoarea scanare /////////////////////////////////////// ////////////////////////////////////////////////// Afișaj LCD dacă ((milis () - lcdrefresh)> = 100) {lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Viteza motorului"); lcd.setCursor (0, 1); lcd.print ("RPM ="); imprimare lcd (rpm); lcdrefresh = millis (); }}

Pasul 4: Simulare folosind Proteus

Simulare folosind Proteus
Simulare folosind Proteus

Acest proiect a funcționat perfect când am încercat să simulez acest lucru cu ajutorul proteus.

În loc să folosesc senzorul IR, am folosit un generator de impulsuri DC care va simula impulsul IR similar cu cel generat atunci când razele IR lovesc palele elicelor.

trebuie să faceți modificări programului dvs. în funcție de senzorul pe care îl utilizați

Senzorul IR cu LM358 trebuie să utilizeze această comandă.

if (currentstate == HIGH) // Dacă intrarea se schimbă doar de la LOW la HIGH

Senzorul IR cu LM359 trebuie să utilizeze această comandă.

if (currentstate == LOW) // Dacă intrarea se schimbă doar de la HIGH la LOW

Pasul 5: Executarea hardware-ului

Execuție hardware
Execuție hardware
Execuție hardware
Execuție hardware
Execuție hardware
Execuție hardware

Pentru schemă utilizați imaginile de simulare sau consultați codurile programului și efectuați conexiunile în consecință. Încărcați codul programului pe Arduino și măsurați RPM-ul oricărui motor. Rămâneți la curent cu următoarea mea postare și urmăriți canalul meu de pe YouTube.

Recomandat: