Sadržaj:

Mjerač okretaja sa STM32: 8 koraka
Mjerač okretaja sa STM32: 8 koraka

Video: Mjerač okretaja sa STM32: 8 koraka

Video: Mjerač okretaja sa STM32: 8 koraka
Video: как превратить ЭЛТ телевизор в осциллограф 2024, Studeni
Anonim
RPM mjerač sa STM32
RPM mjerač sa STM32

Iako je kupnja 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 ne posjeduju STM32, u ovom projektu može ga zamijeniti Arduino Uno. Da biste to učinili, jednostavno promijenite pin ulaza Interrupt.

Zatim napravimo RPM mjerač pomoću STM32 L432KC i infracrvenog senzora. Ovaj isti program može se koristiti i za mjerenje brzine vjetra. Značajka 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 NUKLEO-L432KC
STM32 NUKLEO-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 se uhvatiti 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š projekt, kao i mjerač Minipa (oba u radu).

Korak 4: Montaža

Skupština
Skupština

Korak 5: Program

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

Korak 6: Knjižnice

Knjižnice
Knjižnice

Dodajte sljedeću biblioteku "DigitLedDisplay".

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

Korak 7: Izvorni kod

Knjižnice i varijable

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

/ * 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 longtime; //tempo

Postaviti

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

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

Petlja

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

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

Korak 8: Datoteke

Preuzmite datoteke:

PDF

INO

Preporučeni: