Spisu treści:

Miernik obrotów z STM32: 8 kroków
Miernik obrotów z STM32: 8 kroków

Wideo: Miernik obrotów z STM32: 8 kroków

Wideo: Miernik obrotów z STM32: 8 kroków
Wideo: Kurs STM32 #13 Silnik krokowy 2024, Listopad
Anonim
Miernik obrotów z STM32
Miernik obrotów z STM32

Chociaż jest to trochę uciążliwe w zakupie (ponieważ nie jest dostępny w wielu sklepach internetowych), uważam za konieczne omówienie STM32 L432KC. Ten chip zasługuje na szczególną sympatię, ponieważ ma ULTRA NISKĄ MOC. Jednak dla tych, którzy nie posiadają STM32, można go zastąpić w tym projekcie Arduino Uno. Aby to zrobić, po prostu zmień pin wejścia przerwania.

Stwórzmy więc miernik obrotów przy użyciu STM32 L432KC i czujnika podczerwieni. Ten sam program może być również używany do pomiaru prędkości wiatru. Funkcja niskiego poboru mocy tego mikrokontrolera jest idealna dla IOT.

Krok 1: Moduły

Moduły
Moduły
Moduły
Moduły

W naszym dzisiejszym projekcie używamy 8-cyfrowego MAX7219CWG, a także modułu podczerwieni.

Krok 2: STM32 NUCLEO-L432KC

STM32 NUCLEO-L432KC
STM32 NUCLEO-L432KC

Krok 3: Demonstracja

Demonstracja
Demonstracja

W naszym zestawie mamy STM32, 8-cyfrowy wyświetlacz oraz wejście impulsowe. Karta podczerwieni ma fototranzystor i diodę LED, która łapie światło odbijając się od białej wstążki. Ta taśma jest przymocowana do koła i przy każdym obrocie będzie generować impuls, który zostanie przechwycony przez przerwanie STM32.

W zespole mamy diodę i kondensator, które zostały zastosowane, aby zapobiec dotarciu szumu sygnału odczytu taśmy do STM32, co spowodowałoby interpretację włączenia i wyłączenia.

Demonstracja pokazuje nasz projekt, a także miernik Minipa (oba w działaniu).

Krok 4: Montaż

montaż
montaż

Krok 5: Program

Zrobimy program, w którym moduł podczerwieni będzie wyzwalał przerwanie w STM32 L432KC co "przekręt" i wykonamy obliczenia, aby wyświetlić obroty na wyświetlaczu.

Krok 6: Biblioteki

Biblioteki
Biblioteki

Dodaj następującą bibliotekę „DigitLedDisplay”.

Wystarczy przejść do „Szkic >> Dołącz biblioteki >> Zarządzaj bibliotekami…”

Krok 7: Kod źródłowy

Biblioteki i zmienne

Zacznijmy od kodu źródłowego zawierającego bibliotekę DigitLedDisplay. Pokażemy obiekt wyświetlany. Ustawiam pin przerwania, który będzie miał wartość 12. Ponadto wprowadzam operator ulotny zarówno dla licznika obrotów, jak i czasu, aby uniknąć problemów z kolizją.

/* Dołącz bibliotekę DigitLedDisplay */#include "DigitLedDisplay.h" /* Pin Arduino do wyświetlacza Pin 7 do DIN, 6 do CS, 5 do CLK */ //DigitLedDisplay ld = DigitLedDisplay(7, 6, 5); //arduino DigitLedDisplay ld = DigitLedDisplay(4, 2, 3); //STM32 L432KC wewn. pin = 12; //pino de interrupção (módulo IR) volatile unsigned int rpm; //contador de rpm volatile unsigned long timeold; //tempo

Ustawiać

W Setup konfigurujemy działanie wyświetlacza, a także konfigurujemy przerwanie jako Rising.

void setup() {Serial.begin(115200); /* Ustaw jasność min:1, max:15 */ ld.setBright(10); /* Ustaw liczbę cyfr */ ld.setDigitLimit(8); ld.printDigit(0); attachInterrupt(digitalPinToInterrupt(pin), przerwaniePin, WZNOSZENIE); obr./min = 0; stary czas = mili(); }

Pętla

Na koniec określamy interwał 1 na 1 minutę, aby zaktualizować wyświetlacz. Po oczyszczeniu ekranu drukujemy RPM. Wykonujemy funkcję, którą wywoła przerwanie. Obliczamy RPM i czas aktualizacji.

void loop() { delay(1000); ld.wyczyść(); ld.printDigit(rpm); } void przerwaniePin() { rpm = 60*1000/(millis() - stary czas); stary czas = mili(); }

Krok 8: Pliki

Pobierz pliki:

PDF

JA NIE

Zalecana: