תוכן עניינים:

מד סל"ד עם STM32: 8 שלבים
מד סל"ד עם STM32: 8 שלבים

וִידֵאוֹ: מד סל"ד עם STM32: 8 שלבים

וִידֵאוֹ: מד סל
וִידֵאוֹ: תאום סל"ד המנוע בהחלפת הילוכים 2024, נוֹבֶמבֶּר
Anonim
מד סל
מד סל

למרות שזה קצת מטרד לקנות (כי זה לא זמין בחנויות אינטרנט רבות), אני מוצא צורך לדון ב- STM32 L432KC. שבב זה ראוי לחיבה מיוחדת, מכיוון שהוא כוח נמוך במיוחד. עם זאת, למי שאינו הבעלים של STM32, ניתן להחליף אותו בפרויקט זה על ידי Arduino Uno. לשם כך, פשוט שנה את הסיכה של קלט ה- Interrupt.

לאחר מכן בואו ניצור מד סל ד באמצעות STM32 L432KC וחיישן אינפרא אדום. ניתן להשתמש באותה תוכנית גם למדידת מהירות הרוח. תכונת ההספק הנמוך של המיקרו-בקר הזה מושלמת עבור IOT.

שלב 1: מודולים

מודולים
מודולים
מודולים
מודולים

לפרויקט שלנו כיום אנו משתמשים ב- MAX7219CWG בן 8 הספרות, כמו גם במודול האינפרא אדום.

שלב 2: STM32 NUCLEO-L432KC

STM32 NUCLEO-L432KC
STM32 NUCLEO-L432KC

שלב 3: הפגנה

הפגנה
הפגנה

במכלול שלנו, יש לנו את STM32, התצוגה בת 8 הספרות וקלט הדופק. לכרטיס האינפרא אדום יש פוטוטרנזיסטור ונורית הלוכדת את האור על ידי הקפצת סרט לבן. קלטת זו מחוברת לגלגל, ובכל סיבוב, תיצור דופק, שיילכד על ידי הפרעה STM32.

יש לנו דיודה וקבל במכלול ששימשו למניעת רעש אות קריאת הקלטת להגיע ל- STM32, מה שיגרום לו לפרש את ההפעלה והכיבוי.

ההדגמה מציגה את הפרויקט שלנו, כמו גם את מד המיניפה (שניהם במבצע).

שלב 4: הרכבה

הַרכָּבָה
הַרכָּבָה

שלב 5: תכנית

נבצע תוכנית שבה מודול האינפרא אדום יפעיל הפרעה ב- STM32 L432KC בכל "סיבוב", ונעשה את החישובים להצגת סל"ד בתצוגה.

שלב 6: ספריות

ספריות
ספריות

הוסף את ספריית "DigitLedDisplay" הבאה.

פשוט גש ל"סקיצה >> כלול ספריות >> נהל ספריות …"

שלב 7: קוד המקור

ספריות ומשתנים

נתחיל את קוד המקור כולל הספרייה DigitLedDisplay. נציג את אובייקט התצוגה. הגדרתי את סיכת ההפרעה, שתהיה 12. כמו כן, אני נכנס למפעיל נדיף הן עבור מונה הסל ד והן בזמן כדי למנוע בעיות התנגשות.

/ * כלול את ספריית DigitLedDisplay */#כולל "DigitLedDisplay.h"/ * סיכת ארדואינו להצגת סיכה 7 ל- DIN, 6 ל- CS, 5 ל- CLK */// DigitLedDisplay ld = DigitLedDisplay (7, 6, 5); // arduino DigitLedDisplay ld = DigitLedDisplay (4, 2, 3); // STM32 L432KC pin pin = 12; // pino de interrupção (módulo IR) סל"ד לא נחתם ללא סיבובים; // contador de rpm נדיף זמן לא חתום; //טֶמפּוֹ

להכין

בהתקנה, אנו מגדירים את פעולת התצוגה, וכן מגדירים את ההפרעה כעלייה.

הגדרת void () {Serial.begin (115200); / * הגדר את הבהירות הדקה: 1, מקסימום: 15 */ ld.setBright (10); / * הגדר את ספירת הספרות */ ld.setDigitLimit (8); ld.printDigit (0); attachInterrupt (digitalPinToInterrupt (סיכה), interruptPin, RISING); סל ד = 0; timeold = millis (); }

לוּלָאָה

לבסוף, אנו קובעים את המרווח של 1 לדקה אחת לעדכון התצוגה. לאחר ניקוי המסך, אנו מדפיסים את סל"ד. אנו מבצעים את הפונקציה שההפרעה תקרא לה. אנו מחשבים את סל"ד וזמן עדכון.

לולאת חלל () {עיכוב (1000); ld.clear (); ld.printDigit (סל"ד); } חלל interruptPin () {סל"ד = 60*1000/(מילי () - זמן); timeold = millis (); }

שלב 8: קבצים

הורד את הקבצים:

PDF

INO

מוּמלָץ: