فهرست مطالب:

RPM متر با STM32: 8 مرحله
RPM متر با STM32: 8 مرحله

تصویری: RPM متر با STM32: 8 مرحله

تصویری: RPM متر با STM32: 8 مرحله
تصویری: How to use SSD1306 128x32 OLED Display I2C with Arduino code 2024, نوامبر
Anonim
RPM متر با STM32
RPM متر با STM32

اگرچه خرید تا حدودی مزاحم است (زیرا در بسیاری از فروشگاه های اینترنتی موجود نیست) ، اما لازم می دانم که در مورد STM32 L432KC بحث کنم. این تراشه مستلزم محبت خاصی است ، زیرا ULTRA LOW POWER است. با این حال ، برای کسانی که STM32 ندارند ، می توان آن را در این پروژه با Arduino Uno جایگزین کرد. برای این کار کافی است پین ورودی Interrupt را تغییر دهید.

بیایید سپس یک RPM متر با استفاده از STM32 L432KC و یک سنسور مادون قرمز ایجاد کنیم. از همین برنامه می توان برای اندازه گیری سرعت باد استفاده کرد. ویژگی کم مصرف این میکروکنترلر برای IOT مناسب است.

مرحله 1: ماژول ها

ماژول ها
ماژول ها
ماژول ها
ماژول ها

برای پروژه امروز ما ، از MAX7219CWG 8 رقمی و همچنین ماژول مادون قرمز استفاده می کنیم.

مرحله 2: STM32 NUCLEO-L432KC

STM32 NUCLEO-L432KC
STM32 NUCLEO-L432KC

مرحله 3: تظاهرات

تظاهرات
تظاهرات

در مجموعه ما STM32 ، صفحه نمایش 8 رقمی و ورودی پالس را داریم. کارت مادون قرمز دارای یک فوتوترانزیستور و یک LED است که با پرش از یک روبان سفید نور را جذب می کند. این نوار به یک چرخ متصل است و در هر نوبت ، یک پالس ایجاد می کند ، که توسط وقفه STM32 ضبط می شود.

ما یک دیود و یک خازن در مجموعه داریم که برای جلوگیری از رسیدن نویز سیگنال خواندن نوار به STM32 استفاده می شود ، که باعث روشن و خاموش شدن آن می شود.

تظاهرات نشان می دهد پروژه ما ، و همچنین متر Minipa (هر دو در حال کار).

مرحله 4: مونتاژ

مونتاژ
مونتاژ

مرحله 5: برنامه

ما برنامه ای را انجام می دهیم که در آن ماژول مادون قرمز در هر نوبت وقفه ای در STM32 L432KC ایجاد می کند و محاسبات را برای نمایش RPM روی صفحه انجام می دهیم.

مرحله ششم: کتابخانه ها

کتابخانه ها
کتابخانه ها

کتابخانه "DigitLedDisplay" زیر را اضافه کنید.

به سادگی به "طرح> شامل کتابخانه ها> مدیریت کتابخانه ها …" دسترسی پیدا کنید.

مرحله 7: کد منبع

کتابخانه ها و متغیرها

بیایید کد منبع را از جمله کتابخانه DigitLedDisplay شروع کنیم. ما شیء نمایش را نشان می دهیم. پین وقفه را که 12 خواهد بود تنظیم می کنم. همچنین ، برای جلوگیری از هرگونه مشکل برخورد ، یک عملگر فرار را برای شمارنده RPM و زمان وارد می کنم.

/ * شامل کتابخانه DigitLedDisplay */#شامل "DigitLedDisplay.h"/ * پین آردوینو برای نمایش پین 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) فرار فرار بدون علامت rpm int ؛ // contador de rpm فرار بدون علامت طولانی مدت ؛ // سرعت

برپایی

در Setup ، ما عملکرد نمایش را پیکربندی می کنیم و همچنین وقفه را به عنوان Rising پیکربندی می کنیم.

void setup () {Serial.begin (115200)؛ / * حداقل روشنایی را تنظیم کنید: 1 ، حداکثر: 15 */ ld.setBright (10) ؛ / * تعداد رقم */ ld.setDigitLimit (8) را تنظیم کنید ؛ ld.printDigit (0) ؛ attachInterrupt (digitalPinToInterrupt (پین) ، interruptPin ، RISING) ؛ دور در دقیقه = 0 ؛ timeold = millis ()؛ }

حلقه

در نهایت ، فاصله 1 در 1 دقیقه را برای به روز رسانی صفحه تعیین می کنیم. پس از تمیز کردن صفحه ، RPM را چاپ می کنیم. ما عملکردی را که وقفه فراخوانی می کند انجام می دهیم. ما RPM و زمان به روز رسانی را محاسبه می کنیم.

void loop () {تاخیر (1000)؛ ld. روشن ()؛ ld.printDigit (دور در دقیقه) ؛ } void interruptPin () {rpm = 60*1000/(millis () - timeold)؛ timeold = millis ()؛ }

مرحله 8: فایل ها

دانلود فایلها:

PDF

من نه

توصیه شده: