Spisu treści:
Wideo: ADXL345 przy użyciu Arduino Uno R3: 5 kroków
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:30
W tej lekcji nauczymy się korzystać z czujnika przyspieszenia ADXL345.
Krok 1: Komponenty
- Płytka Arduino Uno * 1
-Kabel USB * 1
-ADXL345 * 1
-Płytka chlebowa * 1
- Przewody połączeniowe
Krok 2: Zasada
Akcelerometr służy do pomiaru siły generowanej podczas przyspieszania. Najbardziej fundamentalnym jest powszechnie znane przyspieszenie grawitacyjne, które wynosi 1g.
Mierząc przyspieszenie wywołane grawitacją, można obliczyć kąt nachylenia urządzenia do poziomej powierzchni. Analizując dynamiczne przyspieszenie, możesz określić, w jaki sposób porusza się urządzenie. Na przykład samobalansująca deska lub hoverboard stosuje czujnik przyspieszenia i żyroskop do filtru Kalmana i korekcji postawy.
ADXL345
ADXL345 to mały, cienki, energooszczędny, 3-osiowy akcelerometr z pomiarem o wysokiej rozdzielczości (13-bitów) do ±16 g. Cyfrowe dane wyjściowe są sformatowane jako 16-bitowe uzupełnienie dwójki i są dostępne za pośrednictwem interfejsu cyfrowego SPI (3- lub 4-przewodowego) lub I2C. W tym eksperymencie używany jest interfejs cyfrowy I2C.
Dobrze nadaje się do pomiaru statycznego przyspieszenia grawitacyjnego w aplikacjach z wykrywaniem przechyłu, a także dynamicznego przyspieszenia wynikającego z ruchu lub wstrząsu. Jego wysoka rozdzielczość (4 mg/LSB) umożliwia pomiar zmian nachylenia o mniej niż 1,0°. A doskonała czułość (3,9 mg/LSB przy 2 g) zapewnia wysoką precyzję do ±16g.
Jak działa ADXL345?
ADXL345 wykrywa przyspieszenie za pomocą elementu czujnikowego z przodu, a następnie element wykrywający sygnał elektryczny zamienia go na sygnał elektryczny, który jest analogowy. Następnie adapter AD zintegrowany z modułem zamieni sygnał analogowy na cyfrowy.
X_OUT, Y_OUT i Z_OUT są wartościami odpowiednio na osiach X, Y i Z. Umieść moduł przodem do góry: Z_OUT może osiągnąć maksymalnie +1g, minimum X_OUT to -1g w kierunku Ax, a minimum Y_OUT to -1g w kierunku Ay. Z drugiej strony odwróć moduł do góry nogami: minimum Z_OUT to -1g, maksimum X_OUT to +1g w kierunku Ax, a maksimum Y_OUT to +1g w kierunku Ay., jak pokazano niżej. Obróć moduł ADXL345, a zobaczysz zmianę trzech wartości.
gdy kanał A zmienia się z wysokiego poziomu na niski, jeśli kanał B ma wysoki poziom, oznacza to, że enkoder obrotowy obraca się zgodnie z ruchem wskazówek zegara (CW); jeśli w tym momencie kanał B ma niski poziom, oznacza to, że obraca się w kierunku przeciwnym do ruchu wskazówek zegara (CCW). Jeśli więc odczytamy wartość kanału B, gdy kanał A ma niski poziom, możemy wiedzieć, w którym kierunku obraca się enkoder obrotowy.
Zasada: Zobacz schemat ideowy modułu enkodera obrotowego poniżej. Z tego widać, że pin 3 enkodera obrotowego, czyli CLK na module, to kanał B. Pin 5, czyli DT, to kanał A. Aby poznać kierunek obrotów rejestratora, wystarczy odczytać wartość CLK i DT.
W obwodzie znajduje się układ regulatora napięcia 3,3 V, dzięki czemu można zasilać moduł napięciem 5 V lub 3,3 V.
Ponieważ SDO zostało podłączone do GND, adres I2C ADXL345 to 0x53, 0xA6 do zapisu, 0xA7 do odczytu
Funkcja pinów modułu ADXL345.
Krok 3: Procedury
Krok 1. Zbuduj obwód.
Krok 2:
Pobierz kod z
Krok 3:
Prześlij szkic na płytkę Arduino Uno
Kliknij ikonę Prześlij, aby przesłać kod do tablicy kontrolnej.
Jeśli na dole okna pojawi się komunikat „Zakończono przesyłanie”, oznacza to, że szkic został pomyślnie przesłany.
Po przesłaniu otwórz Serial Monitor, gdzie możesz zobaczyć wykryte dane. Gdy przyspieszenie modułu ulegnie zmianie, liczba w oknie odpowiednio się zmieni.
Krok 4: Kod
//ADXL335
/********************************
ADXL335
Uwaga: vcc5v, ale ADXL335 Vs to 3,3 V
Obwód:
5V: VCC
analogowe 0: oś x
analogowy 1: oś y
analogowy 2: oś z
Po spaleniu
otwórz okno debugowania monitora szeregowego, w którym możesz zobaczyć wykryte dane, które są wyświetlane. Gdy przyspieszenie się zmienia, liczba ta będzie się odpowiednio zmieniać.
*********************************
/E-mail:
//Strona internetowa:www.primerobotics.in
const int xpin =
A0; // oś x akcelerometru
const int ypin =
A1; // oś y
const int zpin =
A2; // oś z (tylko w modelach 3-osiowych)
pusta konfiguracja()
{
// zainicjuj komunikację szeregową:
Serial.początek(9600);
}
pusta pętla()
{
int x = odczyt analogowy (xpin); //odczytaj z xpin
opóźnienie(1); //
int y = odczyt analogowy(ypin); //odczytaj z ypin
opóźnienie(1);
int z = odczyt analogowy (zpin); //odczytaj z zpin
pływak zero_G = 338,0; //Zasilacz ADXL335
przez Vs 3.3V:3.3V/5V*1024=676/2=338
//Serial.print(x);
//Serial.print("\t");
//Serial.print(y);
//Serial.print("\t");
//Serial.print(z);
//Serial.print("\n");
pływak
zero_Gx=331.5;//wyjście zero_G osi x:(x_max + x_min)/2
pływak
zero_Gy=329.5;//wyjście zero_G osi y:(y_max + y_min)/2
float zero_Gz=340.0;//the
zero_G wyjście osi z:(z_max + z_min)/2
skala zmiennoprzecinkowa =
67,6;//zasilanie przez Vs 3,3 V:3,3 V /5 V * 1024/3,3 V * 330 mv/g = 67,6 g
liczba zmiennoprzecinkowa_x =
65;//skala osi x: x_max/3.3v*330mv/g
zmiennoprzecinkowa skala_y =
68.5;//skala osi y: y_max/3.3v*330mv/g
zmiennoprzecinkowa skala_z =
68;//skala osi z: z_max/3.3v*330mv/g
Serial.print(((zmiennoprzecinkowa)x
- zero_Gx)/skala_x); //drukuj wartość x na monitorze szeregowym
Serial.print("\t");
Serial.print(((zmiennoprzecinkowa)y
- zero_Gy)/skala_y); //wydrukuj wartość y na monitorze szeregowym
Serial.print("\t");
Serial.print(((zmiennoprzecinkowa)z
- zero_Gz)/skala_z); //drukuj wartość z na monitorze szeregowym
Serial.print("\n");
opóźnienie (1000); //czekaj 1 sekundę
}
Krok 5: Analiza kodu
Kod eksperymentu ADXL345 składa się z 3 części: inicjalizacja każdego portu i urządzenia, gromadzenie i przechowywanie danych wysyłanych z czujników oraz konwersja danych.
Zalecana:
Kabel do programowania DIY przy użyciu Arduino Uno - Baofeng UV-9R Plus: 6 kroków (ze zdjęciami)
Kabel do programowania DIY za pomocą Arduino Uno - Baofeng UV-9R Plus: Cześć wszystkim, to jest prosty przewodnik dotyczący konwersji kabla Baofeng UV-9R (lub plus) słuchawkowego / słuchawkowego na kabel do programowania za pomocą Ardunio UNO jako USB Konwerter szeregowy. [ZASTRZEŻENIE] Nie biorę żadnej odpowiedzialności za jakiekolwiek szkody spowodowane
Astronomia Coffin Dance Meme Muzyka przy użyciu Arduino Uno: 5 kroków
Astronomia Coffin Dance Meme Music za pomocą Arduino Uno: Na tym blogu pokazaliśmy Ci Astronomia Coffin Dance Tune z Arduino Uno Jak wszyscy wiecie o wątkach memów o astronomii tańca trumiennego, postanowiłem stworzyć tę melodię za pomocą arduino uno. Oto kroki i użyte materiały w tym projekcie
Akcelerometr 3-osiowy, ADXL345 z Raspberry Pi przy użyciu Pythona: 6 kroków
Akcelerometr 3-osiowy, ADXL345 z Raspberry Pi przy użyciu Pythona: Myślenie o gadżecie, który może sprawdzić punkt, w którym twój Offroader jest przechylony w kierunku, aby się zatrzymał. Czy nie byłoby przyjemnie w przypadku, gdy ktoś jest dopasowany, gdy istnieje możliwość przewrócenia się? Oczywiście tak. Byłoby to prawda
Neopixel Ws2812 Rainbow LED Glow z M5stick-C - Uruchamianie Rainbow na Neopixel Ws2812 przy użyciu M5stack M5stick C przy użyciu Arduino IDE: 5 kroków
Neopixel Ws2812 Rainbow LED Glow z M5stick-C | Uruchamianie Rainbow na Neopixel Ws2812 Używając M5stack M5stick C Używając Arduino IDE: Cześć chłopaki, w tej instrukcji dowiemy się, jak używać neopikselowych ws2812 LED lub taśmy LED lub matrycy LED lub pierścienia LED z płytką rozwojową m5stack m5stick-C z Arduino IDE i zrobimy wzór tęczy z nim
DIY lutownica na gorące powietrze przy użyciu 12-18 woltów prądu stałego przy 2-3 amperach: 18 kroków (ze zdjęciami)
DIY lutownica na gorące powietrze przy użyciu 12-18 woltów prądu stałego przy 2-3 amperach: to moja pierwsza publikacja eva artykułu o majsterkowaniu w Internecie. Więc przepraszam za literówki, protokoły itp. Poniższe instrukcje pokazują, jak zrobić PRACOWĄ lutownicę na gorące powietrze odpowiednią do WSZYSTKICH zastosowań wymagających lutowania. To lutowanie gorącym powietrzem