ዝርዝር ሁኔታ:

RPM ሜትር በ STM32: 8 ደረጃዎች
RPM ሜትር በ STM32: 8 ደረጃዎች

ቪዲዮ: RPM ሜትር በ STM32: 8 ደረጃዎች

ቪዲዮ: RPM ሜትር በ STM32: 8 ደረጃዎች
ቪዲዮ: 15,100 RPM - High Speed Upgrade for 12 Volt Brushed DC Motor 2024, ህዳር
Anonim
RPM ሜትር ከ STM32 ጋር
RPM ሜትር ከ STM32 ጋር

ምንም እንኳን ለመግዛት ትንሽ የሚረብሽ ቢሆንም (በብዙ የበይነመረብ ሱቆች ውስጥ ስለሌለ) ፣ ስለ STM32 L432KC መወያየት አስፈላጊ ሆኖ አግኝቼዋለሁ። ULTRA LOW POWER ስለሆነ ይህ ቺፕ ልዩ ፍቅር ይገባዋል። ሆኖም ግን ፣ የ STM32 ባለቤት ላልሆኑ ፣ በዚህ ፕሮጀክት በአርዱዲኖ ኡኖ ሊተካ ይችላል። ይህንን ለማድረግ በቀላሉ የተቋረጠውን ግቤት ፒን ይለውጡ።

ከዚያ STM32 L432KC እና የኢንፍራሬድ ዳሳሽ በመጠቀም የ RPM ሜትር እንፍጠር። ይህ ተመሳሳይ ፕሮግራም የነፋስን ፍጥነት ለመለካትም ሊያገለግል ይችላል። የዚህ ማይክሮ መቆጣጠሪያ ዝቅተኛ ኃይል ባህሪ ለ IOT ፍጹም ነው።

ደረጃ 1 ሞጁሎች

ሞጁሎች
ሞጁሎች
ሞጁሎች
ሞጁሎች

ለፕሮጀክታችን ዛሬ ባለ 8 አሃዝ MAX7219CWG ፣ እንዲሁም የኢንፍራሬድ ሞጁልን እንጠቀማለን።

ደረጃ 2 STM32 NUCLEO-L432KC

STM32 NUCLEO-L432KC
STM32 NUCLEO-L432KC

ደረጃ 3 - ሰልፍ

ሰልፍ
ሰልፍ

በስብሰባችን ውስጥ STM32 ፣ ባለ 8 አሃዝ ማሳያ እና የልብ ምት ግቤት አለን። የኢንፍራሬድ ካርዱ የፎቶግራፍ አስተላላፊ እና ከነጭ ሪባን በመነሳት መብራቱን የሚይዝ ኤልኢዲ አለው። ይህ ቴፕ ከመንኮራኩር ጋር ተያይ isል እና በየተራ በ STM32 መቋረጥ የሚይዘው ምት (pulse) ይፈጥራል።

በስብሰባው ውስጥ የቴፕ ንባብ ምልክት ጫጫታ ወደ STM32 እንዳይደርስ ለመከላከል ያገለገሉ ዲዲዮ እና ካፒቴን አለን ፣ ይህም ማብራት እና ማጥፋት እንዲተረጎም ያደርገዋል።

ሰልፉ የእኛን ፕሮጀክት ፣ እንዲሁም ሚኒፓ ሜትር (ሁለቱም በስራ ላይ) ያሳያል።

ደረጃ 4 - ስብሰባ

ስብሰባ
ስብሰባ

ደረጃ 5 - ፕሮግራም

በእያንዳንዱ ‹ተራ› በ ‹STM32 L432KC› ውስጥ የኢንፍራሬድ ሞጁል መቋረጥን የሚቀሰቅስበትን ፕሮግራም እናደርጋለን ፣ እና በማሳያው ላይ RPM ን ለማሳየት ስሌቶችን እናደርጋለን።

ደረጃ 6: ቤተመፃህፍት

ቤተ መጻሕፍት
ቤተ መጻሕፍት

የሚከተለውን “DigitLedDisplay” ቤተ -መጽሐፍት ያክሉ።

በቀላሉ “ስዕል” >> ቤተ -ፍርግሞችን ያካትቱ >> ቤተ -መጽሐፍትን ያቀናብሩ…

ደረጃ 7: ምንጭ ኮድ

ቤተመፃህፍት እና ተለዋዋጮች

DigitLedDisplay ቤተ -መጽሐፍትን ጨምሮ የምንጭ ኮዱን እንጀምር። የማሳያውን ነገር እናሳያለን። እኔ የማቋረጫውን ፒን አዘጋጃለሁ ፣ እሱም 12. ይሆናል ፣ እንዲሁም ማንኛውንም የግጭት ችግሮች ለማስወገድ ለ RPM ቆጣሪ እና ጊዜ ለሁለተኛ ጊዜ ተለዋዋጭ ኦፕሬተር እገባለሁ።

/ * DigitLedDisplay ቤተ -መጽሐፍትን ያካትቱ */#"DigitLedDisplay.h"/ * አርዱinoኖ ፒን ፒን 7 ን ለ DIN ፣ 6 ለ CS ፣ 5 ለ 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) የማይለዋወጥ ያልተፈረመ int rpm; // contador de rpm የማይለዋወጥ ረጅም ጊዜ ያለፈበት; // ጊዜያዊ

አዘገጃጀት

በቅንብር ውስጥ የማሳያውን አሠራር እናዋቅራለን ፣ እንዲሁም መቋረጥን እንደ መነሳት እናዋቅራለን።

ባዶነት ማዋቀር () {Serial.begin (115200); / * የብሩህነት ደቂቃን ያዘጋጁ - 1 ፣ ቢበዛ 15 */ ld.setBright (10) ፤ / * የቁጥር ቁጥሩን */ ld.setDigitLimit (8) ያዘጋጁ ፤ ld.printDigit (0); አባሪ ማቋረጫ (digitalPinToInterrupt (pin) ፣ interruptPin ፣ RISING); rpm = 0; ጊዜ ቆጣቢ = ሚሊስ (); }

ሉፕ

በመጨረሻም ፣ ማሳያውን ለማዘመን በ 1 ደቂቃ ውስጥ የ 1 ጊዜን እንወስናለን። ማያ ገጹን ካጸዳን በኋላ RPM ን እናተምታለን። ማቋረጫው የሚጠራውን ተግባር እናከናውናለን። RPM ን እናሰላለን እና ጊዜን እናዘምነዋለን።

ባዶነት loop () {መዘግየት (1000); ld. ግልጽ (); ld.printDigit (rpm); } ባዶ ክፍተት interinPin () {rpm = 60*1000/(millis () - timeold); ጊዜ ያለፈበት = ሚሊስ (); }

ደረጃ 8 - ፋይሎች

ፋይሎቹን ያውርዱ ፦

ፒዲኤፍ

INO

የሚመከር: