Obsah:

Otáčkoměr s STM32: 8 kroků
Otáčkoměr s STM32: 8 kroků

Video: Otáčkoměr s STM32: 8 kroků

Video: Otáčkoměr s STM32: 8 kroků
Video: Только не говори никому.. Как легко можно восстановить жидкокристаллический экран.. 2024, Listopad
Anonim
Otáčkoměr se STM32
Otáčkoměr se STM32

Ačkoli je nákup poněkud obtížný (protože není k dispozici v mnoha internetových obchodech), považuji za nutné diskutovat o STM32 L432KC. Tento čip si zaslouží zvláštní náklonnost, protože je to ULTRA LOW POWER. Avšak pro ty, kteří nevlastní STM32, může být v tomto projektu nahrazen Arduino Uno. Chcete -li to provést, jednoduše změňte kolík vstupu Přerušení.

Pojďme tedy vytvořit měřič otáček pomocí STM32 L432KC a infračerveného senzoru. Stejný program lze také použít k měření rychlosti větru. Funkce nízkého výkonu tohoto mikrokontroléru je ideální pro IOT.

Krok 1: Moduly

Moduly
Moduly
Moduly
Moduly

Pro náš dnešní projekt používáme 8místný MAX7219CWG a infračervený modul.

Krok 2: STM32 NUCLEO-L432KC

STM32 NUCLEO-L432KC
STM32 NUCLEO-L432KC

Krok 3: Ukázka

Demonstrace
Demonstrace

V naší sestavě máme STM32, 8místný displej a pulzní vstup. Infračervená karta má fototranzistor a LED, která zachycuje světlo odrazem od bílé pásky. Tato páska je připevněna ke kolu a při každém otočení generuje impuls, který bude zachycen přerušením STM32.

V sestavě máme diodu a kondenzátor, které byly použity k zabránění šumu signálu čtení pásky na STM32, což by interpretovalo zapnutí a vypnutí.

Demonstrace ukazuje náš projekt a také měřič Minipa (oba v provozu).

Krok 4: Sestavení

Shromáždění
Shromáždění

Krok 5: Program

Uděláme program, ve kterém infračervený modul spustí přerušení STM32 L432KC každé „otočení“, a provedeme výpočty pro zobrazení otáček na displeji.

Krok 6: Knihovny

Knihovny
Knihovny

Přidejte následující knihovnu „DigitLedDisplay“.

Jednoduše otevřete "Skica >> Zahrnout knihovny >> Spravovat knihovny …"

Krok 7: Zdrojový kód

Knihovny a proměnné

Začněme zdrojovým kódem včetně knihovny DigitLedDisplay. Ukážeme si objekt zobrazení. Nastavil jsem přerušovací kolík, který bude 12. Také zadám volatilní operátor pro čítač otáček a čas, abych se vyhnul problémům s kolizí.

/ * Zahrnout knihovnu DigitLedDisplay */#zahrnout "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) volatile unsigned int rpm; // contador de rpm volatile unsigned long timeold; //tempo

Založit

V Setupu konfigurujeme operaci zobrazení a také nastavujeme přerušení jako Rising.

neplatné nastavení () {Serial.begin (115200); / * Nastavení jasu min: 1, max: 15 */ ld.setBright (10); / * Nastavit počet číslic */ ld.setDigitLimit (8); ld.printDigit (0); attachInterrupt (digitalPinToInterrupt (pin), interruptPin, RISING); otáčky za minutu = 0; timeold = millis (); }

Smyčka

Nakonec určíme interval 1 za 1 minutu pro aktualizaci displeje. Po vyčištění obrazovky vytiskneme otáčky. Provádíme funkci, kterou přerušení vyvolá. Počítáme otáčky a čas aktualizace.

void loop () {zpoždění (1000); ld.clear (); ld.printDigit (ot / min); } void interruptPin () {rpm = 60*1000/(millis () - timeold); timeold = millis (); }

Krok 8: Soubory

Stáhnout soubory:

PDF

INO

Doporučuje: