สารบัญ:

RPM Meter พร้อม STM32: 8 ขั้นตอน
RPM Meter พร้อม STM32: 8 ขั้นตอน

วีดีโอ: RPM Meter พร้อม STM32: 8 ขั้นตอน

วีดีโอ: RPM Meter พร้อม STM32: 8 ขั้นตอน
วีดีโอ: STM32 TACHOMETER | MEASURE RPM | #33 2024, พฤศจิกายน
Anonim
RPM เมตรพร้อม STM32
RPM เมตรพร้อม STM32

แม้ว่าจะค่อนข้างน่ารำคาญที่จะซื้อ (เพราะไม่มีร้านอินเทอร์เน็ตหลายแห่ง) ฉันพบว่าจำเป็นต้องหารือเกี่ยวกับ STM32 L432KC ชิปนี้สมควรได้รับความรักเป็นพิเศษ เนื่องจากเป็นชิปที่ใช้พลังงานต่ำมาก อย่างไรก็ตาม สำหรับผู้ที่ไม่ได้เป็นเจ้าของ STM32 Arduino Uno สามารถแทนที่ได้ในโปรเจ็กต์นี้ เมื่อต้องการทำสิ่งนี้ เพียงแค่เปลี่ยนพินของอินพุตขัดจังหวะ

มาสร้างเครื่องวัด 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 บนจอแสดงผล

ขั้นตอนที่ 6: ห้องสมุด

ห้องสมุด
ห้องสมุด

เพิ่มไลบรารี "DigitLedDisplay" ต่อไปนี้

เพียงเข้าไปที่ "Sketch >> Include Libraries >> Manage Libraries …"

ขั้นตอนที่ 7: รหัสที่มา

ไลบรารีและตัวแปร

เริ่มต้นซอร์สโค้ดรวมถึงไลบรารี DigitLedDisplay เราจะแสดงวัตถุที่แสดง ฉันตั้งค่าพินอินเทอร์รัปต์ ซึ่งจะเป็น 12 นอกจากนี้ ฉันป้อนโอเปอเรเตอร์ผันผวนสำหรับทั้งตัวนับ RPM และเวลาเพื่อหลีกเลี่ยงปัญหาการชนกัน

/* รวมไลบรารี DigitLedDisplay */#include "DigitLedDisplay.h" /* Arduino Pin to Display 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 ระเหย unsigned นาน timeold; //จังหวะ

ติดตั้ง

ในการตั้งค่า เรากำหนดค่าการดำเนินการแสดงผล รวมทั้งกำหนดค่าการหยุดชะงักเป็น Rising

การตั้งค่าเป็นโมฆะ () {Serial.begin (115200); /* ตั้งค่าความสว่าง min:1, max:15 */ ld.setBright(10); /* กำหนดจำนวนหลัก */ ld.setDigitLimit(8); ld.printDigit(0); AttachInterrupt(digitalPinToInterrupt(pin), interruptPin, RISING); รอบต่อนาที = 0; หมดเวลา = มิลลิวินาที (); }

ห่วง

สุดท้าย เรากำหนดช่วงเวลา 1 ใน 1 นาทีเพื่ออัปเดตการแสดงผล หลังจากทำความสะอาดหน้าจอ เราจะพิมพ์ RPM เราทำหน้าที่ที่ขัดจังหวะจะเรียก เราคำนวณ RPM และอัปเดตเวลา

วงเป็นโมฆะ () { ล่าช้า (1000); ld.clear(); ld.printDigit (รอบต่อนาที); } โมฆะ interruptPin() { รอบต่อนาที = 60*1000/(มิลลิวินาที () - หมดเวลา); หมดเวลา = มิลลิวินาที (); }

ขั้นตอนที่ 8: ไฟล์

ดาวน์โหลดไฟล์:

ไฟล์ PDF

ฉันไม่

แนะนำ: