Innehållsförteckning:

Varvtalsmätare med STM32: 8 steg
Varvtalsmätare med STM32: 8 steg

Video: Varvtalsmätare med STM32: 8 steg

Video: Varvtalsmätare med STM32: 8 steg
Video: Test med Biltemas laddtrycks mätare 2024, November
Anonim
Varvtalsmätare med STM32
Varvtalsmätare med STM32

Även om det är lite besvärligt att köpa (eftersom det inte finns i många internetbutiker), tycker jag det är nödvändigt att diskutera STM32 L432KC. Detta chip förtjänar särskild kärlek, eftersom det är ULTRA LOW POWER. Men för dem som inte äger STM32 kan den i detta projekt ersättas av Arduino Uno. För att göra detta, ändra helt enkelt stiftet på Interrupt -ingången.

Låt oss sedan skapa en varvtalsmätare med STM32 L432KC och en infraröd sensor. Samma program kan också användas för att mäta vindhastighet. Den lågeffektfunktionen hos denna mikrokontroller är perfekt för IOT.

Steg 1: Moduler

Moduler
Moduler
Moduler
Moduler

För vårt projekt idag använder vi den åttasiffriga MAX7219CWG, liksom den infraröda modulen.

Steg 2: STM32 NUCLEO-L432KC

STM32 NUCLEO-L432KC
STM32 NUCLEO-L432KC

Steg 3: Demonstration

Demonstration
Demonstration

I vår samling har vi STM32, den 8-siffriga displayen och pulsinmatningen. Det infraröda kortet har en fototransistor och en LED som fångar ljuset genom att studsa av ett vitt band. Detta band är fäst på ett hjul och kommer vid varje varv att generera en puls som kommer att fångas upp av STM32 -avbrottet.

Vi har en diod och en kondensator i aggregatet som användes för att förhindra att ljudet från bandlässignalen når STM32, vilket gör att den tolkar av och på.

Demonstrationen visar vårt projekt, liksom Minipa -mätaren (båda i drift).

Steg 4: Montering

hopsättning
hopsättning

Steg 5: Program

Vi kommer att göra ett program där den infraröda modulen kommer att utlösa ett avbrott i STM32 L432KC varje "sväng", och vi kommer att göra beräkningarna för att visa varvtalet på displayen.

Steg 6: Bibliotek

Bibliotek
Bibliotek

Lägg till följande "DigitLedDisplay" -bibliotek.

Gå bara till "Skiss >> Inkludera bibliotek >> Hantera bibliotek …"

Steg 7: Källkod

Bibliotek och variabler

Låt oss starta källkoden inklusive DigitLedDisplay -biblioteket. Vi visar displayobjektet. Jag ställer in avbrottsstiftet, som blir 12. Dessutom anger jag en flyktig operatör för både varvtalet och tiden för att undvika eventuella kollisionsproblem.

/ * Inkludera 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) flyktig osignerad int rpm; // contador de rpm volatile unsigned long timeold; //tempo

Uppstart

I installationen konfigurerar vi visningsfunktionen, samt konfigurerar avbrottet som stigande.

void setup () {Serial.begin (115200); / * Ställ in ljusstyrkan min: 1, max: 15 */ ld.setBright (10); / * Ställ in siffran */ ld.setDigitLimit (8); ld.printDigit (0); attachInterrupt (digitalPinToInterrupt (pin), interruptPin, RISING); rpm = 0; tidsvärde = millis (); }

Slinga

Slutligen bestämmer vi intervallet 1 på 1 minut för att uppdatera displayen. Efter rengöring av skärmen skriver vi ut varvtalet. Vi utför den funktion som avbrottet kommer att anropa. Vi beräknar varvtal och uppdateringstid.

void loop () {delay (1000); ld.clear (); ld.printDigit (rpm); } void interruptPin () {rpm = 60*1000/(millis () - timeold); tidsvärde = millis (); }

Steg 8: Filer

Ladda ner filerna:

PDF

INO

Rekommenderad: