Агуулгын хүснэгт:

STM32 -той RPM тоолуур: 8 алхам
STM32 -той RPM тоолуур: 8 алхам

Видео: STM32 -той RPM тоолуур: 8 алхам

Видео: STM32 -той RPM тоолуур: 8 алхам
Видео: STM32 TIMERS #3. ENCODER MODE || F103C8 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 оронтой дэлгэц, импульсийн оролт байдаг. Хэт улаан туяаны карт нь фототранзистортой бөгөөд LED нь цагаан туузыг таслах замаар гэрэл тусдаг. Энэхүү соронзон хальс нь дугуйнд залгагдсан бөгөөд эргэлт бүрт импульс үүсгэдэг бөгөөд үүнийг STM32 тасалдал авах болно.

Бидэнд диод ба конденсатор байгаа бөгөөд энэ нь соронзон хальсны унших дохионы дуу чимээг STM32 -т хүрэхээс урьдчилан сэргийлэхэд ашигласан бөгөөд энэ нь асаах, унтраах боломжийг олгодог.

Энэхүү жагсаал нь манай төслийг, мөн Minipa тоолуурыг (хоёулаа ажиллаж байгаа) харуулж байна.

Алхам 4: угсрах

Чуулган
Чуулган

Алхам 5: Хөтөлбөр

Бид хэт улаан туяаны модуль нь "эргэлт" бүрт STM32 L432KC -ийн тасалдлыг өдөөх програмыг хийх бөгөөд RPM -ийг дэлгэц дээр харуулах тооцооллыг хийх болно.

Алхам 6: Номын сан

Номын сан
Номын сан

Дараах "DigitLedDisplay" номын санг нэмнэ үү.

Зүгээр л "Ноорог >> Номын санг оруулах >> Номын санг удирдах …" хэсэгт очно уу.

Алхам 7: Эх код

Номын сан ба хувьсагчид

DigitLedDisplay номын санг багтаасан эх кодыг эхлүүлье. Бид дэлгэцийн объектыг харуулах болно. Би тасалдлын зүүг тохируулсан бөгөөд энэ нь 12 байх болно. Мөн мөргөлдөхөөс зайлсхийхийн тулд эргэлтийн тоолуур болон цаг хугацааны хувьд тогтворгүй оператор оруулна.

/ * DigitLedDisplay номын санг оруулах */#оруулах "DigitLedDisplay.h"/ * Arduino Pin нь Pin 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 () {саатал (1000); ld.clear (); ld.printDigit (rpm); } void interruptPin () {rpm = 60*1000/(millis () - цаг хугацаа); цаг хугацаа = millis (); }

Алхам 8: Файлууд

Файлуудыг татаж авах:

PDF

INO

Зөвлөмж болгож буй: