Konter RPM Arduino Menggunakan Sensor Optik
Membangun RPM (revolusi per menit) adalah proyek Arduino klasik dan berguna. Panduan ini berjalan Anda melalui menciptakan Tachometer optik menggunakan LED IR, sebuah fototranstor IR, dan sebuah tampilan LCD 16 x 2. Hasilnya adalah RPM counter sederhana yang akurat cocok untuk motor, penggemar, atau baling-baling.
Ringkasan Projek
Ini counter RPM Arduino bekerja dengan mengganggu balok inframerah dengan objek berputar (seperti baling-baling). Setiap interupsi terdeteksi oleh Arduino, dihitung, dan diubah menjadi nilai RPM yang ditampilkan pada layar LCD.
Fitur kunci:
Real- waktu pengukuran RPM
Optik (non-kontak) sensing
Keluaran LCD untuk pembacaan mudah
Komponen sederhana dan berbiaya rendah
Daftar Bagian
Anda akan membutuhkan komponen berikut:
1 × papan Arduino
1 × 16 × 2 LCD display (HD44780 kompatibel)
1 × 10kmemungkinkan potentiometer (kontrol kontras LCD)
1 × 10ká resistor
1 × LED IR
1 × IR fototranstor
Kabel jumper
Instruksi Kabel
Ikuti langkah-langkah ini hati-hati untuk merakit sirkuit. Setiap bagian menjelaskan persis di mana setiap kawat harus pergi untuk menghindari kebingungan.
Distribusi Daya
Hubungkan Pin Arduino 5V ke breadboard rel positif.
Hubungkan Pin GND Arduino ke breadboard deretan.
Pastikan semua komponen (LCD, potentiometer, IR LED, dan fototransstor) berbagi tanah umum ini.
Koneksi LCD dan Potentiometer (16 × 2 LCD Parallel)
LCD Pin 1 (VSS) Ground
LCD Pin 2 (VDD) £5V
LCD Pin 3 (VO) Pin tengah 10k Optipotentiometer
Pin sisi potentiometer 5.V dan Ground (digunakan untuk menyesuaikan kontras LCD)
LCD Pin 4 (RS) Pin digital Arduino 7
LCD Pin 5 (RW) Ground (LCD diset ke mode tulis)
LCD Pin 6 (E) Pin digital Arduino 8
LCD Pin 11 (D4) Pin digital Arduino 9
LCD Pin 12 (D5) Pin digital Arduino 10
LCD Pin 13 (D6) Pin digital Arduino 11
LCD Pin 14 (D7) Pin digital Arduino 12
LCD Backlight
Pin 15 (A) £5V melalui resistor
Pin 16 (K) Ground
LED IR (Transmitter)
Anode (memimpin lagi) Arduino pin digital 13
Kathode (memimpin lebih pendek) Ground
LED IR tetap ON terus memancarkan sinar inframerah terhadap fototransstor.
IR Phototranstor (Penerima)
Kolektor (memimpin lebih pendek) Arduino pin digital 2
Emitter (lebih panjang memimpin) Ground
Posisi fototranstor langsung menghadapi LED IR sehingga balok terganggu oleh obyek berputar.
Pemeriksaan Akhir
Pastikan semua koneksi dasar umum.
Periksa ulang nomor pin sebelum mengaktifkan sirkuit.
Sesuaikan poteniometer sampai teks jelas terlihat pada LCD.
Tip: Pin digital 2 digunakan karena mendukung perangkat keras interupsi, memungkinkan Arduino untuk menghitung balok interupsi secara akurat dan menghitung RPM diandalkan.
Kode Arduino
Upload sketsa berikut ke papan Arduino Anda:
/*
* Optical Tachometer
*
* Uses an IR LED and IR phototransistor to implement an optical tachometer.
* The IR LED is connected to pin 13 and runs continuously.
* Digital pin 2 (interrupt 0) is connected to the IR detector.
*/
#include
int ledPin = 13; // IR LED connected to digital pin 13
volatile byte rpmcount;
unsigned int rpm;
unsigned long timeold;
// Initialize the LCD with the interface pins
LiquidCrystal lcd(7, 8, 9, 10, 11, 12);
void rpm_fun() {
// This interrupt runs every time the IR beam is cut
rpmcount++;
}
void setup() {
lcd.begin(16, 2); // Initialize the LCD
// Attach interrupt to digital pin 2 (interrupt 0)
attachInterrupt(0, rpm_fun, FALLING);
// Turn on IR LED
pinMode(ledPin, OUTPUT);
digitalWrite(ledPin, HIGH);
rpmcount = 0;
rpm = 0;
timeold = 0;
}
void loop() {
// Update RPM every second
delay(1000);
// Temporarily stop interrupts during calculation
detachInterrupt(0);
rpm = 30 * 1000 / (millis() - timeold) * rpmcount;
timeold = millis();
rpmcount = 0;
// Display RPM on LCD
lcd.clear();
lcd.print("RPM=");
lcd.print(rpm);
// Re-enable interrupt
attachInterrupt(0, rpm_fun, FALLING);
}
Memahami Kalkulasi RPM
Proyek ini mengasumsikan dua interupsi setiap revolusi, seperti ketika menggunakan motor dengan dua baling-baling pisau.
Itu sebabnya perhitungan RPM menggunakan formula ini:
rpm = 30 * 1000 / (millis() - timeold) * rpmcount;
Menyesuaikan untuk Penyiapan Anda
Satu gangguan setiap revolusi:
Ganti30dengan60Lebih pisau atau tanda:
Bagi60dengan jumlah interupsi per rotasi penuh dan update formula sesuai.
Fleksibilitas ini memungkinkan Anda untuk menyesuaikan proyek ke motor yang berbeda dan obyek yang berputar.
Catatan Akhir
Pastikan IR LED dan fototranstor benar selaras untuk pembacaan yang dapat diandalkan.
Gunakan tape reflektif atau disk yang digeser untuk interupsi sinar yang lebih konsisten.
Proyek ini dapat diperpanjang dengan log data RPM atau menambahkan keluaran serial.
Siap untuk membangun?
Konter RPM Arduino ini merupakan pondasi besar bagi proyek kontrol motor, robotika, dan diagnosa mekanis. Kumpulkan komponen, upload kode, dan mulai mengukur RPM dengan keyakinan.