Spisu treści:
- Krok 1: Wymagany sprzęt:
- Krok 2: Podłączenie sprzętu:
- Krok 3: Kod Arduino do pomiaru przyspieszenia:
- Krok 4: Aplikacje:
Wideo: Pomiar przyspieszenia za pomocą BMA250 i Arduino Nano: 4 kroki
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:29
BMA250 to mały, smukły, 3-osiowy akcelerometr o ultraniskiej mocy 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 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 zamierzamy zmierzyć przyspieszenie we wszystkich trzech prostopadłych osiach za pomocą BMA250 i Arduino Nano.
Krok 1: Wymagany sprzęt:
Materiały, których potrzebujemy do realizacji naszego celu, obejmują następujące komponenty sprzętowe:
1. BMA250
2. Arduino Nano
3. Kabel I2C
4. Tarcza I2C dla Arduino Nano
Krok 2: Podłączenie sprzętu:
Sekcja podłączania sprzętu zasadniczo wyjaśnia połączenia okablowania wymagane między czujnikiem a arduino. 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:
BMA250 będzie pracował 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 Arduino do pomiaru przyspieszenia:
Zacznijmy teraz od kodu Arduino.
Korzystając z modułu czujnika z Arduino, dołączamy bibliotekę Wire.h. Biblioteka "Wire" zawiera funkcje ułatwiające komunikację i2c pomiędzy czujnikiem a płytką Arduino.
Cały kod Arduino podano poniżej dla wygody użytkownika:
#włączać
// adres BMA250 I2C to 0x18(24)
#define Addr 0x18
pusta konfiguracja()
{
// 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 wyboru zakresu
Wire.write(0x0F);
// Ustaw zakres +/- 2g
Wire.write(0x03);
// Zatrzymaj transmisję I2C
Wire.endTransmission();
// Rozpocznij transmisję I2C
Wire.beginTransmisja(Addr);
// Wybierz rejestr przepustowości
Wire.write(0x10);
// Ustaw przepustowość 7,81 Hz
Wire.write(0x08);
// Zatrzymaj transmisję I2C
Wire.endTransmission(); opóźnienie(300);}
pusta pętla()
{
unsigned int data[0];
// Rozpocznij transmisję I2C
Wire.beginTransmisja(Addr);
// Wybierz rejestry danych (0x02 − 0x07)
Wire.write(0x02);
// Zatrzymaj transmisję I2C
Wire.endTransmission();
// Żądanie 6 bajtów
Wire.requestFrom(Addr, 6);
// Przeczytaj sześć bajtów
// xAccl lsb, xAccl msb, yAccl lsb, yAccl msb, zAccl lsb, zAccl msb
if(Przewód.dostępny() == 6)
{
dane[0] = Przewód.odczyt();
dane[1] = Drut.odczyt();
dane[2] = Przewód.odczyt();
dane[3] = Przewód.odczyt();
dane[4] = Przewód.odczyt();
dane[5] = Wire.read();
}
opóźnienie(300);
// Konwertuj dane na 10 bitów
zmiennoprzecinkowe xAccl = ((dane[1] * 256,0) + (dane[0] i 0xC0)) / 64;
jeśli (xAccl > 511)
{
xAccl -= 1024;
}
zmiennoprzecinkowe yAccl = ((dane[3] * 256,0) + (dane[2] i 0xC0)) / 64;
jeśli (yAccl > 511)
{
yAccl -= 1024;
}
float zAccl = ((dane[5] * 256,0) + (dane[4] i 0xC0)) / 64;
jeśli (zAccl > 511)
{
zAccl -= 1024;
}
// Dane wyjściowe do monitora szeregowego
Serial.print("Przyspieszenie w osi X:");
Serial.println(xAccl);
Serial.print("Przyspieszenie w osi Y:");
Serial.println(yAccl);
Serial.print("Przyspieszenie w osi Z:");
Serial.println(zAccl);
}
W bibliotece przewodów Wire.write() i Wire.read() są używane do zapisywania poleceń i odczytywania wyjścia czujnika. Serial.print() i Serial.println() są używane do wyświetlania wyjścia czujnika na monitorze szeregowym Arduino IDE.
Wyjście czujnika pokazano na powyższym obrazku.
Krok 4: Aplikacje:
Akcelerometry takie jak BMA250 najczęściej znajdują zastosowanie w grach i przełączaniu profili wyświetlania. Ten moduł czujnika jest również wykorzystywany w zaawansowanym systemie zarządzania energią dla aplikacji mobilnych. BMA250 to trójosiowy cyfrowy czujnik przyspieszenia, który jest zintegrowany z inteligentnym wbudowanym kontrolerem przerwań wyzwalanym ruchem.
Zalecana:
Pomiar przyspieszenia za pomocą ADXL345 i Particle Photon: 4 kroki
Pomiar przyspieszenia przy użyciu ADXL345 i Particle Photon: 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ą 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ą 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 Raspberry Pi: 4 kroki
Pomiar przyspieszenia przy użyciu BMA250 i Raspberry Pi: 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ę
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ę