Obsah:

Otáčkomer s STM32: 8 krokov
Otáčkomer s STM32: 8 krokov

Video: Otáčkomer s STM32: 8 krokov

Video: Otáčkomer s STM32: 8 krokov
Video: STM32 - программирование для начинающих. Пошагово. CubeMX CubeIDE 2024, November
Anonim
Otáčkomer s STM32
Otáčkomer s STM32

Napriek tomu, že kúpa je trochu nepríjemná (pretože nie je dostupná v mnohých internetových obchodoch), považujem za potrebné prediskutovať STM32 L432KC. Tento čip si zaslúži osobitnú náklonnosť, pretože je to ULTRA NÍZKA VÝKON. Avšak pre tých, ktorí nevlastnia STM32, môže byť v tomto projekte nahradený Arduino Uno. Za týmto účelom jednoducho zmeňte kolík vstupu prerušenia.

Vytvorme potom merač otáčok pomocou STM32 L432KC a infračerveného senzora. Ten istý program je možné použiť aj na meranie rýchlosti vetra. Funkcia nízkeho výkonu tohto mikrokontroléra je ideálna pre IOT.

Krok 1: Moduly

Moduly
Moduly
Moduly
Moduly

Pre náš dnešný projekt používame 8-miestny MAX7219CWG, ako aj infračervený modul.

Krok 2: STM32 NUCLEO-L432KC

STM32 NUCLEO-L432KC
STM32 NUCLEO-L432KC

Krok 3: Ukážka

Ukážka
Ukážka

V našej zostave máme STM32, 8-miestny displej a impulzný vstup. Infračervená karta má fototranzistor a diódu LED, ktorá zachytáva svetlo odrazom od bielej stuhy. Táto páska je pripevnená k kolesu a pri každom otočení generuje impulz, ktorý bude zachytený prerušením STM32.

V zostave máme diódu a kondenzátor, ktoré boli použité na zabránenie tomu, aby hluk signálu z čítania pásky dosiahol STM32, čo by spôsobilo jeho interpretáciu zapnutia a vypnutia.

Ukážka ukazuje náš projekt, ako aj merač Minipa (oba v prevádzke).

Krok 4: Zostavenie

zhromaždenie
zhromaždenie

Krok 5: Program

Urobíme program, v ktorom infračervený modul spustí prerušenie v STM32 L432KC každé „otočenie“, a urobíme výpočty na zobrazenie otáčok na displeji.

Krok 6: Knižnice

Knižnice
Knižnice

Pridajte nasledujúcu knižnicu „DigitLedDisplay“.

Jednoducho vstúpte do „Náčrtu >> Zahrnúť knižnice >> Spravovať knižnice …"

Krok 7: Zdrojový kód

Knižnice a premenné

Začnime zdrojovým kódom vrátane knižnice DigitLedDisplay. Ukážeme si zobrazovací objekt. Nastavil som kolík prerušenia, ktorý bude 12. Tiež zadám prchavý operátor pre počítadlo otáčok a čas, aby sa predišlo akýmkoľvek problémom s kolíziou.

/ * Zahrnúť knižnicu DigitLedDisplay */#zahrnúť "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 (modul modulu IR) volatile unsigned int rpm; // contador de rpm volatile unsigned long timeold; // tempo

Nastaviť

V programe Setup konfigurujeme operáciu zobrazenia a tiež konfigurujeme prerušenie ako Rising.

void setup () {Serial.begin (115200); / * Nastavte minimálny jas: 1, maximálny: 15 */ ld.setBright (10); / * Nastaviť počet číslic */ ld.setDigitLimit (8); ld.printDigit (0); attachInterrupt (digitalPinToInterrupt (pin), interruptPin, RISING); otáčky za minútu = 0; timeold = millis (); }

Slučka

Nakoniec určíme interval 1 z 1 minúty na aktualizáciu displeja. Po vyčistení obrazovky vytlačíme otáčky. Vykonávame funkciu, ktorú prerušení vyvolá. Vypočítame otáčky a čas aktualizácie.

void loop () {oneskorenie (1000); ld.clear (); ld.printDigit (ot / min); } neplatné interruptPin () {rpm = 60*1000/(millis () - timeold); timeold = millis (); }

Krok 8: Súbory

Stiahnite si súbory:

PDF

INO

Odporúča: