Sisällysluettelo:
2025 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2025-01-13 06:57
Vaikka ostaminen on jonkin verran haittaa (koska sitä ei ole saatavana monissa verkkokaupoissa), pidän tarpeellisena keskustella STM32 L432KC: stä. Tämä siru ansaitsee erityistä kiintymystä, koska se on ULTRA LOW POWER. Kuitenkin niille, jotka eivät omista STM32: ta, sen voi tässä projektissa korvata Arduino Unolla. Voit tehdä tämän yksinkertaisesti vaihtamalla keskeytystulon nastan.
Luodaan sitten kierroslukumittari STM32 L432KC: n ja infrapuna -anturin avulla. Tätä samaa ohjelmaa voidaan käyttää myös tuulen nopeuden mittaamiseen. Tämän mikro-ohjaimen pienitehoinen ominaisuus on täydellinen IOT: lle.
Vaihe 1: Moduulit
Käytämme nykyisessä projektissamme 8-numeroista MAX7219CWG: tä sekä infrapunamoduulia.
Vaihe 2: STM32 NUCLEO-L432KC
Vaihe 3: Esittely
Kokoonpanossamme on STM32, 8-numeroinen näyttö ja pulssitulo. Infrapunakortissa on valotransistori ja LED, joka tarttuu valoon pomppimalla pois valkoisesta nauhasta. Tämä nauha on kiinnitetty pyörään ja joka kierros tuottaa pulssin, jonka STM32 keskeyttää.
Meillä on diodi ja kondensaattori kokoonpanossa, joita käytettiin estämään nauhan lukusignaalin melu saavuttamasta STM32, mikä saisi sen tulkitsemaan päälle ja pois päältä.
Esittely näyttää projektimme sekä Minipa -mittarin (molemmat toiminnassa).
Vaihe 4: Kokoonpano
Vaihe 5: Ohjelmoi
Teemme ohjelman, jossa infrapunamoduuli laukaisee keskeytyksen STM32 L432KC: ssä joka "kierros", ja teemme laskelmat RPM: n näyttämiseksi näytöllä.
Vaihe 6: Kirjastot
Lisää seuraava "DigitLedDisplay" -kirjasto.
Avaa vain "Luonnos >> Sisällytä kirjastot >> Hallitse kirjastoja…"
Vaihe 7: Lähdekoodi
Kirjastot ja muuttujat
Aloitetaan lähdekoodi, mukaan lukien DigitLedDisplay -kirjasto. Näytämme näyttökohteen. Asetan keskeytystapin, joka on 12. Lisäksi annan haihtuvan operaattorin sekä kierroslukumittarille että ajalle törmäysongelmien välttämiseksi.
/ * Sisällytä DigitLedDisplay -kirjasto */#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 (menetelmä IR) haihtuva allekirjoittamaton int rpm; // contador de rpm volatile unsigned long timeold; //tempo
Perustaa
Asetuksissa määritämme näyttötoiminnon ja määritämme keskeytyksen nousevaksi.
void setup () {Serial.begin (115200); / * Aseta kirkkaus min: 1, maksimi: 15 */ ld.setBright (10); / * Aseta numeroiden määrä */ ld.setDigitLimit (8); ld.printDigit (0); attachInterrupt (digitalPinToInterrupt (pin), interruptPin, RISING); rpm = 0; timeold = millis (); }
Silmukka
Lopuksi määritämme 1 minuutin välein näytön päivittämiseksi. Näytön puhdistamisen jälkeen tulostamme RPM. Suoritamme toiminnon, jonka keskeytys kutsuu. Laskemme kierrosluvun ja päivitysajan.
tyhjä silmukka () {viive (1000); ld.clear (); ld.printDigit (rpm); } void interruptPin () {rpm = 60*1000/(millis () - timeold); timeold = millis (); }
Vaihe 8: Tiedostot
Lataa tiedostot:
INO