Sadržaj:

Merač broja obrtaja sa STM32: 8 koraka
Merač broja obrtaja sa STM32: 8 koraka

Video: Merač broja obrtaja sa STM32: 8 koraka

Video: Merač broja obrtaja sa STM32: 8 koraka
Video: Digitalni merač obrtaja (tahometar) sa magnetnim senzorom 2024, Novembar
Anonim
Merač broja obrtaja sa STM32
Merač broja obrtaja sa STM32

Iako je kupovina pomalo neugodna (jer nije dostupna u mnogim internetskim trgovinama), smatram da je potrebno razgovarati o STM32 L432KC. Ovaj čip zaslužuje posebnu naklonost jer je ULTRA NISKE SNAGE. Međutim, za one koji nemaju STM32, u ovom projektu može ga zamijeniti Arduino Uno. Da biste to učinili, jednostavno promijenite pin ulaza za prekid.

Napravimo zatim RPM mjerač koristeći STM32 L432KC i infracrveni senzor. Ovaj isti program može se koristiti i za mjerenje brzine vjetra. Karakteristika male snage ovog mikrokontrolera savršena je za IOT.

Korak 1: Moduli

Moduli
Moduli
Moduli
Moduli

Za današnji projekt koristimo 8-znamenkasti MAX7219CWG, kao i infracrveni modul.

Korak 2: STM32 NUCLEO-L432KC

STM32 NUCLEO-L432KC
STM32 NUCLEO-L432KC

Korak 3: Demonstracija

Demonstracija
Demonstracija

U našem sklopu imamo STM32, osmeroznamenkasti zaslon i impulsni ulaz. Infracrvena kartica ima fototranzistor i LED koji hvata svjetlost odbijajući se od bijele vrpce. Ova traka je pričvršćena na kotač i pri svakom zavoju generirat će impuls koji će biti uhvaćen prekidom STM32.

U sklopu imamo diodu i kondenzator koji su korišteni za sprječavanje da šum signala za čitanje trake dođe do STM32, što bi ga učinilo interpretiranim za uključivanje i isključivanje.

Demonstracija prikazuje naš projekat, kao i Minipa mjerač (oba u funkciji).

Korak 4: Montaža

Montaža
Montaža

Korak 5: Program

Napravit ćemo program u kojem će infracrveni modul pokrenuti prekid u STM32 L432KC pri svakom "skretanju", a mi ćemo napraviti proračune za prikaz RPM -a na ekranu.

Korak 6: Biblioteke

Biblioteke
Biblioteke

Dodajte sljedeću biblioteku "DigitLedDisplay".

Jednostavno pristupite "Sketch >> Include Libraries >> Manage Libraries …"

Korak 7: Izvorni kod

Biblioteke i promenljive

Počnimo s izvornim kodom uključujući biblioteku DigitLedDisplay. Prikazat ćemo objekt prikaza. Postavio sam pin prekida, koji će biti 12. Također, unosim promjenjivi operator i za brojač okretaja i za vrijeme kako bih izbjegao probleme sa sudarima.

/ * Uključi biblioteku DigitLedDisplay */#uključuje "DigitLedDisplay.h"/ * Arduino pin za prikaz pin 7 prema DIN, 6 do CS, 5 do 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 longtold; // tempo

Postaviti

U Setup -u konfiguriramo radnju prikaza, kao i prekid kao Rising.

void setup () {Serial.begin (115200); / * Podesite svetlinu min: 1, max: 15 */ ld.setBright (10); / * Podesite broj cifara */ ld.setDigitLimit (8); ld.printDigit (0); attachInterrupt (digitalPinToInterrupt (pin), interruptPin, RISING); rpm = 0; timeold = millis (); }

Petlja

Konačno, određujemo interval od 1 u 1 minuti za ažuriranje prikaza. Nakon čišćenja ekrana ispisujemo broj okretaja u minuti. Izvodimo funkciju koju će prekid pozvati. Izračunavamo RPM i vrijeme ažuriranja.

void loop () {kašnjenje (1000); ld.clear (); ld.printDigit (rpm); } void interruptPin () {rpm = 60*1000/(millis () - timeold); timeold = millis (); }

Korak 8: Datoteke

Preuzmite datoteke:

PDF

JA NE

Preporučuje se: