Talaan ng mga Nilalaman:

Pagsukat sa Bilis ng Motor Gamit ang Arduino: 6 Hakbang
Pagsukat sa Bilis ng Motor Gamit ang Arduino: 6 Hakbang

Video: Pagsukat sa Bilis ng Motor Gamit ang Arduino: 6 Hakbang

Video: Pagsukat sa Bilis ng Motor Gamit ang Arduino: 6 Hakbang
Video: Control Position and Speed of Stepper motor with L298N module using Arduino 2024, Nobyembre
Anonim
Pagsukat sa Bilis ng Motor Gamit ang Arduino
Pagsukat sa Bilis ng Motor Gamit ang Arduino
Pagsukat sa Bilis ng Motor Gamit ang Arduino
Pagsukat sa Bilis ng Motor Gamit ang Arduino
Pagsukat sa Bilis ng Motor Gamit ang Arduino
Pagsukat sa Bilis ng Motor Gamit ang Arduino

Mahirap bang masukat ang rpm ng motor ??? Sa palagay ko hindi. Narito ang isang simpleng solusyon.

Isang IR sensor at Arduino lamang sa iyong kit ang makakagawa nito.

Sa post na ito ay magbibigay ako ng isang simpleng tutorial na nagpapaliwanag kung paano sukatin ang RPM ng anumang motor gamit ang IR sensor at Arduino UNO / nano

Mga Pantustos:

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

2. IR Sensor (Amazon)

3. DC motor any (Amazon)

4. LCD 16 * 2 (Amazon)

Mga Kagamitang Ginamit

1. Soldering Iron (Amazon)

2. Wire Stripper (Amazon)

Hakbang 1: Hakbang: 1 Tiyaking Nagtatrabaho sa Kalagayan ng Mga Sensor at Device

Ano ang isang IR Sensor? Ang IR sensor ay isang elektronikong aparato, na nagpapalabas ng ilaw upang maunawaan ang ilang bagay ng paligid. Maaaring sukatin ng isang IR sensor ang init ng isang bagay pati na rin ang pagtuklas ng paggalaw. Karaniwan, sa infrared spectrum, ang lahat ng mga bagay ay nagliliwanag ng ilang anyo ng thermal radiation. Ang mga uri ng radiasyon na ito ay hindi nakikita ng ating mga mata, ngunit maaaring makita ng infrared sensor ang mga radiation na ito.

Ano ang isang DC Motor? Ang isang direktang kasalukuyang (DC) motor ay isang uri ng de-kuryenteng makina na nagko-convert ng elektrikal na enerhiya sa mekanikal na enerhiya. Ang DC motors ay kumukuha ng kuryenteng elektrikal sa pamamagitan ng direktang kasalukuyang, at binago ang enerhiya na ito sa mekanikal na pag-ikot.

Ang mga DC motor ay gumagamit ng mga magnetic field na nagaganap mula sa mga de-koryenteng alon na nabuo, na nagpapagana sa paggalaw ng isang rotor na naayos sa loob ng output shaft. Ang output torque at bilis ay nakasalalay sa parehong electrical input at ang disenyo ng motor.

Ano ang Arduino?

Ang Arduino ay isang open-source electronics platform batay sa madaling gamiting hardware at software. Nabasa ng mga board ng Arduino ang mga input - ilaw sa isang sensor, isang daliri sa isang pindutan, o isang mensahe sa Twitter - at ginawang isang output - pinapagana ang isang motor, binubuksan ang isang LED, naglathala ng isang bagay sa online. Maaari mong sabihin sa iyong board kung ano ang gagawin sa pamamagitan ng pagpapadala ng isang hanay ng mga tagubilin sa microcontroller sa board. Upang magawa mo ito, ginagamit mo ang wika ng programa ng Arduino (batay sa Mga Kable), at ang Arduino Software (IDE), batay sa Pagproseso.

I-download ang ARDUINO IDE

Hakbang 2: Paano Ito Gumagana?

Kaya ano ang lohika sa likod nito ??

Gumagawa ito ng halos katulad sa encoder. Ang mga encoder ay nahihintulutan nang mahirap intindihin para sa mga nagsisimula. Ang kailangan mo lamang malaman ay ang IR sensor ay bumubuo ng pulso at natutuklasan namin ang agwat ng oras sa pagitan ng bawat pulso.

Sa kasong ito ang IR sensor ay magpapadala ng isang pulso sa Arduino kung kailan ang IR beam nito ay naharang sa mga motor propeller. Karaniwan gumagamit kami ng mga propeller na may dalawang talim ngunit gumamit ako ng tagabunsod na may tatlong talim tulad ng ipinakita sa pigura. depende sa bilang ng mga propeller blades kailangan nating baguhin ang ilang mga halaga habang kinakalkula ang RPM.

isaalang-alang natin na mayroon tayong isang tagabunsod na mayroong dalawang talim. Para sa bawat motor na rebolusyon ang talim ay makagambala sa IR ray dalawang beses. Sa gayon ang IR sensor ay gagawa ng mga pulso kahit kailan ang mga humarang.

Ngayon kailangan naming magsulat ng isang programa na maaaring masukat ang bilang ng mga pulso na ginawa ng IR sensor sa isang partikular na agwat ng oras.

Mayroong higit sa isang paraan upang malutas ang isang problema ngunit dapat nating piliin kung alin ang pinakamahusay sa mga code na ito na nasukat ko ang tagal sa pagitan ng mga nakakagambala (IR sensor) Ginamit ko ang mga pagpapaandar ng micros () upang masukat ang tagal ng mga pulso sa mga micro segundo.

maaari mong gamitin ang Formula na ito upang masukat ang RPMRPM = ((1 / tagal) * 1000 * 1000 * 60) / blades

kung saan, tagal - agwat ng oras sa pagitan ng mga pulso.

60 - segundo hanggang minuto

1000 - mill hanggang sec

1000 - micro to mill

mga blades - wala ng mga pakpak sa propeller.

LCD Display - Ina-update ng Arduino ang command at mga rehistro ng data ng LCD display. Na nagpapakita ng mga ASCII character sa LCD display.

Hakbang 3: I-program ang Iyong Arduino Gamit ang Arduino IDE

# isama

LiquidCrystal lcd (9, 8, 7, 6, 5, 4); const int IR_IN = 2; // IR sensor INPUT unsigned long prevmicros; // To store time unsigned long duration; // Upang maiimbak ang pagkakaiba ng oras na hindi napirmahan mahabang lcdrefresh; // To store time for lcd to refresh int rpm; // RPM na halaga ng boolean currentstate; // Kasalukuyang estado ng IR input scan boolean prevstate; // State of IR sensor sa nakaraang pag-scan na void setup () {pinMode (IR_IN, INPUT); lcd.begin (16, 2); prevmicros = 0; prevstate = LOW; } void loop () {// ///. ///. // ///. // Basahin ang estado ng IR sensor kung (prevstate! = Currentstate) // Kung mayroong pagbabago sa pag-input {kung (currentstate == LOW) // Kung ang pagbabago ay nagbabago lamang mula sa TAAS patungo sa LOW {tagal = (micros () - prevmicros); // Time pagkakaiba sa pagitan ng rebolusyon sa microsecond rpm = ((60000000 / tagal) / 3); // rpm = (1 / time millis) * 1000 * 1000 * 60; prevmicros = micros (); // time store para sa pagkalkula ng nect Revolution}} prevstate = currentstate; // iimbak ang data ng pag-scan na ito (bago ang pag-scan) para sa susunod na pag-scan // ///. // /// ((millis () - lcdrefresh)> = 100) {lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Bilis ng Motor"); lcd.setCursor (0, 1); lcd.print ("RPM ="); lcd.print (rpm); lcdrefresh = millis (); }}

Hakbang 4: Simulation Paggamit ng Proteus

Simulation Paggamit ng Proteus
Simulation Paggamit ng Proteus

Ang proyektong ito ay gumana ng perpektong pagmultahin kapag sinubukan kong gayahin ito sa tulong ng proteus.

Sa halip na gumamit ng IR sensor gumamit ako ng DC pulse generator. Alin ang magkakatulad ng IR pulso na katulad sa isang nabuo kapag ang IR rays ay tumama sa mga propeller blades.

kailangan mong gumawa ng mga pagbabago sa iyong programa depende sa sensor na iyong ginagamit

Dapat gamitin ng IR sensor na may LM358 ang utos na ito.

kung (currentstate == MATAAS) // Kung ang input ay nagbabago lamang mula sa LOW to HIGH

Dapat gamitin ng IR sensor na may LM359 ang utos na ito.

kung (currentstate == LOW) // Kung ang input ay nagbabago lamang mula SA TAAS hanggang sa LOW

Hakbang 5: Pagpapatupad ng Hardware

Pagpapatupad ng Hardware
Pagpapatupad ng Hardware
Pagpapatupad ng Hardware
Pagpapatupad ng Hardware
Pagpapatupad ng Hardware
Pagpapatupad ng Hardware

Para sa eskematiko gamitin ang mga larawan ng kunwa o sumangguni sa mga code ng programa at gawin ang mga koneksyon nang naaayon. I-upload ang code ng programa sa Arduino at sukatin ang RPM ng anumang motor. Abangan ang susunod kong post at panoorin ang aking channel sa YouTube.

Inirerekumendang: