Obsah:

Meranie zrýchlenia pomocou BMA250 a Arduino Nano: 4 kroky
Meranie zrýchlenia pomocou BMA250 a Arduino Nano: 4 kroky

Video: Meranie zrýchlenia pomocou BMA250 a Arduino Nano: 4 kroky

Video: Meranie zrýchlenia pomocou BMA250 a Arduino Nano: 4 kroky
Video: Meranie tiažového zrýchlenia pomocou reverzného kyvadla 2024, Júl
Anonim
Image
Image

BMA250 je malý, tenký, 3-osový akcelerometer s ultra nízkym výkonom a meraním s vysokým rozlíšením (13 bitov) až ± 16 g. Digitálne výstupné údaje sú formátované ako 16-bitové dvojčatá a sú prístupné prostredníctvom digitálneho rozhrania I2C. Meria statické gravitačné zrýchlenie v aplikáciách snímajúcich náklon, ako aj dynamické zrýchlenie vyplývajúce z pohybu alebo šoku. Jeho vysoké rozlíšenie (3,9 mg/LSB) umožňuje meranie zmien sklonu menej ako 1,0 °.

V tomto návode sa chystáme zmerať zrýchlenie vo všetkých troch kolmých osiach pomocou BMA250 a Arduino Nano.

Krok 1: Potrebný hardvér:

Potrebný hardvér
Potrebný hardvér
Potrebný hardvér
Potrebný hardvér
Potrebný hardvér
Potrebný hardvér

Materiály, ktoré potrebujeme na dosiahnutie nášho cieľa, obsahujú nasledujúce hardvérové komponenty:

1. BMA250

2. Arduino Nano

3. Kábel I2C

4. I2C štít pre Arduino Nano

Krok 2: Pripojenie hardvéru:

Pripojenie hardvéru
Pripojenie hardvéru
Pripojenie hardvéru
Pripojenie hardvéru

Časť zapojenia hardvéru v zásade vysvetľuje zapojenie potrebné medzi senzorom a arduino. Zabezpečenie správneho pripojenia je základnou potrebou pri práci na akomkoľvek systéme s požadovaným výstupom. Potrebné spojenia sú teda tieto:

BMA250 bude fungovať na I2C. Tu je príklad schémy zapojenia, ktorá ukazuje, ako prepojiť každé rozhranie snímača.

Hneď po vybalení je doska nakonfigurovaná na rozhranie I2C, preto vám toto pripojenie odporúčame použiť, ak ste inak agnostik. Všetko, čo potrebujete, sú štyri drôty!

Vyžadujú sa iba štyri pripojenia Vcc, Gnd, SCL a SDA piny, ktoré sú prepojené pomocou kábla I2C.

Tieto spojenia sú znázornené na obrázkoch vyššie.

Krok 3: Kód Arduino na meranie zrýchlenia:

Arduino kód na meranie zrýchlenia
Arduino kód na meranie zrýchlenia
Arduino kód na meranie zrýchlenia
Arduino kód na meranie zrýchlenia

Začnime teraz kódom Arduino.

Pri použití senzorového modulu s Arduinom obsahuje knižnicu Wire.h. Knižnica „Wire“obsahuje funkcie, ktoré uľahčujú komunikáciu i2c medzi senzorom a doskou Arduino.

Celý kód Arduino je pre pohodlie užívateľa uvedený nižšie:

#zahrnúť

// Adresa BMA250 I2C je 0x18 (24)

#define Addr 0x18

neplatné nastavenie ()

{

// Inicializujte komunikáciu I2C ako MASTER

Wire.begin ();

// Inicializujte sériovú komunikáciu, nastavte prenosovú rýchlosť = 9600

Serial.begin (9600);

// Spustite prenos I2C

Wire.beginTransmission (Addr);

// Vyberte register výberu rozsahu

Wire.write (0x0F);

// Nastaviť rozsah +/- 2g

Wire.write (0x03);

// Zastavte prenos I2C

Wire.endTransmission ();

// Spustite prenos I2C

Wire.beginTransmission (Addr);

// Vyberte register šírky pásma

Wire.write (0x10);

// Nastaviť šírku pásma 7,81 Hz

Wire.write (0x08);

// Zastavte prenos I2C

Wire.endTransmission (); meškanie (300);}

prázdna slučka ()

{

nepodpísané int údaje [0];

// Spustite prenos I2C

Wire.beginTransmission (Addr);

// Vyberte dátové registre (0x02 - 0x07)

Wire.write (0x02);

// Zastavte prenos I2C

Wire.endTransmission ();

// Požiadajte o 6 bajtov

Wire.requestFrom (Addr, 6);

// Prečítajte si šesť bajtov

// xAccl lsb, xAccl msb, yAccl lsb, yAccl msb, zAccl lsb, zAccl msb

ak (Wire.available () == 6)

{

data [0] = Wire.read ();

údaje [1] = Wire.read ();

údaje [2] = Wire.read ();

údaje [3] = Wire.read ();

údaje [4] = Wire.read ();

údaje [5] = Wire.read ();

}

oneskorenie (300);

// Konvertujte údaje na 10 bitov

float xAccl = ((údaje [1] * 256,0) + (údaje [0] & 0xC0)) / 64;

ak (xAccl> 511)

{

xAccl -= 1024;

}

float yAccl = ((údaje [3] * 256,0) + (údaje [2] & 0xC0)) / 64;

ak (yAccl> 511)

{

yAccl -= 1024;

}

float zAccl = ((údaje [5] * 256,0) + (údaje [4] & 0xC0)) / 64;

ak (zAccl> 511)

{

zAccl -= 1024;

}

// Výstup údajov na sériový monitor

Serial.print ("Zrýchlenie v osi X:");

Serial.println (xAccl);

Serial.print ("Zrýchlenie v osi Y:");

Serial.println (yAccl);

Serial.print ("Zrýchlenie v osi Z:");

Serial.println (zAccl);

}

V knižnici drôtov Wire.write () a Wire.read () sa používajú na zápis príkazov a čítanie výstupu snímača. Serial.print () a Serial.println () sa používajú na zobrazenie výstupu senzora na sériovom monitore Arduino IDE.

Výstup senzora je zobrazený na obrázku vyššie.

Krok 4: Aplikácie:

Aplikácie
Aplikácie

Akcelerometre ako BMA250 väčšinou nachádzajú svoje uplatnenie v hrách a prepínaní profilov zobrazenia. Tento senzorový modul sa používa aj v pokročilom systéme riadenia spotreby pre mobilné aplikácie. BMA250 je trojosový digitálny snímač zrýchlenia, ktorý je vybavený inteligentným radičom prerušenia spúšťaným pohybom na čipe.

Odporúča: