Talaan ng mga Nilalaman:
2025 May -akda: John Day | [email protected]. Huling binago: 2025-01-13 06:58
Bagaman medyo istorbo itong bilhin (dahil hindi ito magagamit sa maraming mga tindahan ng internet), nakikita kong kinakailangan upang pag-usapan ang STM32 L432KC. Ang chip na ito ay nararapat sa espesyal na pagmamahal, dahil ito ay ULTRA LOW POWER. Gayunpaman, para sa mga hindi nagmamay-ari ng STM32, maaari itong mapalitan sa proyektong ito ng Arduino Uno. Upang magawa ito, baguhin lamang ang pin ng Interrupt input.
Gumawa tayo ng isang RPM meter gamit ang STM32 L432KC at isang infrared sensor. Ang parehong program na ito ay maaari ding magamit upang sukatin ang bilis ng hangin. Ang tampok na mababang lakas ng microcontroller na ito ay perpekto para sa IOT.
Hakbang 1: Mga Modyul
Para sa aming proyekto ngayon, ginagamit namin ang 8-digit na MAX7219CWG, pati na rin ang Infrared Module.
Hakbang 2: STM32 NUCLEO-L432KC
Hakbang 3: Pagpapakita
Sa aming pagpupulong, mayroon kaming STM32, ang 8-digit na display, at ang input ng pulso. Ang infrared card ay may isang phototransistor at isang LED na nakakakuha ng ilaw sa pamamagitan ng pag-bounce ng isang puting laso. Ang tape na ito ay nakakabit sa isang gulong at, sa bawat pagliko, ay bubuo ng isang pulso, na makukuha ng STM32 makagambala.
Mayroon kaming isang diode at isang kapasitor sa pagpupulong na ginamit upang maiwasan ang ingay ng signal ng pagbabasa ng tape mula sa maabot ang STM32, na kung saan ay gagawan ng kahulugan ang on at off.
Ipinapakita ng demonstrasyon ang aming proyekto, pati na rin ang Minipa meter (parehong gumagana).
Hakbang 4: Assembly
Hakbang 5: Programa
Gagawa kami ng isang programa kung saan ang infrared module ay magpapalitaw ng isang nakakagambala sa STM32 L432KC bawat "turn," at gagawin namin ang mga kalkulasyon upang maipakita ang RPM sa display.
Hakbang 6: Mga Aklatan
Idagdag ang sumusunod na "DigitLedDisplay" library.
I-access lamang ang "Sketch >> Isama ang Mga Aklatan >> Pamahalaan ang Mga Aklatan …"
Hakbang 7: Source Code
Mga Aklatan at Variable
Simulan natin ang source code kasama ang library ng DigitLedDisplay. Ipapakita namin ang display object. Itinakda ko ang makagambala na pin, na magiging 12. Gayundin, nagpasok ako ng isang pabagu-bago ng isip operator para sa parehong counter ng RPM at oras upang maiwasan ang anumang mga problema sa banggaan.
/ * Isama ang DigitLedDisplay Library * / # isama ang "DigitLedDisplay.h" / * Arduino Pin upang Ipakita ang Pin 7 sa DIN, 6 sa CS, 5 sa 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) pabagu-bago ng unsigned int rpm; // contador de rpm pabagu-bago ng panahon na hindi pinirmahan; // tempo
Pag-set up
Sa Pag-setup, iko-configure namin ang pagpapatakbo ng display, pati na rin ang pag-configure ng pagkagambala bilang Rising.
void setup () {Serial.begin (115200); / * Itakda ang ningning min: 1, max: 15 * / ld.setBright (10); / * Itakda ang bilang ng digit * / ld.setDigitLimit (8); ld.printDigit (0); attachInterrupt (digitalPinToInterrupt (pin), interruptPin, RISING); rpm = 0; timeold = millis (); }
Loop
Sa wakas, natutukoy namin ang agwat ng 1 sa 1 minuto upang mai-update ang display. Pagkatapos linisin ang screen, nai-print namin ang RPM. Ginagawa namin ang pagpapaandar na tatawagin ng makagambala. Kinakalkula namin ang RPM at i-update ang oras.
void loop () {pagkaantala (1000); ld. malinaw (); ld.printDigit (rpm); } walang bisa interruptPin () {rpm = 60 * 1000 / (millis () - timeold); timeold = millis (); }
Hakbang 8: Mga File
I-download ang mga file:
INO