Cuprins:
- Pasul 1: Pasul: 1 Asigurați-vă de starea de lucru a senzorilor și dispozitivelor
- Pasul 2: Cum funcționează?
- Pasul 3: Programați-vă Arduino utilizând Arduino IDE
- Pasul 4: Simulare folosind Proteus
- Pasul 5: Executarea hardware-ului
Video: Măsurarea vitezei motorului utilizând Arduino: 6 pași
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:41
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
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
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:
Circuit de control al vitezei motorului DC: 5 pași
Circuitul de control al turației motorului DC: În acest scurt articol, vom afla cum să formăm un circuit de feedback negativ al turației motorului DC. În principal, vom afla cum funcționează circuitul și ce înseamnă semnalul PWM? și modul în care semnalul PWM este utilizat pentru a regla
Controlul vitezei și direcției motorului Arduino DC folosind un potențiometru și butoane: 6 pași
Arduino Control Viteza și direcția motorului DC folosind un potențiometru și butoane: În acest tutorial vom învăța cum să folosiți un driver L298N DC MOTOR CONTROL și un potențiometru pentru a controla viteza și direcția unui motor DC cu ajutorul a două butoane
Controlul vitezei și direcției motorului Arduino DC folosind un potențiometru: 6 pași
Arduino Control Viteza și direcția motorului DC folosind un potențiometru: În acest tutorial vom învăța cum să folosiți un driver L298N DC MOTOR CONTROL și un potențiometru pentru a controla viteza și direcția unui motor DC. Vedeți un videoclip demonstrativ
DIRECȚIA ȘI CONTROLUL VITEZEI MOTORULUI CC CU UTILIZAREA LABVIEW (PWM) ȘI ARDUINO: 5 pași
DIRECȚIA ȘI CONTROLUL VITEZEI MOTORULUI CC CU UTILIZAREA LABVIEW (PWM) ȘI ARDUINO: Bună ziua, băieți, în primul rând îmi pare rău pentru engleza mea amuzantă
Controlul vitezei motorului DC folosind algoritmul PID (STM32F4): 8 pași (cu imagini)
Controlul vitezei motorului de curent continuu folosind algoritmul PID (STM32F4): salut tuturor, asta este tahir ul haq cu un alt proiect. De data aceasta este STM32F407 ca MC. Acesta este un proiect de sfârșit de semestru. Sper că vă place. Necesită o mulțime de concepte și teorie, așa că mergem mai întâi în ea. Odată cu apariția computerelor și a