Sisukord:

Pöörete arvesti koos STM32 -ga: 8 sammu
Pöörete arvesti koos STM32 -ga: 8 sammu

Video: Pöörete arvesti koos STM32 -ga: 8 sammu

Video: Pöörete arvesti koos STM32 -ga: 8 sammu
Video: Mehaaniline liikumine | VIDEOÕPS Füüsika. Mehaanika #1 2024, Juuli
Anonim
Pöörete arvesti koos STM32 -ga
Pöörete arvesti koos STM32 -ga

Kuigi ostmine on mõnevõrra ebameeldiv (kuna seda pole paljudes internetipoodides saadaval), pean vajalikuks arutleda STM32 L432KC üle. See kiip väärib erilist kiindumust, kuna see on ULTRA LOW POWER. Kuid neile, kes ei oma STM32, saab selle projektiga asendada Arduino Uno. Selleks muutke lihtsalt sisendi Katkestus tihvti.

Loome siis pöördemõõturi, kasutades STM32 L432KC ja infrapunaandurit. Sama programmi saab kasutada ka tuule kiiruse mõõtmiseks. Selle mikrokontrolleri väikese võimsusega funktsioon sobib ideaalselt IOT-i jaoks.

Samm: moodulid

Moodulid
Moodulid
Moodulid
Moodulid

Tänase projekti jaoks kasutame 8-kohalist MAX7219CWG ja infrapunamoodulit.

2. samm: STM32 NUCLEO-L432KC

STM32 NUCLEO-L432KC
STM32 NUCLEO-L432KC

3. samm: tutvustamine

Demonstratsioon
Demonstratsioon

Meie koostes on STM32, 8-kohaline ekraan ja impulsssisend. Infrapunakaardil on fototransistor ja valgusdiood, mis püüavad valgust valge lindi eest põrgatades. See lint on kinnitatud ratta külge ja genereerib igal pöördel impulsi, mille STM32 katkestus tabab.

Meil on komplektis diood ja kondensaator, mida kasutati selleks, et vältida lindi lugemissignaali müra jõudmist STM32 -ni, mis paneks selle sisse ja välja lülitama.

Demonstratsioon näitab meie projekti ja ka Minipa mõõturit (mõlemad töötavad).

4. samm: kokkupanek

Kokkupanek
Kokkupanek

Samm: programm

Teeme programmi, milles infrapunamoodul käivitab katkestuse STM32 L432KC -s igal "pöördel" ja teeme arvutused RPM kuvamiseks ekraanil.

6. samm: raamatukogud

Raamatukogud
Raamatukogud

Lisage järgmine kogu "DigitLedDisplay".

Avage lihtsalt jaotis "Visand >> Kaasa raamatukogud >> Raamatukogude haldamine …"

Samm 7: lähtekood

Raamatukogud ja muutujad

Alustame lähtekoodi, sealhulgas DigitLedDisplay kogu. Näitame kuvatavat objekti. Seadsin katkestustihvti, milleks on 12. Samuti sisestan kokkupõrkeprobleemide vältimiseks lenduva operaatori nii RPM -i loenduri kui ka aja jaoks.

/ * Kaasa DigitLedDisplay raamatukogu */#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 (meetodulo IR) volatile unsigned int rpm; // contador de rpm volatile unsigned long timeold; // tempo

Seadistamine

Seadistuses konfigureerime kuvamistoimingu ja katkestuse Rising.

void setup () {Serial.begin (115200); / * Määra heledus min: 1, max: 15 */ ld.setBright (10); / * Määra numbrite arv */ ld.setDigitLimit (8); ld.printDigit (0); attachInterrupt (digitalPinToInterrupt (pin), interruptPin, RISING); p / min = 0; timeold = millis (); }

Loop

Lõpuks määrame ekraani värskendamiseks intervalli 1 minut. Pärast ekraani puhastamist prindime RPM. Me täidame funktsiooni, mida katkestus kutsub. Arvutame RPM -i ja värskendusaega.

void loop () {delay (1000); ld.clear (); ld.printDigit (p / min); } void interruptPin () {p/min = 60*1000/(millis () - aeg); timeold = millis (); }

8. samm: failid

Laadige failid alla:

PDF

INO

Soovitan: