Spisu treści:

Pomiar prędkości silnika za pomocą Arduino: 6 kroków
Pomiar prędkości silnika za pomocą Arduino: 6 kroków

Wideo: Pomiar prędkości silnika za pomocą Arduino: 6 kroków

Wideo: Pomiar prędkości silnika za pomocą Arduino: 6 kroków
Wideo: Arduino 16: DUŻE SILNIKI KROKOWE 2024, Lipiec
Anonim
Pomiar prędkości silnika za pomocą Arduino
Pomiar prędkości silnika za pomocą Arduino
Pomiar prędkości silnika za pomocą Arduino
Pomiar prędkości silnika za pomocą Arduino
Pomiar prędkości silnika za pomocą Arduino
Pomiar prędkości silnika za pomocą Arduino

Czy trudno zmierzyć obroty silnika ??? Nie sądzę. Oto jedno proste rozwiązanie.

Tylko jeden czujnik podczerwieni i Arduino w twoim zestawie mogą to zrobić.

W tym poście przedstawię prosty samouczek wyjaśniający, jak mierzyć obroty dowolnego silnika za pomocą czujnika podczerwieni i Arduino UNO/nano

Kieszonkowe dzieci:

1. Arduion uno (Amazonka) / Arduion nano (Amazonka)

2. Czujnik podczerwieni (Amazonka)

3. Silnik prądu stałego dowolny (Amazon)

4. LCD 16*2 (Amazonka)

Narzędzia użyte

1. Lutownica (Amazonka)

2. Narzędzie do ściągania izolacji (Amazonka)

Krok 1: Krok: 1 Sprawdź stan pracy czujników i urządzeń

Co to jest czujnik podczerwieni? Czujnik podczerwieni to urządzenie elektroniczne, które emituje światło w celu wykrycia jakiegoś obiektu z otoczenia. Czujnik podczerwieni może mierzyć ciepło obiektu, a także wykrywać ruch. Zazwyczaj w widmie podczerwonym wszystkie obiekty promieniują jakąś formą promieniowania cieplnego. Tego typu promieniowanie jest niewidoczne dla naszych oczu, ale czujnik podczerwieni może je wykryć.

Co to jest silnik prądu stałego? Silnik prądu stałego (DC) to rodzaj maszyny elektrycznej, która przekształca energię elektryczną w energię mechaniczną. Silniki prądu stałego pobierają energię elektryczną za pośrednictwem prądu stałego i przekształcają tę energię w ruch obrotowy.

Silniki prądu stałego wykorzystują pola magnetyczne, które powstają z generowanych prądów elektrycznych, które napędzają ruch wirnika zamocowanego na wale wyjściowym. Wyjściowy moment obrotowy i prędkość zależą zarówno od wejścia elektrycznego, jak i konstrukcji silnika.

Co to jest Arduino?

Arduino to platforma elektroniczna typu open source oparta na łatwym w użyciu sprzęcie i oprogramowaniu. Płytki Arduino potrafią odczytywać wejścia – światło na czujniku, palec na przycisku czy wiadomość na Twitterze – i zamieniać je w wyjście – uruchamiając silnik, włączając diodę LED, publikując coś online. Możesz powiedzieć swojej płytce, co ma robić, wysyłając zestaw instrukcji do mikrokontrolera na płytce. Aby to zrobić, użyj języka programowania Arduino (opartego na Wiring) oraz oprogramowania Arduino (IDE), opartego na Processing.

Pobierz ARDUINO IDE

Krok 2: Jak to działa?

Więc jaka jest logika za tym ??

Działa bardzo podobnie do enkodera. Enkodery są dość trudne do zrozumienia dla początkujących. Wszystko, co musisz wiedzieć, to czujnik podczerwieni generuje impuls, a my ustalamy odstęp czasowy między każdym impulsem.

W takim przypadku czujnik podczerwieni wyśle impuls do Arduino, gdy jego wiązka podczerwieni zostanie przechwycona przez śmigła silników. Zwykle używamy śmigieł z dwoma łopatami, ale ja użyłem śmigła z trzema łopatami, jak pokazano na rysunku. w zależności od ilości łopat śmigła musimy zmodyfikować niektóre wartości podczas obliczania obrotów.

załóżmy, że mamy śmigło, które ma dwie łopatki. Przy każdym obrocie silnika ostrze przechwyci promień IR dwukrotnie. W ten sposób czujnik IR będzie wytwarzał impulsy, gdy kiedykolwiek przechwyci.

Teraz musimy napisać program, który mógłby mierzyć liczbę impulsów wytwarzanych przez czujnik IR w określonym przedziale czasu.

Jest więcej niż jeden sposób rozwiązania problemu, ale musimy wybrać, który jest najlepszy w tym kodzie. Zmierzyłem czas trwania między przerwaniami (czujnik podczerwieni) Użyłem funkcji micros() do pomiaru czasu trwania impulsów w mikro sekundach.

możesz użyć tego wzoru do pomiaru RPMRPM = ((1/czas trwania)*1000*1000*60)/ostrza

gdzie, czas trwania - odstęp czasu między impulsami.

60 - sekund do minut

1000 - od młyna do sekundy

1000 - mikro do mielenia

łopaty - liczba skrzydeł w śmigle.

Wyświetlacz LCD - Arduino aktualizuje rejestry poleceń i danych wyświetlacza LCD. Który wyświetla znaki ASCII na wyświetlaczu LCD.

Krok 3: Zaprogramuj Arduino za pomocą Arduino IDE

#włączać

LCD LiquidCrystal (9, 8, 7, 6, 5, 4); const int IR_IN = 2; //czujnik podczerwieni INPUT unsigned long prevmicro; // Aby przechowywać czas bez znaku długi czas trwania; // Przechowywanie różnicy czasu unsigned long lcdrefresh; // Przechowywanie czasu potrzebnego do odświeżenia lcd int rpm; // RPM wartość logiczna bieżący stan; // Bieżący stan skanowania wejścia IR boolean prevstate; // Stan czujnika podczerwieni w poprzednim skanie void setup() { pinMode(IR_IN, INPUT); lcd.początek(16, 2); poprzednie mikro = 0; stan wstępny = NISKI; } void loop() { /////////////////////////////////////////// //////////////////////////////////// RPM Stan pomiaru = digitalRead(IR_IN); // Odczyt stanu czujnika podczerwieni if(prevstate != currentstate) // Jeśli nastąpiła zmiana na wejściu { if(currentstate == LOW) // Jeśli wejście zmienia się tylko z HIGH na LOW { czas trwania = (micros() - prevmicros); // Różnica czasu między obrotem w mikrosekundach obr/min = ((60000000/czas trwania)/3); // obr/min = (1/ czas milis)*1000*1000*60; prevmikro = mikro(); // czas przechowywania dla obliczenia nect rewolucji } } prevstate = currentstate; // zapisz dane tego skanowania (poprzednie skanowanie) do następnego skanowania //////////////////////////////////// ////////////////////////////////////////////// LCD ((millis()-lcdrefresh) >= 100) { lcd.clear(); lcd.setCursor(0, 0); lcd.print("Prędkość silnika"); lcd.setCursor(0, 1); lcd.print("RPM = "); lcd.print(rpm); lcdrefresh = mili(); } }

Krok 4: Symulacja za pomocą Proteusa

Symulacja z użyciem Proteusa
Symulacja z użyciem Proteusa

Ten projekt działał idealnie, gdy próbowałem go zasymulować za pomocą proteusa.

Zamiast czujnika IR użyłem generatora impulsów prądu stałego, który symuluje impuls IR podobny do generowanego, gdy promienie IR uderzają w łopatki śmigła.

musisz wprowadzić zmiany w swoim programie w zależności od używanego czujnika

Czujnik podczerwieni z LM358 musi używać tego polecenia.

if(currentstate == HIGH) // Jeśli wejście zmienia się tylko z LOW na HIGH

Czujnik podczerwieni z LM359 musi używać tego polecenia.

if(currentstate == LOW) // Jeśli wejście zmienia się tylko z HIGH na LOW

Krok 5: Wykonanie sprzętowe

Wykonanie sprzętowe
Wykonanie sprzętowe
Wykonanie sprzętowe
Wykonanie sprzętowe
Wykonanie sprzętowe
Wykonanie sprzętowe

W przypadku schematu użyj zdjęć symulacyjnych lub zapoznaj się z kodami programu i wykonaj odpowiednie połączenia. Wgraj kod programu do Arduino i zmierz obroty dowolnego silnika. Czekajcie na mój następny post i oglądajcie mój kanał na YouTube.

Zalecana: