Akcelerometr Arduino przydaje się wtedy, gdy chcesz mierzyć przechył, wstrząs albo ruch bez dokładania skomplikowanej elektroniki. W praktyce to jeden z tych czujników, które wyglądają prosto, ale szybko wychodzą poza samo „podłączenie i odczyt” - trzeba jeszcze wybrać odpowiedni moduł, poprawnie go zasilić, odfiltrować szum i zrozumieć, co naprawdę oznacza wynik na osi X, Y lub Z. W tym artykule pokazuję to krok po kroku, z naciskiem na realne zastosowania w robotyce i projektach na Arduino.
Najkrótsza droga do sensownych odczytów z czujnika przyspieszenia
- Akcelerometr mierzy przyspieszenie w osiach X, Y i Z, ale w spoczynku pokazuje też wpływ grawitacji.
- Do nowych projektów najwygodniejszy jest zwykle moduł cyfrowy I2C lub SPI.
- Bez kalibracji offsetu i lekkiej filtracji nawet dobry czujnik daje chaotyczne wyniki.
- Jeśli chcesz stabilnej orientacji w ruchu, sam akcelerometr zwykle nie wystarczy.
- Wybór modułu zależy od zakresu pomiarowego, rozdzielczości, interfejsu i zasilania.
Jak działa czujnik przyspieszenia i co naprawdę mierzy
Najprościej mówiąc, akcelerometr mierzy zmianę prędkości wzdłuż osi, a nie „pozycję” czy „kierunek”. W czujnikach MEMS wewnątrz pracuje mikroskopijna masa zawieszona na sprężynkach; gdy płytka się porusza, zmienia się pojemność i z tego powstaje odczyt. Ja zawsze tłumaczę to tak: w spoczynku sensor nadal „widzi” grawitację, dlatego na jednej osi pojawi się około 1 g, a nie równe zero.
- Oś ustawiona pionowo pokaże w przybliżeniu 1 g.
- Po przechyleniu wartość rozkłada się na kilka osi.
- Przy gwałtownym ruchu do sygnału dochodzi przyspieszenie dynamiczne, więc odczyt miesza ruch i grawitację.
- Sam akcelerometr nie zastępuje żyroskopu, jeśli chcesz stabilnie wyznaczać orientację w ruchu.
To właśnie ta różnica między „co mierzę” a „jak interpretuję” decyduje o tym, czy projekt będzie użyteczny, czy tylko poprawny na papierze. Dlatego przy wyborze modułu patrzę najpierw na sposób komunikacji i zakres pomiarowy, a dopiero później na wygodę bibliotek.
Który moduł do Arduino wybrać
W dokumentacji Analog Devices dobrze widać dwie popularne drogi: ADXL345 to cyfrowy, 3-osiowy układ z zakresem ±2/±4/±8/±16 g i rozdzielczością do 13 bitów, a ADXL335 daje analogowe wyjścia i prostszy model pracy. W praktyce ja wybieram cyfrowy moduł, jeśli projekt ma działać dłużej niż jedno popołudnie, bo I2C lub SPI zwykle mniej boli niż walka z szumem na wejściach ADC.
| Moduł | Interfejs | Co daje | Kiedy ma sens | Na co uważać |
|---|---|---|---|---|
| ADXL335 | Analogowy | Proste wyjścia X/Y/Z, niskie zużycie energii, pasmo ustawiane kondensatorami | Proste projekty, nauka ADC, starsze układy, szybki prototyp bez biblioteki | Większa wrażliwość na zakłócenia, konieczność przeliczenia napięcia na g |
| ADXL345 | I2C lub SPI | Cyfrowy odczyt, zakres do ±16 g, wygodniejsza integracja z Arduino | Większość nowych projektów, logowanie ruchu, wykrywanie przechyłu i wstrząsu | Sprawdź poziomy napięć na module i nie zakładaj, że każdy breakout jest 5 V |
| IMU 6-osiowe | Zwykle I2C | Akcelerometr + żyroskop, lepszy obraz ruchu i orientacji | Robotyka, gesty, analiza ruchu, gdy sam przechył nie wystarcza | Więcej kalibracji, więcej obróbki danych, większa złożoność kodu |
Jeśli chcesz tylko wykrywać przechył albo wstrząs, zwykle wystarczy 3-osiowy czujnik przyspieszenia. Jeśli zależy ci na orientacji w czasie ruchu, sensowniej od razu rozważyć IMU, bo późniejsze dokładanie żyroskopu bywa bardziej kłopotliwe niż start z lepszym modułem. W dokumentacji Arduino znajdziesz też gotowe biblioteki dla układów takich jak MPU6050 czy ADXL345, więc nie ma sensu zaczynać od ręcznego rozbierania rejestrów, jeśli dopiero uczysz się tematu.
Gdy wybór jest już zawężony, najwięcej problemów zaczyna się przy kablach i pierwszym uruchomieniu.

Jak podłączyć moduł i sprawdzić pierwszy odczyt
W praktyce zaczynam od najprostszej ścieżki: zasilanie, masa, linie danych i szybki test w monitorze szeregowym. To nie jest efektowny etap, ale właśnie tutaj wychodzi, czy moduł działa stabilnie, czy tylko „coś się wyświetla”.
- Sprawdź, czy moduł pracuje z 3,3 V, 5 V, czy ma własny stabilizator i konwerter poziomów.
- Podłącz GND, VCC, SDA i SCL. W Arduino Uno linie I2C to A4 i A5, a w innych płytkach mogą być wyprowadzone osobno.
- Jeśli na płytce są piny typu CS, SDO albo AD0, zostaw je zgodnie z dokumentacją modułu albo sprawdź ich wpływ skanerem I2C.
- Wgraj prosty odczyt i otwórz monitor portu szeregowego.
- Połóż sensor nieruchomo i zobacz, czy jedna oś pokazuje wartość zbliżoną do 1 g.
Przy układach analogowych zasada jest ta sama, ale zamiast I2C czytasz trzy wejścia ADC i przeliczasz napięcie na jednostki g. To nadal jest prosty start, tylko mniej elegancki niż cyfrowy odczyt. Ja zwykle polecam najpierw sprawdzić surowe wartości, a dopiero później dorabiać ładniejsze wykresy i reakcje.
Jeżeli test działa, możesz przejść do kalibracji, bo bez niej surowe liczby zwykle mylą bardziej, niż pomagają.
Kalibracja i filtracja danych bez przesadnej matematyki
Surowe dane prawie nigdy nie są równe temu, czego oczekujesz, bo każdy egzemplarz ma własny offset. Ja zawsze zaczynam od kalibracji w spoczynku: zbieram serię odczytów, wyliczam średnią dla X, Y i Z, a potem odejmuję ją od kolejnych pomiarów. Dzięki temu „zero” naprawdę staje się zerem po stronie projektu, a nie tylko w teorii.
Jeśli potrzebujesz kąta nachylenia, możesz policzyć go z przyspieszenia grawitacyjnego. Dla orientacyjnego roll i pitch wystarczą wzory oparte na atan2, na przykład atan2(x, sqrt(y*y + z*z)); trzeba tylko pamiętać, że działają sensownie głównie wtedy, gdy urządzenie nie wykonuje gwałtownych ruchów. W ruchu mieszają się grawitacja i przyspieszenie liniowe, więc sam kąt potrafi skakać.
Ja traktuję to dość pragmatycznie: jeśli sygnał ma reagować na przechył, filtr ma pomóc tylko tyle, by wyciszyć przypadkowe drgnięcia. Jeśli zaczynasz wygładzać wszystko za mocno, czujnik staje się ospały i przestaje dobrze nadążać za ruchem. Po tej pracy łatwiej zobaczyć, które problemy wynikają z samego układu, a które z montażu.
Najczęstsze błędy, które psują pomiary
Wiele projektów wygląda na „zepsute”, choć w rzeczywistości chodzi o kilka powtarzalnych potknięć. To dobre miejsce, żeby odsiać przypadki, które można naprawić w pięć minut, od tych, które naprawdę wymagają lepszego czujnika.
| Objaw | Najbardziej prawdopodobna przyczyna | Co zrobić |
|---|---|---|
| Odczyt „pływa” nawet na biurku | Za długie przewody, brak filtracji, drgania obudowy | Skróć połączenia, uśrednij próbki, zamocuj moduł sztywno |
| Na jednej osi ciągle widać około 1 g | To normalny wpływ grawitacji, a nie błąd | Skalibruj pozycję spoczynkową i nie oczekuj zera na każdej osi |
| Wartości uciekają przy mocnym ruchu | Zbyt mały zakres pomiarowy, np. ±2 g | Przełącz czujnik na ±4 g, ±8 g albo ±16 g |
| Przechył działa w spoczynku, ale gubi się w ruchu | Akcelerometr widzi też przyspieszenie liniowe | Nie licz orientacji z samego czujnika, gdy robot jedzie lub drży |
| Moduł nie odpowiada albo działa niestabilnie | Złe napięcie zasilania lub niezgodne poziomy logiczne | Sprawdź kartę modułu, zasilanie i kompatybilność z 3,3 V lub 5 V |
To są drobiazgi, które potrafią zepsuć projekt bardziej niż sam wybór czujnika. Bardzo często problem nie leży w „złym akcelerometrze”, tylko w mechanice, okablowaniu albo źle dobranej skali pomiarowej. Kiedy te rzeczy są uporządkowane, dopiero wtedy widać, do czego taki moduł naprawdę się nadaje.
Gdzie taki czujnik daje największy sens w robotyce i elektronice
Najbardziej lubię zastosowania, w których akcelerometr daje prostą odpowiedź na konkretne pytanie. To nie musi być duży system; czasem wystarczy jedna oś i dobrze ustawiony próg, żeby projekt stał się praktyczny.
- Wykrywanie przechyłu w robocie mobilnym, uchwycie albo obudowie urządzenia.
- Alarm wstrząsowy dla pudełka, narzędzia lub prostego systemu antymanipulacyjnego.
- Logowanie drgań silnika, ramy albo konstrukcji mechanicznej.
- Prosty interfejs gestów, gdy ruch ma uruchamiać jedną z kilku akcji.
- Detekcja upadku lub gwałtownego odchylenia w małych urządzeniach mobilnych.
W robotyce zwykle zaczynam od akcelerometru, ale gdy projekt ma wyjść poza demonstrację, szybko dokładam żyroskop. Sam czujnik przyspieszenia dobrze pokazuje przechył i nagłe zmiany ruchu, lecz nie daje tak stabilnego obrazu orientacji jak dobrze zestrojone IMU. Jeśli więc planujesz coś więcej niż prosty alarm albo wskaźnik położenia, warto od razu myśleć o całym układzie pomiarowym, a nie o jednym module.
To prowadzi do najważniejszej decyzji: nie wybieraj najbardziej rozbudowanego czujnika tylko dlatego, że brzmi nowocześnie. Lepiej dobrać rozwiązanie do tego, co naprawdę chcesz mierzyć, niż potem nadrabiać wszystko programowo.
Co zabieram do projektu, kiedy ma działać stabilnie w praktyce
Jeżeli miałbym wskazać jedną rozsądną ścieżkę startu, wybrałbym cyfrowy moduł, podłączył go przez I2C, od razu zrobił kalibrację offsetu i sprawdził odczyty w kilku pozycjach. Dopiero potem dodałbym filtr i logikę reakcji, bo bez tego łatwo budować funkcje na niestabilnych danych.
- Do prostych przechyłów wystarczy czujnik 3-osiowy.
- Do ruchu i orientacji wybierz IMU z żyroskopem.
- Do projektów wibracyjnych zadbaj o sztywny montaż i odpowiedni zakres pomiarowy.
W praktyce najlepsze rezultaty daje nie najbardziej „zaawansowany” moduł, tylko dobrze dobrany czujnik, poprawne zasilanie i kilka minut na kalibrację. Jeśli ten zestaw zrobisz porządnie, czujnik przyspieszenia staje się bardzo użytecznym elementem projektu, a nie źródłem losowych wykresów.