Orodha ya maudhui:

Mita ya RPM Na STM32: Hatua 8
Mita ya RPM Na STM32: Hatua 8

Video: Mita ya RPM Na STM32: Hatua 8

Video: Mita ya RPM Na STM32: Hatua 8
Video: Как использовать SSD1306 128x32 OLED-дисплей I2C с кодом Arduino 2024, Novemba
Anonim
Mita ya RPM Na STM32
Mita ya RPM Na STM32

Ingawa ni kero ya kununua (kwa sababu haipatikani katika duka nyingi za mtandao), naona ni muhimu kujadili STM32 L432KC. Chip hii inastahili mapenzi maalum, kwani ni Nguvu ya chini ya ULTRA. Walakini, kwa wale ambao hawana STM32, inaweza kubadilishwa katika mradi huu na Arduino Uno. Ili kufanya hivyo, badilisha tu pini ya pembejeo ya Usumbufu.

Wacha basi tuunde mita ya RPM kwa kutumia STM32 L432KC na sensa ya infrared. Mpango huo huo pia unaweza kutumika kupima kasi ya upepo. Kipengele cha nguvu ya chini ya microcontroller hii ni kamili kwa IOT.

Hatua ya 1: Moduli

Moduli
Moduli
Moduli
Moduli

Kwa mradi wetu leo, tunatumia Nambari 8 MAX7219CWG, pamoja na Moduli ya infrared.

Hatua ya 2: STM32 NUCLEO-L432KC

STM32 NUCLEO-L432KC
STM32 NUCLEO-L432KC

Hatua ya 3: Maonyesho

Maandamano
Maandamano

Katika mkutano wetu, tuna STM32, onyesho lenye tarakimu 8, na pembejeo ya kunde. Kadi ya infrared ina phototransistor na LED ambayo inashika taa kwa kupiga ribbon nyeupe. Kanda hii imeambatanishwa na gurudumu na, kwa kila zamu, itatoa kunde, ambayo itakamatwa na kukatiza kwa STM32.

Tunayo diode na capacitor katika mkutano ambayo ilitumika kuzuia kelele ya ishara ya kusoma mkanda kufikia STM32, ambayo ingeifanya itafsiri na kuzima.

Maonyesho yanaonyesha mradi wetu, pamoja na mita ya Minipa (zote zinafanya kazi).

Hatua ya 4: Mkutano

Mkutano
Mkutano

Hatua ya 5: Programu

Tutafanya programu ambayo moduli ya infrared itasababisha usumbufu katika STM32 L432KC kila "zamu," na tutafanya mahesabu kuonyesha RPM kwenye onyesho.

Hatua ya 6: Maktaba

Maktaba
Maktaba

Ongeza maktaba ya "DigitLedDisplay" ifuatayo.

Fikia tu "Mchoro >> Jumuisha Maktaba >> Dhibiti Maktaba…"

Hatua ya 7: Msimbo wa Chanzo

Maktaba na Vigeuzi

Wacha tuanze nambari ya chanzo ikiwa ni pamoja na maktaba ya DigitLedDisplay. Tutaonyesha kitu cha kuonyesha. Niliweka pini ya kukatiza, ambayo itakuwa 12. Pia, ninaingiza mwendeshaji dhaifu kwa kaunta ya RPM na wakati ili kuepusha shida zozote za mgongano.

/ * Jumuisha Maktaba ya DigitLedDisplay * / # ni pamoja na "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 (módulo IR) tete isiyosainiwa int rpm; // contador de rpm tete isiyosainiwa muda mrefu; // tempo

Sanidi

Katika Usanidi, tunasanidi operesheni ya kuonyesha, na pia kusanidi usumbufu kama Kuongezeka.

kuanzisha batili () {Serial.begin (115200); / * Weka mwangaza min: 1, max: 15 * / ld.setBright (10); / * Weka hesabu ya nambari * / ld.setDigitLimit (8); ld.printDigit (0); ambatisha Kukatiza (digitalPinToInterrupt (pini), kukatizaPini, KUINUKA); rpm = 0; wakati = milimita (); }

Kitanzi

Mwishowe, tunaamua muda wa 1 kwa dakika 1 kusasisha onyesho. Baada ya kusafisha skrini, tunachapisha RPM. Tunafanya kazi ambayo usumbufu utaita. Tunahesabu RPM na kusasisha wakati.

kitanzi batili () {kuchelewesha (1000); ld wazi (); ld.printDigit (rpm); } batili interruptPin () {rpm = 60 * 1000 / (millis () - timeold); wakati = milimita (); }

Hatua ya 8: Faili

Pakua faili:

PDF

INO

Ilipendekeza: