Obroty na minutę: RPM (czujka pola magnetycznego SS49E)
Pan Przemek ukończył kod, który zlicza obroty wirującego silniczka – brawo! Należy się pochwała, bo to jego pierwsze zmagania z Arduino.
Układ doświadczalny:
W układzie celowo zamontowano magnesy tak, by czujka SS49E „widziała” raz biegun północny (N) magnesu, a za drugim razem (gdy silniczek obróci sie o 180 stopni) biegun południowy (S). Ustawienie magnesów na końcach patyka nie jest więc przypadkowe 😉 Czujnik SS49E odczytuje zarówno biegun S jak i N (uwaga: nie wszystkie czujki pola magnetycznego, bazującego na efekcie Halla, tak mają – warto to sprawdzić przed zakupejm), dlatego widzimy dwa „piki” podczas obracania silniczka – jeden „do góry” (większe napięcie) oraz „do dołu” (napięcie mniejsze). Z dala od magnesów czujka zwraca napięcie ~2.5V informując, że wartość pola magnetycznego jest (około) zera. Poniżej wykres z Kreślarki
Program zliczający liczbę obrotów na sekundę (zmienna czas – aktualnie 1000ms, ale można zmienić, także przez krotność – zmienna krok). Algorytm polega na znajdowaniu maksimum i minimum napięcia – a zapisywane jest moment ich wystąpienia (do zmiennych t_1oraz t_2, odpowiednio). Różnica tych czasów do pół obrotu.
void setup() { Serial.begin(9600); } int i,max_=518,min_=518,a=0,b=0,czas,n=0,krok=1; float v; long int t_1=0,t_2=0,t_k=0,t_3=0,t_p; void loop(){ t_p=millis(); czas=1000; i=analogRead(A0); if(i>540){ if(i>max_){ max_=i; t_1=millis(); } else if(i<max_){ a=1; } } if(i<490){ if(i<min_){ min_=i; t_2=millis(); } else if(i>min_){ b=1; } } if(t_1>t_2){ t_3=t_2; } else{ t_3=t_1; } if(a==1&&b==1){ t_k=abs(t_2-t_1); a=0; b=0; max_ = 518; min_ = 518; if(czas>t_3){ n++; } else if(czas<t_3){ Serial.print("Liczba pol-obrotow: "); Serial.println(n); n=0; krok++; czas=czas*krok; } } }
Zmienna n (małe n) zlicza wystąpienia „półobrotów”, a co ustalony czas wypisywany jest komunikat z tą liczbą. W ten sposób mamy właśnie pół-RPS (revolutions per second), z którego łatwo można już otrzymać RPM (revolutions per minute).
Precyzyjna Maszyna
Sprężynka nie wytrzymała – chyba była zbyt twarda 🙁
Nowy model powinien być lepszy – bo wydrukowany z Z-Ultratu:
No i mamy coraz lepszą pracę Maszyny:
Więcej o projekcie Maszyny na stronie projektu.
(c) K.G.