Sisällysluettelo:
2025 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2025-01-13 06:57
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:
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ä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:
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:
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.