Daftar Isi:

RPM Meter Dengan STM32: 8 Langkah
RPM Meter Dengan STM32: 8 Langkah

Video: RPM Meter Dengan STM32: 8 Langkah

Video: RPM Meter Dengan STM32: 8 Langkah
Video: Using encoder to measure RPM in STM32F4 2024, November
Anonim
RPM Meter Dengan STM32
RPM Meter Dengan STM32

Meskipun agak merepotkan untuk membeli (karena tidak tersedia di banyak toko internet), saya merasa perlu untuk membahas STM32 L432KC. Chip ini layak mendapatkan perhatian khusus, karena DAYA ULTRA RENDAH. Namun, bagi mereka yang tidak memiliki STM32, dalam proyek ini dapat diganti dengan Arduino Uno. Untuk melakukan ini, cukup ubah pin input Interrupt.

Mari kita buat RPM meter menggunakan STM32 L432KC dan sensor inframerah. Program yang sama ini juga dapat digunakan untuk mengukur kecepatan angin. Fitur daya rendah mikrokontroler ini sangat cocok untuk IOT.

Langkah 1: Modul

Modul
Modul
Modul
Modul

Untuk proyek kami hari ini, kami menggunakan MAX7219CWG 8 digit, serta Modul Inframerah.

Langkah 2: STM32 NUCLEO-L432KC

STM32 NUCLEO-L432KC
STM32 NUCLEO-L432KC

Langkah 3: Demonstrasi

Demonstrasi
Demonstrasi

Dalam perakitan kami, kami memiliki STM32, layar 8 digit, dan input pulsa. Kartu inframerah memiliki fototransistor dan LED yang menangkap cahaya dengan memantulkan pita putih. Pita ini melekat pada roda dan, pada setiap putaran, akan menghasilkan pulsa, yang akan ditangkap oleh interupsi STM32.

Kami memiliki dioda dan kapasitor di rakitan yang digunakan untuk mencegah kebisingan dari sinyal pembacaan pita mencapai STM32, yang akan membuatnya menafsirkan hidup dan mati.

Demonstrasi menunjukkan proyek kami, serta meteran Minipa (keduanya beroperasi).

Langkah 4: Perakitan

perakitan
perakitan

Langkah 5: Program

Kami akan melakukan program di mana modul inframerah akan memicu interupsi di STM32 L432KC setiap "belokan", dan kami akan melakukan perhitungan untuk menampilkan RPM di layar.

Langkah 6: Perpustakaan

Perpustakaan
Perpustakaan

Tambahkan perpustakaan "DigitLedDisplay" berikut.

Cukup akses "Sketsa >> Sertakan Perpustakaan >> Kelola Perpustakaan …"

Langkah 7: Kode Sumber

Pustaka dan Variabel

Mari kita mulai kode sumber termasuk perpustakaan DigitLedDisplay. Kami akan menunjukkan objek tampilan. Saya mengatur pin interupsi, yang akan menjadi 12. Juga, saya memasukkan operator volatil untuk penghitung RPM dan waktu untuk menghindari masalah tabrakan.

/* Sertakan DigitLedDisplay Library */#include "DigitLedDisplay.h" /* Pin Arduino untuk Menampilkan Pin 7 ke DIN, 6 ke CS, 5 ke CLK */ //DigitLedDisplay ld = DigitLedDisplay(7, 6, 5); //arduino DigitLedDisplay ld = DigitLedDisplay(4, 2, 3); //STM32 L432KC int pin = 12; //pino de interrupção (módulo IR) volatil unsigned int rpm; //contador de rpm volatile unsigned long timeold; //tempo

Mempersiapkan

Di Setup, kami mengonfigurasi operasi tampilan, serta mengonfigurasi interupsi sebagai Rising.

void setup() {Serial.begin(115200); /* Mengatur kecerahan min:1, max:15 */ ld.setBright(10); /* Mengatur jumlah digit */ ld.setDigitLimit(8); ld.printDigit(0); attachInterrupt(digitalPinToInterrupt(pin), interruptPin, RISING); rpm = 0; waktu = mili(); }

Lingkaran

Akhirnya, kami menentukan interval 1 dalam 1 menit untuk memperbarui tampilan. Setelah membersihkan layar, kami mencetak RPM. Kami melakukan fungsi yang akan dipanggil oleh interupsi. Kami menghitung RPM dan waktu pembaruan.

void loop() { penundaan(1000); ld.clear(); ld.printDigit(rpm); } void interruptPin() { rpm = 60*1000/(millis() - timeold); waktu = mili(); }

Langkah 8: File

Unduh file:

PDF

SAYA TIDAK

Direkomendasikan: