Isi kandungan:

Pengukuran Kelajuan Motor Menggunakan Arduino: 6 Langkah
Pengukuran Kelajuan Motor Menggunakan Arduino: 6 Langkah

Video: Pengukuran Kelajuan Motor Menggunakan Arduino: 6 Langkah

Video: Pengukuran Kelajuan Motor Menggunakan Arduino: 6 Langkah
Video: Tinkercad | Arduino basic : Mengatur kecepatan dan arah putaran motor DC | simulator 2024, Julai
Anonim
Pengukuran Kelajuan Motor Menggunakan Arduino
Pengukuran Kelajuan Motor Menggunakan Arduino
Pengukuran Kelajuan Motor Menggunakan Arduino
Pengukuran Kelajuan Motor Menggunakan Arduino
Pengukuran Kelajuan Motor Menggunakan Arduino
Pengukuran Kelajuan Motor Menggunakan Arduino

Adakah sukar untuk mengukur rpm motor ??? Saya rasa tidak begitu. Inilah satu penyelesaian mudah.

Hanya satu sensor IR dan Arduino dalam kit anda yang dapat melakukannya.

Dalam posting ini saya akan memberikan tutorial ringkas yang menerangkan cara mengukur RPM mana-mana motor menggunakan sensor IR dan Arduino UNO / nano

Bekalan:

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

2. Sensor IR (Amazon)

3. Motor DC mana-mana (Amazon)

4. LCD 16 * 2 (Amazon)

Alatan Yang Digunakan

1. Besi Pematerian (Amazon)

2. Wire Stripper (Amazon)

Langkah 1: Langkah: 1 Pastikan Keadaan Kerja Sensor dan Peranti

Apa itu Sensor IR? Sensor IR adalah alat elektronik, yang memancarkan cahaya untuk merasakan beberapa objek di sekitarnya. Sensor IR dapat mengukur kepanasan objek serta mengesan pergerakannya. Biasanya, dalam spektrum inframerah, semua objek memancarkan beberapa bentuk sinaran termal. Jenis sinaran ini tidak dapat dilihat oleh mata kita, tetapi sensor inframerah dapat mengesan sinaran ini.

Apa itu Motor DC? Motor arus terus (DC) adalah sejenis mesin elektrik yang menukar tenaga elektrik menjadi tenaga mekanikal. Motor DC mengambil kuasa elektrik melalui arus terus, dan menukar tenaga ini menjadi putaran mekanikal.

Motor DC menggunakan medan magnet yang berlaku dari arus elektrik yang dihasilkan, yang menggerakkan pergerakan pemutar yang tetap di dalam batang output. Tork dan kelajuan output bergantung pada input elektrik dan reka bentuk motor.

Apa itu Arduino?

Arduino adalah platform elektronik sumber terbuka berdasarkan perkakasan dan perisian yang mudah digunakan. Papan Arduino dapat membaca input - cahaya pada sensor, jari pada butang, atau mesej Twitter - dan mengubahnya menjadi output - mengaktifkan motor, menyalakan LED, menerbitkan sesuatu dalam talian. Anda boleh memberitahu lembaga anda apa yang harus dilakukan dengan menghantar satu set arahan kepada mikrokontroler di papan. Untuk melakukannya, anda menggunakan bahasa pengaturcaraan Arduino (berdasarkan Pendawaian), dan Perisian Arduino (IDE), berdasarkan Pemprosesan.

Muat turun ARDUINO IDE

Langkah 2: Bagaimana Ia Berfungsi?

Jadi apa logik di sebalik ini ??

Ia berfungsi sama seperti pengekod. Pengekod sukar difahami untuk pemula. Yang perlu anda ketahui ialah sensor IR menghasilkan nadi dan kami mencari selang waktu antara setiap nadi.

Dalam kes ini, sensor IR akan menghantar nadi ke Arduino apabila sinar IRnya dipintas dengan baling-baling motor. Biasanya kami menggunakan baling-baling dengan dua bilah tetapi saya telah menggunakan baling-baling dengan tiga bilah seperti yang ditunjukkan dalam gambar. bergantung pada bilangan bilah baling-baling kita perlu mengubah beberapa nilai semasa mengira RPM.

mari kita anggap kita mempunyai baling-baling yang mempunyai dua bilah. Untuk setiap motor revolusi bilah akan memintas sinar IR dua kali. Oleh itu sensor IR akan menghasilkan denyutan bila-bila masa pintasan.

Sekarang kita harus menulis program yang dapat mengukur jumlah denyutan yang dihasilkan oleh sensor IR pada selang waktu tertentu.

Terdapat lebih daripada satu cara untuk menyelesaikan masalah tetapi kita mesti memilih mana yang terbaik dalam kod ini. Saya telah mengukur jangka masa antara gangguan (sensor IR) Saya menggunakan fungsi mikro () untuk mengukur jangka masa denyutan dalam beberapa saat mikro.

anda boleh menggunakan Formula ini untuk mengukur RPMRPM = ((1 / tempoh) * 1000 * 1000 * 60) / bilah

di mana, jangka masa - selang masa antara denyutan.

60 - saat hingga minit

1000 - kilang hingga saat

1000 - mikro hingga kilang

bilah - tiada sayap di baling-baling.

Paparan LCD - Arduino mengemas kini arahan dan daftar data paparan LCD. Yang memaparkan watak ASCII pada paparan LCD.

Langkah 3: Program Arduino Anda Menggunakan Arduino IDE

#sertakan

LiquidCrystal lcd (9, 8, 7, 6, 5, 4); const int IR_IN = 2; // Sensor IR INPUT prevmicros panjang yang tidak ditandatangani; // Untuk menyimpan masa yang lama tidak ditandatangani; // Untuk menyimpan perbezaan masa lcdrefresh panjang yang tidak ditandatangani; // Untuk menyimpan masa lcd untuk menyegarkan semula rpm; // Nilai RPM boolean currentstate; // Keadaan semasa imbasan input IR boolean prevstate; // Keadaan sensor IR dalam penyediaan kekosongan imbasan sebelumnya () {pinMode (IR_IN, INPUT); lcd.begin (16, 2); prevmicros = 0; prevstate = RENDAH; } gelung void () {//////////////////////////////////////////// ///////////////////////////////////// RPM Pengukuran arus semasa = digitalRead (IR_IN); // Baca keadaan sensor IR jika (prevstate! = Currentstate) // Sekiranya terdapat perubahan input {if (currentstate == LOW) // Jika input hanya berubah dari TINGGI ke RENDAH {durasi = (mikro () - prevmicros); // Perbezaan masa antara revolusi dalam mikrodetik rpm = ((60000000 / tempoh) / 3); // rpm = (1 / milisa waktu) * 1000 * 1000 * 60; prevmicros = mikro (); // menyimpan masa untuk pengiraan revolusi nect}} prevstate = currentstate; // simpan data imbasan ini (scan sebelumnya) untuk imbasan berikutnya ///////////////////////////////////// /////////////////////////////////////////////// Paparan LCD jika ((milis () - lcdrefresh)> = 100) {lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Kelajuan Motor"); lcd.setCursor (0, 1); lcd.print ("RPM ="); lcd.print (rpm); lcdrefresh = milis (); }}

Langkah 4: Simulasi Menggunakan Proteus

Simulasi Menggunakan Proteus
Simulasi Menggunakan Proteus

Projek ini berfungsi dengan baik semasa saya mencuba simulasi ini dengan bantuan proteus.

Daripada menggunakan sensor IR, saya menggunakan penjana denyut DC yang mana akan mensimulasikan denyutan IR yang serupa dengan yang dihasilkan ketika sinar IR memukul bilah baling-baling.

anda harus membuat perubahan pada program anda bergantung pada sensor yang anda gunakan

Sensor IR dengan LM358 mesti menggunakan arahan ini.

if (currentstate == TINGGI) // Sekiranya input hanya berubah dari RENDAH ke TINGGI

Sensor IR dengan LM359 mesti menggunakan arahan ini.

if (currentstate == LOW) // Sekiranya input hanya berubah dari TINGGI ke RENDAH

Langkah 5: Pelaksanaan Perkakasan

Pelaksanaan Perkakasan
Pelaksanaan Perkakasan
Pelaksanaan Perkakasan
Pelaksanaan Perkakasan
Pelaksanaan Perkakasan
Pelaksanaan Perkakasan

Untuk skematik, gunakan gambar simulasi atau rujuk kod program dan buat sambungannya dengan sewajarnya. Muat naik kod program ke Arduino dan ukur RPM motor mana pun. Nantikan catatan saya yang seterusnya dan tonton saluran YouTube saya.

Disyorkan: