Përmbajtje:

Metër rrotullimi me STM32: 8 hapa
Metër rrotullimi me STM32: 8 hapa

Video: Metër rrotullimi me STM32: 8 hapa

Video: Metër rrotullimi me STM32: 8 hapa
Video: ESP32 Tutorial 15 - DC Motor Speed Control with ESP32 L293D | SunFounder's ESP32 IoT Learnig kit 2024, Nëntor
Anonim
Matës RPM Me STM32
Matës RPM Me STM32

Edhe pse është disi një telash për të blerë (sepse nuk është i disponueshëm në shumë dyqane të internetit), e kam të nevojshme të diskutoj STM32 L432KC. Ky çip meriton dashuri të veçantë, pasi është POWER I ULTRA I ULT. Sidoqoftë, për ata që nuk zotërojnë STM32, ai mund të zëvendësohet në këtë projekt nga Arduino Uno. Për ta bërë këtë, thjesht ndryshoni pinin e hyrjes Interrupt.

Le të krijojmë pastaj një njehsor RPM duke përdorur STM32 L432KC dhe një sensor infra të kuqe. Ky program i njëjtë mund të përdoret gjithashtu për të matur shpejtësinë e erës. Karakteristika me fuqi të ulët të këtij mikrokontrolluesi është e përkryer për IOT.

Hapi 1: Modulet

Modulet
Modulet
Modulet
Modulet

Për projektin tonë sot, ne përdorim MAX7219CWG 8-shifror, si dhe Modulin Infrared.

Hapi 2: STM32 NUCLEO-L432KC

STM32 NUCLEO-L432KC
STM32 NUCLEO-L432KC

Hapi 3: Demonstrim

Demonstrim
Demonstrim

Në asamblenë tonë, ne kemi STM32, ekranin me 8 shifra dhe hyrjen e pulsit. Karta infra të kuqe ka një fototransistor dhe një LED që kap dritën duke kërcyer nga një fjongo e bardhë. Kjo kasetë është ngjitur në një rrotë dhe, në çdo kthesë, do të krijojë një puls, i cili do të kapet nga ndërprerja STM32.

Ne kemi një diodë dhe një kondensator në montim që janë përdorur për të parandaluar që zhurma e sinjalit të leximit të shiritit të arrijë në STM32, gjë që do ta bëjë atë të interpretojë ndezjen dhe fikjen.

Demonstrimi tregon projektin tonë, si dhe njehsorin Minipa (të dy në punë).

Hapi 4: Asambleja

Kuvendi
Kuvendi

Hapi 5: Programi

Ne do të bëjmë një program në të cilin moduli infra të kuqe do të shkaktojë një ndërprerje në STM32 L432KC çdo "kthesë", dhe ne do të bëjmë llogaritjet për të shfaqur RPM në ekran.

Hapi 6: Bibliotekat

Bibliotekat
Bibliotekat

Shtoni bibliotekën e mëposhtme "DigitLedDisplay".

Thjesht hyni në "Skiconi >> Përfshi Bibliotekat >> Menaxhoni Bibliotekat …"

Hapi 7: Kodi Burimor

Bibliotekat dhe Variablat

Le të fillojmë kodin burimor duke përfshirë bibliotekën DigitLedDisplay. Ne do të tregojmë objektin e shfaqjes. Vendosa kunjin e ndërprerjes, i cili do të jetë 12. Gjithashtu, fut një operator të paqëndrueshëm si për numëruesin RPM ashtu edhe për kohën në mënyrë që të shmang ndonjë problem përplasjeje.

/ * Përfshini Bibliotekën DigitLedDisplay */#përfshijnë "DigitLedDisplay.h"/ * Arduino Pin për të shfaqur Pin 7 në DIN, 6 në CS, 5 në 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) i paqëndrueshëm i panënshkruar në rpm; // contador de rpm të paqëndrueshme të panënshkruara për një kohë të gjatë; // temp

Konfigurimi

Në Setup, ne konfigurojmë funksionimin e ekranit, si dhe konfigurojmë ndërprerjen si Rising.

void setup () {Serial.begin (115200); / * Vendosni ndriçimin min: 1, max: 15 */ ld.setBright (10); / * Vendosni numrin e shifrave */ ld.setDigitLimit (8); ld.printDigit (0); attachInterrupt (digitalPinToInterrupt (pin), interruptPin, RISING); rpm = 0; koha = millis (); }

Lak

Së fundi, ne përcaktojmë intervalin 1 në 1 minutë për të azhurnuar ekranin. Pas pastrimit të ekranit, ne shtypim RPM. Ne kryejmë funksionin që ndërprerja do të thërrasë. Ne llogarisim RPM dhe kohën e përditësimit.

void loop () {vonesë (1000); ld. e qartë (); ld.printDigit (rpm); } void interruptPin () {rpm = 60*1000/(millis () - afati kohor); koha = millis (); }

Hapi 8: Skedarët

Shkarkoni skedarët:

PDF

INO

Recommended: