Мазмұны:

STM32 бар RPM өлшегіші: 8 қадам
STM32 бар RPM өлшегіші: 8 қадам

Бейне: STM32 бар RPM өлшегіші: 8 қадам

Бейне: STM32 бар RPM өлшегіші: 8 қадам
Бейне: High speed stepper motor smooth acceleration and speed change with Teensy 3.5 and TeensyStep 2024, Қараша
Anonim
STM32 көмегімен RPM есептегіші
STM32 көмегімен RPM есептегіші

Сатып алу қиынға соғатынына қарамастан (ол көптеген интернет -дүкендерде жоқ болғандықтан), мен STM32 L432KC туралы талқылауды қажет деп санаймын. Бұл чип ерекше сүйіспеншілікке лайық, өйткені бұл ULTRA LOW POWER. Дегенмен, STM32 иесі жоқ адамдар үшін оны осы жобада Arduino Uno ауыстыруы мүмкін. Ол үшін Үзіліс кірісінің түйреуішін өзгерту жеткілікті.

Содан кейін STM32 L432KC мен инфрақызыл сенсордың көмегімен RPM есептегішін жасайық. Бұл бағдарламаны желдің жылдамдығын өлшеуге де қолдануға болады. Бұл микроконтроллердің аз қуатты мүмкіндігі IOT үшін өте қолайлы.

1 -қадам: модульдер

Модульдер
Модульдер
Модульдер
Модульдер

Біздің бүгінгі жобамыз үшін біз 8 таңбалы MAX7219CWG мен инфрақызыл модульді қолданамыз.

2-қадам: STM32 NUCLEO-L432KC

STM32 NUCLEO-L432KC
STM32 NUCLEO-L432KC

3 -қадам: демонстрация

Демонстрация
Демонстрация

Біздің жинақта STM32, 8 сандық дисплей және импульстік кіріс бар. Инфрақызыл картада фототранзистор мен жарық диоды бар, ол ақ таспадан секіру арқылы жарықты алады. Бұл таспа дөңгелекке бекітілген және әр бұрылыста импульсті тудырады, оны STM32 үзілісі басып алады.

Бізде диод пен конденсатор бар, олар таспаны оқу сигналының шуының STM32 -ге жетуін болдырмау үшін пайдаланылды, бұл оны қосуды және өшіруді түсіндіруге мүмкіндік береді.

Демонстрация біздің жобаны, сонымен қатар Minipa метрін көрсетеді (екеуі де жұмыс істейді).

4 -қадам: құрастыру

Ассамблея
Ассамблея

5 -қадам: Бағдарлама

Біз инфрақызыл модуль STM32 L432KC үзілісін әр «бұрылыста» іске қосатын бағдарлама жасаймыз, ал дисплейде RPM көрсету үшін есептеулер жүргіземіз.

6 -қадам: Кітапханалар

Кітапханалар
Кітапханалар

Келесі «DigitLedDisplay» кітапханасын қосыңыз.

«Эскиз >> кітапханаларды қосу >> кітапханаларды басқару …» бөліміне кіріңіз.

7 -қадам: бастапқы код

Кітапханалар мен айнымалылар

DigitLedDisplay кітапханасы бар бастапқы кодты бастайық. Біз дисплей объектісін көрсетеміз. Мен үзіліс түйреуішін қойдым, ол 12 болады. Сондай -ақ, мен соқтығысу мәселелерін болдырмау үшін RPM есептегішіне де, уақытқа да тұрақсыз операторды енгіземін.

/ * DigitLedDisplay кітапханасын қосу */#қамтиды «DigitLedDisplay.h»/ * Arduino түйрегіші 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 тұрақсыз белгісіз ұзақ уақыт; // қарқын

Орнату

Орнатуда біз дисплей жұмысын конфигурациялаймыз, сонымен қатар үзілісті Rising ретінде теңшейміз.

void setup () {Serial.begin (115200); / * Жарықтықты min: 1, max: 15 */ ld.setBright (10) орнатыңыз; / * Цифрлар санын орнатыңыз */ ld.setDigitLimit (8); ld.printDigit (0); attachInterrupt (digitalPinToInterrupt (түйреуіш), interruptPin, RISING); айн / мин = 0; уақыт ескірген = millis (); }

Цикл

Ақырында, дисплейді жаңарту үшін 1 минут ішінде 1 интервалын анықтаймыз. Экранды тазалағаннан кейін біз RPM басып шығарамыз. Біз үзіліс шақыратын функцияны орындаймыз. Біз RPM мен жаңарту уақытын есептейміз.

void loop () {delay (1000); ld.clear (); ld.printDigit (айн / мин); } void interruptPin () {rpm = 60*1000/(millis () - уақыт ескірген); уақыт есебі = millis (); }

8 -қадам: файлдар

Файлдарды жүктеңіз:

PDF

МЕН ЖОҚ

Ұсынылған: