Kazalo:

Merilnik vrtljajev s STM32: 8 korakov
Merilnik vrtljajev s STM32: 8 korakov

Video: Merilnik vrtljajev s STM32: 8 korakov

Video: Merilnik vrtljajev s STM32: 8 korakov
Video: ATTEN St-862D Станция фен 2024, November
Anonim
Merilnik vrtljajev s STM32
Merilnik vrtljajev s STM32

Čeprav je nakup nekoliko neprijeten (ker ni na voljo v številnih spletnih trgovinah), se mi zdi potrebno razpravljati o STM32 L432KC. Ta čip si zasluži posebno naklonjenost, saj je ULTRA NIZKA MOČ. Za tiste, ki nimajo STM32, pa ga lahko v tem projektu nadomesti Arduino Uno. Če želite to narediti, preprosto spremenite pin vhoda Interrupt.

Ustvarimo merilnik vrtljajev z uporabo STM32 L432KC in infrardečega senzorja. Ta isti program se lahko uporablja tudi za merjenje hitrosti vetra. Funkcija nizke porabe energije tega mikrokrmilnika je kot nalašč za IOT.

1. korak: moduli

Moduli
Moduli
Moduli
Moduli

Za današnji projekt uporabljamo 8-mestno MAX7219CWG in infrardeči modul.

2. korak: STM32 NUCLEO-L432KC

STM32 NUKLEO-L432KC
STM32 NUKLEO-L432KC

3. korak: demonstracija

Demonstracija
Demonstracija

V sestavi imamo STM32, 8-mestni zaslon in impulzni vhod. Infrardeča kartica ima fototranzistor in LED, ki ujame svetlobo tako, da se odbije od belega traku. Ta trak je pritrjen na kolo in bo ob vsakem zavoju ustvaril impulz, ki ga bo zajel prekinitev STM32.

V sklopu imamo diodo in kondenzator, ki sta bila uporabljena za preprečevanje, da bi šum signala za branje traku prišel do STM32, zaradi česar bi lahko interpretiral vklop in izklop.

Predstavitev prikazuje naš projekt in števec Minipa (oba v delovanju).

4. korak: Montaža

Montaža
Montaža

5. korak: Program

Izvedli bomo program, v katerem bo infrardeči modul sprožil prekinitev v STM32 L432KC pri vsakem "zavoju" in naredili bomo izračune za prikaz RPM na zaslonu.

6. korak: Knjižnice

Knjižnice
Knjižnice

Dodajte naslednjo knjižnico "DigitLedDisplay".

Preprosto odprite "Skica >> Vključi knjižnice >> Upravljanje knjižnic …"

7. korak: izvorna koda

Knjižnice in spremenljivke

Začnimo izvorno kodo, vključno s knjižnico DigitLedDisplay. Prikazali bomo prikazni objekt. Nastavil sem prekinitveni zatič, ki bo 12. Prav tako vnesem nestanovitni operater za števec vrtljajev in čas, da se izognem kakršnim koli težavam.

/ * Vključi knjižnico DigitLedDisplay */#vključuje "DigitLedDisplay.h"/ * Arduino Pin za prikaz pin 7 v DIN, 6 v CS, 5 v 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) hlapni nepodpisani int rpm; // contador de rpm volatile unsigned longold; // tempo

Nastaviti

V nastavitvah konfiguriramo prikazno operacijo in prekinitev konfiguriramo kot naraščajočo.

void setup () {Serial.begin (115200); / * Nastavite svetlost min: 1, max: 15 */ ld.setBright (10); / * Nastavite število števk */ ld.setDigitLimit (8); ld.printDigit (0); attachInterrupt (digitalPinToInterrupt (pin), interruptPin, RISING); vrtljajev = 0; časovno obdobje = milis (); }

Zanka

Nazadnje določimo interval 1 v 1 minuti za posodobitev zaslona. Po čiščenju zaslona natisnemo število vrtljajev. Izvajamo funkcijo, ki jo bo klic poklical. Izračunamo RPM in čas posodobitve.

void loop () {zakasnitev (1000); ld.clear (); ld.printDigit (vrt / min); } void interruptPin () {rpm = 60*1000/(millis () - časovno obdobje); časovno obdobje = milis (); }

8. korak: Datoteke

Prenesite datoteke:

PDF

JAZ NE

Priporočena: