Sisällysluettelo:

Kiihtyvyyden mittaus BMA250: n ja Arduino Nanon avulla: 4 vaihetta
Kiihtyvyyden mittaus BMA250: n ja Arduino Nanon avulla: 4 vaihetta

Video: Kiihtyvyyden mittaus BMA250: n ja Arduino Nanon avulla: 4 vaihetta

Video: Kiihtyvyyden mittaus BMA250: n ja Arduino Nanon avulla: 4 vaihetta
Video: Racelogic Как Активировать / Зарегистрировать Прибор Замера Ускорения Рейслоджик 2024, Heinäkuu
Anonim
Image
Image

BMA250 on pieni, ohut, erittäin pienitehoinen, 3-akselinen kiihtyvyysanturi, jonka tarkkuus (13-bittinen) mitataan jopa ± 16 g. Digitaalinen lähtötieto on muotoiltu 16-bittiseksi kaksoiskappaleeksi ja se on saatavana digitaalisen I2C-liitännän kautta. Se mittaa staattisen painovoiman kiihtyvyyden kallistusanturisovelluksissa sekä liikkeen tai iskun aiheuttaman dynaamisen kiihtyvyyden. Sen suuri resoluutio (3,9 mg/LSB) mahdollistaa kaltevuuden muutosten mittaamisen alle 1,0 °.

Tässä opetusohjelmassa aiomme mitata kiihtyvyyden kaikilla kolmella kohtisuoralla akselilla BMA250: n ja Arduino Nanon avulla.

Vaihe 1: Tarvittava laitteisto:

Tarvittava laitteisto
Tarvittava laitteisto
Tarvittava laitteisto
Tarvittava laitteisto
Tarvittava laitteisto
Tarvittava laitteisto

Tavoitteemme saavuttamiseen tarvittavat materiaalit sisältävät seuraavat laitteistokomponentit:

1. BMA250

2. Arduino Nano

3. I2C -kaapeli

4. I2C -kilpi Arduino Nanolle

Vaihe 2: Laitteiston kytkentä:

Laitteiston kytkentä
Laitteiston kytkentä
Laitteiston kytkentä
Laitteiston kytkentä

Laitteiston kytkentäosio selittää periaatteessa anturin ja arduinon väliset tarvittavat johdotukset. Oikeiden liitosten varmistaminen on perustarve, kun työskentelet minkä tahansa järjestelmän kanssa halutun lähdön saavuttamiseksi. Tarvittavat liitännät ovat siis seuraavat:

BMA250 toimii I2C: n yli. Tässä on esimerkki kytkentäkaaviosta, joka osoittaa, miten anturin jokainen liitäntä kytketään.

Valmis levy on konfiguroitu I2C-rajapintaa varten, joten suosittelemme käyttämään tätä kytkentää, jos olet muuten agnostikko. Tarvitset vain neljä johtoa!

Tarvitaan vain neljä liitäntää Vcc, Gnd, SCL ja SDA, ja ne on kytketty I2C -kaapelin avulla.

Nämä yhteydet on esitetty yllä olevissa kuvissa.

Vaihe 3: Arduino -koodi kiihtyvyyden mittaamiseen:

Arduino -kiihtyvyysmittauksen koodi
Arduino -kiihtyvyysmittauksen koodi
Arduino -kiihtyvyysmittauksen koodi
Arduino -kiihtyvyysmittauksen koodi

Aloitetaan nyt Arduino -koodilla.

Kun käytät anturimoduulia Arduinon kanssa, sisällytämme Wire.h -kirjaston. "Wire" -kirjasto sisältää toiminnot, jotka helpottavat i2c -tiedonsiirtoa anturin ja Arduino -kortin välillä.

Koko Arduino -koodi on alla käyttäjän mukavuuden vuoksi:

#sisältää

// BMA250 I2C -osoite on 0x18 (24)

#define Addr 0x18

mitätön asennus ()

{

// Alusta I2C -viestintä MASTERiksi

Wire.begin ();

// Alusta sarjaliikenne, aseta baudinopeus = 9600

Sarja.alku (9600);

// Käynnistä I2C -lähetys

Wire.beginTransmission (Addr);

// Valitse alueen valintarekisteri

Wire.write (0x0F);

// Aseta alue +/- 2g

Wire.write (0x03);

// Pysäytä I2C -lähetys

Wire.endTransmission ();

// Käynnistä I2C -lähetys

Wire.beginTransmission (Addr);

// Valitse kaistanleveysrekisteri

Wire.write (0x10);

// Aseta kaistanleveys 7,81 Hz

Wire.write (0x08);

// Pysäytä I2C -lähetys

Wire.endTransmission (); viive (300);}

tyhjä silmukka ()

{

allekirjoittamaton int -data [0];

// Käynnistä I2C -lähetys

Wire.beginTransmission (Addr);

// Valitse tietorekisterit (0x02 - 0x07)

Wire.write (0x02);

// Pysäytä I2C -lähetys

Wire.endTransmission ();

// Pyydä 6 tavua

Wire.requestFrom (Addr, 6);

// Lue kuusi tavua

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

jos (Wire.available () == 6)

{

data [0] = Wire.read ();

data [1] = Wire.read ();

data [2] = Wire.read ();

data [3] = Wire.read ();

data [4] = Wire.read ();

data [5] = Wire.read ();

}

viive (300);

// Muunna tiedot 10 bittiin

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

jos (xAccl> 511)

{

xAccl -= 1024;

}

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

jos (yAccl> 511)

{

yAccl -= 1024;

}

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

jos (zAccl> 511)

{

zAccl -= 1024;

}

// Tulostustiedot sarjamonitorille

Serial.print ("Kiihtyvyys X-akselissa:");

Sarja.println (xAccl);

Serial.print ("Kiihtyvyys Y-akselilla:");

Sarja.println (yAccl);

Serial.print ("Kiihtyvyys Z-akselissa:");

Sarja.println (zAccl);

}

Johdinkirjastossa Wire.write () ja Wire.read () käytetään komentojen kirjoittamiseen ja anturilähdön lukemiseen. Serial.print () ja Serial.println () näyttävät anturilähdön Arduino IDE: n sarjamonitorissa.

Anturilähtö näkyy yllä olevassa kuvassa.

Vaihe 4: Sovellukset:

Sovellukset
Sovellukset

Kiihtyvyysmittarit, kuten BMA250, löytävät sovelluksensa enimmäkseen peleissä ja näyttöprofiilin vaihtamisessa. Tätä anturimoduulia käytetään myös kehittyneessä mobiilisovellusten virranhallintajärjestelmässä. BMA250 on kolmiaksiaalinen digitaalinen kiihtyvyysanturi, joka on varustettu älykkäällä sirun liikkeen laukaisemalla keskeytysohjaimella.

Suositeltava: