Spisu treści:
- Krok 1: Wymagany sprzęt:
- Krok 2: Podłączenie sprzętu:
- Krok 3: Kod pomiaru przyspieszenia:
- Krok 4: Aplikacje:
Wideo: Pomiar przyspieszenia za pomocą ADXL345 i Particle Photon: 4 kroki
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:27
ADXL345 to mały, cienki, bardzo 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 do dwójek i są dostępne przez interfejs cyfrowy I2 C. Mierzy statyczne przyspieszenie grawitacyjne w aplikacjach z wykrywaniem przechyłu, a także dynamiczne przyspieszenie wynikające z ruchu lub wstrząsu. Jego wysoka rozdzielczość (3,9 mg/LSB) umożliwia pomiar zmian nachylenia mniejszych niż 1,0°.
W tym samouczku zilustrowano interfejs modułu czujnika ADXL345 z fotonem cząstek. Aby odczytać wartości przyspieszenia, użyliśmy cząstek z adapterem I2c. Ten adapter I2C sprawia, że połączenie z modułem czujnika jest łatwe i bardziej niezawodne.
Krok 1: Wymagany sprzęt:
Materiały, których potrzebujemy do realizacji naszego celu, obejmują następujące komponenty sprzętowe:
1. ADXL345
2. Cząsteczkowy foton
3. Kabel I2C
4. Tarcza I2C dla fotonu cząsteczkowego
Krok 2: Podłączenie sprzętu:
Sekcja dotycząca podłączania sprzętu zasadniczo wyjaśnia połączenia przewodów wymagane między czujnikiem a fotonem cząstek. Zapewnienie prawidłowych połączeń jest podstawową koniecznością podczas pracy na dowolnym systemie o pożądanej mocy. Tak więc wymagane połączenia są następujące:
ADXL345 będzie działał przez I2C. Oto przykładowy schemat okablowania, pokazujący, jak okablować każdy interfejs czujnika.
Po wyjęciu z pudełka, płyta jest skonfigurowana do interfejsu I2C, dlatego zalecamy korzystanie z tego podłączenia, jeśli jesteś agnostykiem.
Wszystko czego potrzebujesz to cztery przewody! Wymagane są tylko cztery połączenia Vcc, Gnd, SCL i SDA, które są połączone za pomocą kabla I2C.
Połączenia te są pokazane na powyższych zdjęciach.
Krok 3: Kod pomiaru przyspieszenia:
Zacznijmy teraz od kodu cząstek.
Korzystając z modułu sensora z cząstką, dołączamy bibliotekę application.h oraz spark_wiring_i2c.h. Biblioteka "application.h" oraz spark_wiring_i2c.h zawiera funkcje ułatwiające komunikację i2c pomiędzy czujnikiem a cząsteczką.
Cały kod cząstek podano poniżej dla wygody użytkownika:
#włączać
#włączać
// ADXL345 I2C adres to 0x53(83)
#define Addr 0x53
int xAccl = 0, yAccl = 0, zAccl = 0;
pusta konfiguracja()
{
// Ustaw zmienną
Cząstka.zmienna("i2cdevice", "ADXL345");
Cząstka.zmienna("xAccl", xAccl);
Particle.variable("yAccl", yAccl);
Cząstka.zmienna("zAccl", zAccl);
// Zainicjuj komunikację I2C jako MASTER
Wire.początek();
// Zainicjuj komunikację szeregową, ustaw szybkość transmisji = 9600
Serial.początek(9600);
// Rozpocznij transmisję I2C
Wire.beginTransmisja(Addr);
// Wybierz rejestr szybkości transmisji
Wire.write(0x2C);
// Wybierz wyjściową szybkość transmisji danych = 100 Hz
Wire.write(0x0A);
// Zatrzymaj transmisję I2C
Wire.endTransmission();
// Rozpocznij transmisję I2C
Wire.beginTransmisja(Addr);
// Wybierz rejestr kontroli mocy
Wire.write(0x2D);
// Wybierz wyłączenie automatycznego uśpienia
Wire.write(0x08);
// Zatrzymaj transmisję I2C
Wire.endTransmission();
// Rozpocznij transmisję I2C
Wire.beginTransmisja(Addr);
// Wybierz rejestr formatu danych
Wire.write(0x31);
// Wybierz pełną rozdzielczość, +/-2g
Wire.write(0x08);
// Zakończ transmisję I2C
Wire.endTransmission();
opóźnienie(300);
}
pusta pętla()
{
dane int bez znaku[6];
for(int i = 0; i < 6; i++)
{
// Rozpocznij transmisję I2C
Wire.beginTransmisja(Addr);
// Wybierz rejestr danych
Wire.write((50+i));
// Zatrzymaj transmisję I2C
Wire.endTransmission();
// Poproś o 1 bajt danych z urządzenia
Wire.requestFrom(Addr, 1);
// Odczytaj 6 bajtów danych
// xAccl lsb, xAccl msb, yAccl lsb, yAccl msb, zAccl lsb, zAccl msb
jeśli(Przewód.dostępny()==1)
{
dane = Przewód.odczyt();
}
opóźnienie(300);
}
// Konwertuj dane na 10-bitowe
int xAccl = (((dane[1] & 0x03) * 256) + dane[0]);
if(xAccl > 511)
{
xAccl -= 1024;
}
int yAccl = (((dane[3] & 0x03) * 256) + dane[2]);
if(yAccl > 511)
{
yAccl -= 1024;
}
int zAccl = (((dane[5] & 0x03) * 256) + dane[4]);
if(zAccl > 511)
{
zAccl -= 1024;
}
// Dane wyjściowe do pulpitu nawigacyjnego
Particle.publish("Przyspieszenie na osi X to:", String(xAccl));
Particle.publish("Przyspieszenie na osi Y wynosi:", String(yAccl));
Particle.publish("Przyspieszenie na osi Z wynosi:", String(zAccl));
}
Funkcja Particle.variable() tworzy zmienne do przechowywania danych wyjściowych czujnika, a funkcja Particle.publish() wyświetla dane wyjściowe na pulpicie nawigacyjnym witryny.
Wyjście czujnika pokazano na powyższym obrazku w celach informacyjnych.
Krok 4: Aplikacje:
ADXL345 jest małym, cienkim, 3-osiowym akcelerometrem o bardzo niskim poborze mocy, który może być stosowany w telefonach, oprzyrządowaniu medycznym itp. Jego zastosowanie obejmuje również urządzenia do gier i wskazujące, oprzyrządowanie przemysłowe, osobiste urządzenia nawigacyjne i ochronę dysku twardego (HDD).
Zalecana:
Pomiar przyspieszenia za pomocą H3LIS331DL i Arduino Nano: 4 kroki
Pomiar przyspieszenia wykorzystujący H3LIS331DL i Arduino Nano: H3LIS331DL, to 3-osiowy liniowy akcelerometr o małej mocy i wysokiej wydajności należący do rodziny „nano”, z cyfrowym interfejsem szeregowym I²C. H3LIS331DL ma wybieraną przez użytkownika pełną skalę ±100g/±200g/±400g i jest w stanie mierzyć przyspieszenia w
Pomiar przyspieszenia za pomocą H3LIS331DL i Particle Photon: 4 kroki
Pomiar akceleracji przy użyciu H3LIS331DL i Particle Photon: H3LIS331DL, jest 3-osiowym akcelerometrem liniowym o niskiej mocy i wysokiej wydajności należącym do rodziny „nano”, z cyfrowym interfejsem szeregowym I²C. H3LIS331DL ma wybieraną przez użytkownika pełną skalę ±100g/±200g/±400g i jest w stanie mierzyć przyspieszenia w
Pomiar przyspieszenia za pomocą ADXL345 i Raspberry Pi: 4 kroki
Pomiar przyspieszenia przy użyciu ADXL345 i Raspberry Pi: ADXL345 to mały, cienki, bardzo 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 do dwójek i są dostępne przez interfejs cyfrowy I2 C. Mierzy
Pomiar przyspieszenia za pomocą ADXL345 i Arduino Nano: 4 kroki
Pomiar przyspieszenia przy użyciu ADXL345 i Arduino Nano: ADXL345 to mały, cienki, bardzo 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 do dwójek i są dostępne przez interfejs cyfrowy I2 C. Mierzy
Pomiar przyspieszenia za pomocą BMA250 i Particle Photon: 4 kroki
Pomiar przyspieszenia przy użyciu BMA250 i Particle Photon: BMA250 to mały, cienki, bardzo 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 do dwójek i są dostępne przez interfejs cyfrowy I2C. Mierzy statykę