Penghitung RPM Arduino Kecepatan Tinggi dengan Algoritma Baru
Komponen dan perlengkapan
Arduino UNO
×
1
Sensor proximity IR
Gunakan sensor yang direkomendasikan dalam proyek ini jika tidak hasilnya mungkin bervariasi
×
1
Kabel Jumper (umum)
×
3
Dioda Laser, 655 nm
Anda dapat menggunakan pemutar laser siap pakai dan tidak harus yang disebutkan di atas.
×
1
Motor DC (umum)
ini untuk pengujian.
×
1
Kabel USB-A ke Mini-USB
×
1
Baterai, 9 V
×
1
Alat dan mesin yang diperlukan
Kawat Las, Bebas Timbal
Paku pengelasan (umum)
hanya untuk melas kabel ke kaki motor. Anda dapat menggunakan cara lain juga.
Aplikasi dan layanan online
Arduino IDE
Tentang proyek ini
Proyek ini dikembangkan darinolsebagai upaya untuk mengukur nilai RPM (PutaranperMenit) yang tepat dari berbagai motor menggunakan satu sensorIR, papan Arduino danbahan pentingkunci - Pemutar Laser (perlu Merah).
Proyek ini menggunakan fakta bahwa sensor IR juga membaca radiasi IR rendah yang dikeluarkan oleh laser merah. Namun saat laser biru/hijau digunakan radiasi IRnya sangat sedikit dan tegangan baca analog turun hingga sekitar 0.
Saat daun kipas yang terpasang pada motor masuk ke jalur sinar laser itu menghalangi jalan dan pembacaan turun ke 0. Daun kipas terus berputar dan posisinya terus berubah dengan pasokan daya konstan. Terjadi perubahan jalur yang konstan. Saat jalur menjadi jelas lagi, sinar laser memantul ke sensor lagi.
KODE BERBASIS ALGORITMA SINGLE SHOT BARU, UNTUK PENGUKURAN YANG LEBIH CEPAT DAN LEBIH ADAPTIF TERHADAP PERUBAHAN :-
Kode untuk proyek ini yang dikembangkan oleh saya menggunakan algoritma baru yang dikembangkan untuk proyek ini.Algoritma ini memang unik dan dibangun untuk melakukan pengukuran dalam kurang dari 40 milidetik dan memberikan hasil yang akurat. Fitur sangat penting dari program ini adalah bahwa ia menggunakan metode yang saya sebut Deteksi Single Shot untuk Arduino. Ini menghitung RPM motor setiap kali daun kipas menciptakan halangan di jalur sinar laser. Ini karena halangan jalur sinar laser menandai 1/n revolusi lengkap untuk n daun kipas di kipas. Jadi, program sangatsensitifterhadapbahkan perubahan kecil dalam RPM (hingga 2 tempat desimal) dalamsetiap1/nkerevolusidaun kipas lagidi mananadalahjumlahdaunkepala kipas.Oleh karena itu algoritma Deteksi Single Shot unik ini memberikan nilai RPM yang sangat akuratdan sensitivitas lebih tinggi terhadap perubahan pengukuran.
Padagambar di atasyang ditampilkandarisampel outputdarimonitor serialdalamuji coba,laju outputpemeriksaandapatdilihatyangadalahsekitar2kalidetik.NilaiRPMdihitunghinggaduatempatdesimalsetiapkali.
Semua orang yang melihat ini harus mencoba proyek ini sekali dan berbagi ulasan berharga Anda. Ceritakan tentang eksperimen dan hasilnya yang terkait dengan algoritma ini. Saran untuk proyek baru dipersilakan di bagian komentar. Jika Anda menyukai proyek ini, hormati.
Ikuti profil saya dengan mengetuk tautan ini(https://create.arduino.cc/projecthub/YASH36) @YASH36 untuk beberapa pembaruan proyek baru.
Sampai nanti, Tetap Aman dan nikmati Arduino!!
Kode
RPM_counter_101
RPM_counter_101Arduino
Ini adalah kode untuk penghitung RPM.
//kode oleh YaSh. int sen = A0; const float wid = 0.012; //sesuaikan lebar daun kipas sesuai kebutuhan Anda. const float rad = 0.045; //sesuaikan jari-jari titik deteksi pada daun kipas. const float konst = 6.2832; // 2*pi. float time_1; float time_2; float vel; float diff; float tnet; float rpm; void setup() { Serial.begin(9600); pinMode(sen,INPUT); Serial.print(" \n silakan mulai motor setidaknya 3 detik sebelumnya.\n"); delay(3000); } void loop() { if(analogRead(sen)<950) { time_1 = millis(); delay(30); } if(analogRead(sen)>950) { time_2 = millis(); diff = (time_2-time_1); vel = wid/diff; //kecepatan rotasi tnet = (konst*rad)/vel; //waktu = (2*pi*jari-jari)/kecepatan. rpm = (60000)/tnet; //konversi waktu dalam ms ke menit dan kemudian ke rpm. } Serial.print("\n RPM adalah : "); Serial.println( rpm ); }
Skema
ini adalah gambar untuk dasar dan penempatan komponen lainskema untuk menghubungkan sensor ke papan arduino