INHOUDSOPGAWE:

RPM -meter met STM32: 8 stappe
RPM -meter met STM32: 8 stappe

Video: RPM -meter met STM32: 8 stappe

Video: RPM -meter met STM32: 8 stappe
Video: Плата от WeAct на STM32H7B0 cо встроенным дисплеем и камерой.Стоимость комплекта 1300₽. Что скажите? 2024, November
Anonim
RPM -meter met STM32
RPM -meter met STM32

Alhoewel dit 'n oorlas is om te koop (omdat dit nie in baie internetwinkels beskikbaar is nie), vind ek dit nodig om STM32 L432KC te bespreek. Hierdie chip verdien spesiale liefde, want dit is ULTRA LOW POWER. Vir diegene wat nie die STM32 besit nie, kan dit in hierdie projek vervang word deur die Arduino Uno. Om dit te doen, verander eenvoudig die pen van die Interrupt -invoer.

Kom ons maak dan 'n RPM -meter met behulp van die STM32 L432KC en 'n infrarooi sensor. Dieselfde program kan ook gebruik word om windspoed te meet. Die lae-krag funksie van hierdie mikrobeheerder is perfek vir IOT.

Stap 1: Modules

Modules
Modules
Modules
Modules

Vir ons projek vandag gebruik ons die 8-syfer MAX7219CWG, sowel as die infrarooi module.

Stap 2: STM32 NUCLEO-L432KC

STM32 NUCLEO-L432KC
STM32 NUCLEO-L432KC

Stap 3: Demonstrasie

Demonstrasie
Demonstrasie

In ons vergadering het ons die STM32, die 8-syfer-skerm en die polsinvoer. Die infrarooi kaart het 'n fototransistor en 'n LED wat die lig vang deur 'n wit lint af te weerkaats. Hierdie band word aan 'n wiel vasgemaak en sal by elke draai 'n pols genereer wat deur die STM32 -onderbreking vasgelê word.

Ons het 'n diode en 'n kapasitor in die samestelling wat gebruik is om te verhoed dat die geraas van die bandleessignaal die STM32 bereik, wat dit die aan- en afskakeling kan laat interpreteer.

Die demonstrasie toon ons projek, sowel as die Minipa -meter (albei in werking).

Stap 4: Montering

Vergadering
Vergadering

Stap 5: Programmeer

Ons sal 'n program doen waarin die infrarooi module elke "draai" 'n onderbreking in die STM32 L432KC sal veroorsaak, en ons sal die berekeninge doen om die RPM op die skerm te vertoon.

Stap 6: Biblioteke

Biblioteke
Biblioteke

Voeg die volgende "DigitLedDisplay" -biblioteek by.

Gaan eenvoudig na "Skets >> Sluit biblioteke in >> Beheer biblioteke …"

Stap 7: Bronkode

Biblioteke en veranderlikes

Kom ons begin die bronkode, insluitend die DigitLedDisplay -biblioteek. Ons sal die vertoonvoorwerp wys. Ek stel die onderbrekingspen in, wat 12 sal wees. Ek betree 'n onbestendige operateur vir beide die toerusting en die tyd om botsings te voorkom.

/ * Sluit DigitLedDisplay -biblioteek in */#sluit in "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 (IR IR) vlugtige ongetekende int rpm; // contador de rpm vlugtige ongetekende lang tyd; // tempo

Stel op

In die opstelling stel ons die skermbewerking op, sowel as die onderbreking as stygend.

ongeldige opstelling () {Serial.begin (115200); / * Stel die helderheid min: 1, maks: 15 */ ld.setBright (10); / * Stel die syfergetal in */ ld.setDigitLimit (8); ld.printDigit (0); attachInterrupt (digitalPinToInterrupt (pin), interruptPin, RISING); rpm = 0; tydsaam = millis (); }

Lus

Uiteindelik bepaal ons die interval van 1 in 1 minuut om die skerm op te dateer. Nadat ons die skerm skoongemaak het, druk ons die RPM af. Ons voer die funksie uit wat die onderbreking sal noem. Ons bereken RPM en opdateringstyd.

leemte lus () {vertraging (1000); ld.clear (); ld.printDigit (rpm); } leegte interruptPin () {rpm = 60*1000/(millis () - tydoud); tydsaam = millis (); }

Stap 8: lêers

Laai die lêers af:

PDF

EK NEE

Aanbeveel: