Სარჩევი:

RPM მეტრი STM32– ით: 8 ნაბიჯი
RPM მეტრი STM32– ით: 8 ნაბიჯი

ვიდეო: RPM მეტრი STM32– ით: 8 ნაბიჯი

ვიდეო: RPM მეტრი STM32– ით: 8 ნაბიჯი
ვიდეო: STM32 TACHOMETER | MEASURE RPM | #33 2024, ნოემბერი
Anonim
RPM მეტრი STM32– ით
RPM მეტრი STM32– ით

მიუხედავად იმისა, რომ ყიდვა გარკვეულწილად უსიამოვნოა (რადგან ის ბევრ ინტერნეტ მაღაზიაში არ არის ხელმისაწვდომი), საჭიროდ მიმაჩნია განვიხილო STM32 L432KC. ეს ჩიპი იმსახურებს განსაკუთრებულ სიყვარულს, რადგან ის არის ULTRA LOW POWER. ამასთან, მათთვის, ვინც არ ფლობს STM32– ს, ის შეიძლება შეიცვალოს ამ პროექტში Arduino Uno– ით. ამისათვის უბრალოდ შეცვალეთ შეწყვეტის შეყვანის პინი.

მოდით შევქმნათ RPM მეტრი STM32 L432KC და ინფრაწითელი სენსორის გამოყენებით. იგივე პროგრამა შეიძლება გამოყენებულ იქნას ქარის სიჩქარის გასაზომად. ამ მიკროკონტროლერის დაბალი სიმძლავრის ფუნქცია შესანიშნავია IOT– ისთვის.

ნაბიჯი 1: მოდულები

მოდულები
მოდულები
მოდულები
მოდულები

ჩვენი დღევანდელი პროექტისთვის ჩვენ ვიყენებთ 8-ნიშნა MAX7219CWG- ს, ასევე ინფრაწითელ მოდულს.

ნაბიჯი 2: STM32 NUCLEO-L432KC

STM32 NUCLEO-L432KC
STM32 NUCLEO-L432KC

ნაბიჯი 3: დემონსტრაცია

დემონსტრაცია
დემონსტრაცია

ჩვენს შეკრებაზე ჩვენ გვაქვს STM32, 8 ნიშნაანი ეკრანი და პულსის შეყვანა. ინფრაწითელ ბარათს აქვს ფოტოტრანსისტორი და LED, რომელიც იჭერს შუქს თეთრი ლენტიდან გადახტომით. ეს ლენტი მიმაგრებულია ბორბალზე და, ყოველი შემობრუნების დროს, გამოიმუშავებს პულსს, რომელსაც STM32 შეფერხება დაიჭერს.

ჩვენ გვაქვს დიოდი და კონდენსატორი ასამბლეაში, რომელიც გამოიყენებოდა ფირის კითხვის სიგნალის ხმაურის აღსაკვეთად STM32– მდე, რაც მას ინტერპრეტაციას უკეთებდა ჩართვას და გამორთვას.

დემონსტრაცია გვიჩვენებს ჩვენს პროექტს, ასევე მინიპას მრიცხველს (ორივე ექსპლუატაციაშია).

ნაბიჯი 4: შეკრება

შეკრება
შეკრება

ნაბიჯი 5: პროგრამა

ჩვენ გავაკეთებთ პროგრამას, რომლის დროსაც ინფრაწითელი მოდული გამოიწვევს STM32 L432KC– ის შეწყვეტას ყოველ „შემობრუნებაში“, და ჩვენ გავაკეთებთ გამოთვლებს, რომ გამოვაჩინოთ RPM ეკრანზე.

ნაბიჯი 6: ბიბლიოთეკები

ბიბლიოთეკები
ბიბლიოთეკები

დაამატეთ შემდეგი "DigitLedDisplay" ბიბლიოთეკა.

უბრალოდ შედით "ესკიზი >> ბიბლიოთეკების ჩათვლით >> ბიბლიოთეკების მართვა …"

ნაბიჯი 7: წყაროს კოდი

ბიბლიოთეკები და ცვლადები

დავიწყოთ საწყისი კოდი DigitLedDisplay ბიბლიოთეკის ჩათვლით. ჩვენ ვაჩვენებთ ჩვენების ობიექტს. მე დავაყენე შეწყვეტის პინი, რომელიც იქნება 12. ასევე, შევიყვან არასტაბილურ ოპერატორს როგორც RPM მრიცხველისთვის, ასევე დროისათვის, რათა თავიდან ავიცილოთ შეჯახების პრობლემები.

/ * მოიცავს DigitLedDisplay ბიბლიოთეკას */#მოიცავს "DigitLedDisplay.h"/ * Arduino Pin ეკრანის საჩვენებლად Pin 7 DIN, 6 CS, 5 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) არასტაბილური ხელმოუწერელი rpm; // contador de rpm არასტაბილური ხელმოუწერელი დიდი ხნის განმავლობაში; // ტემპი

Აწყობა

Setup– ში ჩვენ ვაკონფიგურირებთ ეკრანის მუშაობას, ასევე ვაკონტროლებთ შეწყვეტას როგორც Rising.

void setup () {Serial.begin (115200); / * დააყენეთ სიკაშკაშის წთ: 1, მაქსიმალური: 15 */ ld.setBright (10); / * დააყენეთ ციფრების რაოდენობა */ ld.setDigitLimit (8); ld.printDigit (0); attachInterrupt (digitalPinToInterrupt (pin), interruptPin, RISING); rpm = 0; timeold = მილი (); }

მარყუჟი

დაბოლოს, ჩვენ ვადგენთ ინტერვალს 1 წუთში ეკრანის განახლებისთვის. ეკრანის გაწმენდის შემდეგ, ჩვენ ვბეჭდავთ RPM. ჩვენ ვასრულებთ იმ ფუნქციას, რომელსაც დარეკვა მოუწოდებს. ჩვენ ვიანგარიშებთ RPM და განახლების დროს.

void loop () {დაგვიანებით (1000); ld. წმინდა (); ld.printDigit (rpm); } void interruptPin () {rpm = 60*1000/(millis () - დროის ვადა); timeold = მილი (); }

ნაბიჯი 8: ფაილები

ჩამოტვირთეთ ფაილები:

PDF

ინო

გირჩევთ: