Isi kandungan:

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

Video: Meter RPM Dengan STM32: 8 Langkah

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

Walaupun agak sukar untuk dibeli (kerana ia tidak terdapat di banyak kedai internet), saya perlu membincangkan STM32 L432KC. Cip ini memerlukan kasih sayang istimewa, kerana ia adalah ULTRA LOW POWER. Walau bagaimanapun, bagi mereka yang tidak memiliki STM32, ia boleh diganti dalam projek ini oleh Arduino Uno. Untuk melakukan ini, cukup ubah pin input Interrupt.

Mari kita buat meter RPM menggunakan STM32 L432KC dan sensor inframerah. Program yang sama ini juga dapat digunakan untuk mengukur kelajuan angin. Ciri kuasa rendah mikrokontroler ini sangat sesuai untuk IOT.

Langkah 1: Modul

Modul
Modul
Modul
Modul

Untuk projek 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 pemasangan kami, kami mempunyai STM32, paparan 8 digit, dan input nadi. Kad inframerah mempunyai fototransistor dan LED yang menangkap cahaya dengan memantulkan pita putih. Pita ini dilekatkan pada roda dan, pada setiap putaran, akan menghasilkan nadi, yang akan ditangkap oleh gangguan STM32.

Kami mempunyai dioda dan kapasitor dalam pemasangan yang digunakan untuk mencegah bunyi isyarat pembacaan pita sampai ke STM32, yang akan menjadikannya menafsirkan hidup dan mati.

Demonstrasi menunjukkan projek kami, serta meter Minipa (kedua-duanya sedang beroperasi).

Langkah 4: Perhimpunan

perhimpunan
perhimpunan

Langkah 5: Program

Kami akan melakukan program di mana modul inframerah akan mencetuskan gangguan pada STM32 L432KC setiap "giliran", dan kami akan melakukan pengiraan untuk memaparkan RPM pada paparan.

Langkah 6: Perpustakaan

Perpustakaan
Perpustakaan

Tambahkan pustaka "DigitLedDisplay" berikut.

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

Langkah 7: Kod Sumber

Perpustakaan dan Pemboleh ubah

Mari mulakan kod sumber termasuk perpustakaan DigitLedDisplay. Kami akan menunjukkan objek paparan. Saya menetapkan pin interrupt, yang akan menjadi 12. Juga, saya memasukkan operator yang tidak stabil untuk kedua-dua kaunter RPM dan masa untuk mengelakkan masalah perlanggaran.

/ * Sertakan DigitLedDisplay Library * / # include "DigitLedDisplay.h" / * Arduino Pin to Display Pin 7 to DIN, 6 to CS, 5 to 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) int rpm yang tidak ditandatangani; // contador de rpm tidak lama tidak stabil yang tidak ditandatangani; // tempo

Persediaan

Dalam Persiapan, kami mengkonfigurasi operasi tampilan, dan juga mengkonfigurasi gangguan sebagai Rising.

persediaan tidak sah () {Serial.begin (115200); / * Tetapkan kecerahan min: 1, maksimum: 15 * / ld.setBright (10); / * Tetapkan kiraan digit * / ld.setDigitLimit (8); ld.printDigit (0); attachInterrupt (digitalPinToInterrupt (pin), interruptPin, RISING); rpm = 0; timeold = milis (); }

Gelung

Akhirnya, kami menentukan selang 1 dalam 1 minit untuk mengemas kini paparan. Setelah membersihkan skrin, kami mencetak RPM. Kami menjalankan fungsi yang akan dipanggil oleh gangguan. Kami mengira RPM dan masa kemas kini.

gelung kekosongan () {kelewatan (1000); ld.clear (); ld.printDigit (rpm); } batal interruptPin () {rpm = 60 * 1000 / (millis () - timeold); timeold = milis (); }

Langkah 8: Fail

Muat turun fail:

PDF

INO

Disyorkan: