Spisu treści:
- Krok 1: Wybierz przewód Sigal
- Krok 2: Przedłuż przewód do płyty Arduino
- Krok 3: Analiza sygnału
- Krok 4: Zakoduj swoją analizę sygnału
- Krok 5: Zidentyfikuj filtr
- Krok 6: Filtrowanie: część 1
- Krok 7: Filtrowanie: część 2
- Krok 8: Filtrowanie: część 3
- Krok 9: Filtrowanie: część 4
Wideo: Użyj Arduino do wyświetlania obrotów silnika: 10 kroków (ze zdjęciami)
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:29
W tym przewodniku opisano, w jaki sposób korzystałem z Arduino UNO R3, wyświetlacza LCD 16x2 z I2C i paska LED, który ma być używany jako wskaźnik prędkości silnika i światło zmiany biegów w moim samochodzie gąsienicowym Acura Integra. Jest napisany w kontekście kogoś z pewnym doświadczeniem lub kontaktem z oprogramowaniem Arduino lub ogólnie kodowaniem, oprogramowaniem matematycznym MATLAB oraz tworzeniem lub modyfikowaniem obwodów elektrycznych. W przyszłości może to zostać zmienione, aby było łatwiejsze do zrozumienia dla kogoś, kto ma niewielkie lub żadne doświadczenie w tych tematach.
Krok 1: Wybierz przewód Sigal
Potrzebny będzie sygnał skorelowany z prędkością obrotową silnika. Możliwe jest dodanie systemu mierzącego prędkość obrotową silnika, ale o wiele bardziej praktyczne jest podłączenie do istniejącego przewodu, który przenosi informacje o prędkości obrotowej silnika. Pojedynczy samochód może mieć wiele źródeł tego zjawiska i może się to bardzo różnić nawet z roku na rok w przypadku jednego modelu pojazdu. Na potrzeby tego tutoriala posłużę się przykładem mojego auta, zmodyfikowanej gąsienicy 2000 Acura Integra LS. Znalazłem w moim silniku (B18B1 z OBD2) niewykorzystane napięcie, które jest wysokie na 12V i spada do 0V po zakończeniu pełnego obrotu.
Rzeczy, które pomogą zidentyfikować potencjalny sygnał prędkości silnika:
- Schemat połączeń dla twojego pojazdu
- Wyszukiwanie forów dla Twojego pojazdu z wykorzystaniem sygnałów silnika/ECU
- Przyjazny mechanik lub pasjonat samochodów
Krok 2: Przedłuż przewód do płyty Arduino
Po wybraniu odpowiedniego sygnału musisz go rozszerzyć na miejsce, w którym umieścisz swoją płytkę Arduino. Zdecydowałem się umieścić mój w pojeździe, w którym kiedyś było radio, więc poprowadziłem nowy przewód z silnika, przez gumową przelotkę w ścianie przeciwpożarowej i prosto do obszaru radiowego. Ponieważ istnieje już wiele poradników dotyczących zdejmowania izolacji, lutowania i zabezpieczania okablowania, nie będę wyjaśniał tego procesu.
Krok 3: Analiza sygnału
Tutaj sprawy mogą się skomplikować. Posiadanie ogólnej wiedzy na temat analizy sygnałów i elementów sterujących pomoże ci na dłuższą metę, ale jest to wykonalne przy niewielkiej wiedzy.
Wybrany przewód sygnałowy najprawdopodobniej nie będzie podawać dokładnej wartości prędkości obrotowej silnika. Będzie musiał zostać ukształtowany i zmodyfikowany, aby dać dokładną liczbę obrotów silnika, jaką chcesz. Ze względu na to, że każdy wybrany samochód i przewód sygnałowy może być inny, od tego momentu wyjaśnię, jak wykorzystałem sygnał położenia z dystrybutora na mojej Integra.
Mój sygnał to normalnie 12V i spada do 0V po wykonaniu jednego pełnego obrotu. Jeśli znasz czas na wykonanie jednego pełnego obrotu lub jednego pełnego cyklu, można to łatwo przełożyć na obroty/min przy użyciu kilku podstawowych pojęć.
1 / (sekundy na cykl) = cykle na sekundę lub Hz
Obroty na minutę = Hz * 60
Krok 4: Zakoduj swoją analizę sygnału
Ta metoda wymaga uzyskania czasu potrzebnego na zakończenie jednego pełnego cyklu sygnału wejściowego. Na szczęście oprogramowanie Arduino IDE ma polecenie, które dokładnie to robi, PulseIn.
To polecenie będzie czekać na sygnał, który przekroczy próg, rozpocznie zliczanie i zatrzyma zliczanie po ponownym przekroczeniu progu. Jest kilka szczegółów, na które należy zwrócić uwagę podczas korzystania z polecenia, dlatego zamieszczę tutaj link do informacji o PulseIn:
PulseIn zwróci wartość w mikrosekundach, a żeby matematyka była prosta, należy ją natychmiast przekonwertować na normalne sekundy. Postępując zgodnie z matematyką z poprzedniego kroku, ten czas można zrównać bezpośrednio z RPM.
Uwaga: po próbach i błędach odkryłem, że dystrybutor wykonuje dwa obroty na każdy obrót wału korbowego silnika, więc po prostu podzieliłem swoją odpowiedź przez 2, aby to uwzględnić.
Krok 5: Zidentyfikuj filtr
Jeśli masz szczęście, sygnał nie będzie miał „szumów” (wahań), a prędkość silnika będzie dokładna. W moim przypadku z dystrybutora dochodził spory szum, który często podawał napięcia dalekie od oczekiwanego. To zamienia się w bardzo fałszywe odczyty rzeczywistej prędkości obrotowej silnika. Ten hałas będzie musiał zostać odfiltrowany.
Po pewnej analizie sygnału, prawie wszystkie szumy dochodziły do częstotliwości (Hz) znacznie wyższych niż te, które wytwarzał sam silnik (co jest prawdą w przypadku większości rzeczywistych systemów dynamicznych). Oznacza to, że filtr dolnoprzepustowy jest idealnym kandydatem, aby się tym zająć.
Filtr dolnoprzepustowy przepuszcza niskie częstotliwości (pożądane) i tłumi wysokie częstotliwości (niepożądane).
Krok 6: Filtrowanie: część 1
Projektowanie filtra można wykonać ręcznie, jednak użycie MATLAB znacznie przyspieszy to, jeśli masz dostęp do oprogramowania.
Filtr dolnoprzepustowy można przyrównać do funkcji transferu (lub frakcji) w domenie Laplace'a (domena częstotliwości). Częstotliwość wejściowa zostanie pomnożona przez ten ułamek, a wyjściem będzie przefiltrowany sygnał, który zawiera tylko te informacje, których chcesz użyć.
Jedyną zmienną w funkcji jest tau. Tau jest równe 1 / Omega, gdzie Omega jest żądaną częstotliwością graniczną (musi być w radianach na sekundę). Częstotliwość graniczna to granica, przy której częstotliwości wyższe od niej zostaną usunięte, a częstotliwości niższe od tej wartości zostaną zachowane.
Ustawiam częstotliwość odcięcia równą obrotom, których mój silnik nigdy nie osiągnie (990 obr./min lub 165 Hz). Wykresy FFT pokazują w przybliżeniu, jakie częstotliwości niósł mój surowy sygnał oraz częstotliwości, które wyszły z filtra.
Krok 7: Filtrowanie: część 2
Tutaj MATLAB został ponownie wykorzystany ze względu na czas. Definiowana jest częstotliwość graniczna, z której wyświetlana jest wynikowa funkcja transferu. Należy pamiętać, że ta część dotyczy tylko domeny Laplace i nie może być bezpośrednio używana na mikrokontrolerze opartym na czasie, takim jak Arduino UNO R3.
Krok 8: Filtrowanie: część 3
MATLAB ma polecenie, które przekształci funkcję ciągłą (dziedzina częstotliwości) na funkcję dyskretną (domena czasu). Dane wyjściowe tego polecenia zapewnią równanie, które można łatwo włączyć do kodu Arduino IDE.
Krok 9: Filtrowanie: część 4
W szkicu Arduino uwzględnij zmienne u i y przed konfiguracją. Polecenie float po prostu definiuje, w jaki sposób zmienna będzie przechowywać dane (rzeczy takie jak wartość maksymalna, ułamki dziesiętne itp.), a link do dalszych informacji na ten temat zostanie podany tutaj: https://www.arduino.cc/reference/en/language /waria…
W pętli, w której odbywa się konwersja z nieprzetworzonego sygnału na prędkość silnika, należy uwzględnić zmienną u oraz wielokrotne równanie y. Istnieje wiele sposobów wykorzystania tego, ale zmienna u powinna być ustawiona na równą mierzonemu surowemu sygnałowi wejściowemu, a zmienna y będzie wartością filtrowaną.
Zalecana:
Ogranicznik obrotów Arduino dla silnika gazowego: 5 kroków
Arduino RPM Limiter dla silnika gazowego: Demonstracja na YoutubeZastępuje regulator ograniczający prędkość silnika benzynowego. Ten ogranicznik obrotów można przełączać na 3 różne ustawienia w locie. Zainstalowałem to na jednocylindrowym silniku Briggs and Stratton i użyłem Ardu
Użyj silnika krokowego jako enkodera obrotowego: 9 kroków (ze zdjęciami)
Użyj silnika krokowego jako enkodera obrotowego: Enkodery obrotowe doskonale nadają się do stosowania w projektach mikrokontrolerów jako urządzenie wejściowe, ale ich wydajność nie jest zbyt płynna i zadowalająca. Poza tym, mając dużo zapasowych silników krokowych, postanowiłem nadać im cel. Więc jeśli masz trochę steppera
Użyj silnika napędu prądu stałego bieżni i regulatora prędkości PWM do zasilania narzędzi: 13 kroków (ze zdjęciami)
Użyj silnika napędu prądu stałego bieżni i regulatora prędkości PWM do zasilania narzędzi: mogą wymagać elektronarzędzia, takie jak frezy i tokarki do metalu, wiertarki, piły taśmowe, szlifierki i inne. Silniki od 5 KM do 2 KM z możliwością precyzyjnej regulacji prędkości przy zachowaniu momentu obrotowego .Przypadkowo większość bieżni używa silnika 80-260 VDC z
Autonomiczna kontrola obrotów silnika za pomocą systemu sprzężenia zwrotnego z obrotomierza na podczerwień: 5 kroków (ze zdjęciami)
Autonomiczna kontrola obrotów silnika za pomocą systemu sprzężenia zwrotnego z obrotomierza na podczerwień: Zawsze istnieje potrzeba zautomatyzowania procesu, czy to prostego, czy monstrualnego. metody nawadniania/nawadniania naszego małego kawałka ziemi. Problem braku linii zasilającej
Użyj SSH i XMing do wyświetlania programów X z komputera z systemem Linux na komputerze z systemem Windows: 6 kroków
Używanie SSH i XMing do wyświetlania programów X z komputera z systemem Linux na komputerze z systemem Windows: Jeśli używasz systemu Linux w pracy, a systemu Windows w domu lub odwrotnie, czasami konieczne może być zalogowanie się na komputerze w innej lokalizacji i uruchamiaj programy. Cóż, możesz zainstalować serwer X i włączyć tunelowanie SSH za pomocą klienta SSH, a jeden