Sisällysluettelo:

Kiihtyvyyden mittaus käyttämällä ADXL345: tä ja hiukkasfotonia: 4 vaihetta
Kiihtyvyyden mittaus käyttämällä ADXL345: tä ja hiukkasfotonia: 4 vaihetta

Video: Kiihtyvyyden mittaus käyttämällä ADXL345: tä ja hiukkasfotonia: 4 vaihetta

Video: Kiihtyvyyden mittaus käyttämällä ADXL345: tä ja hiukkasfotonia: 4 vaihetta
Video: 16. Muuttuva liike 2024, Kesäkuu
Anonim
Image
Image

ADXL345 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 I2 C-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 on kuvattu ADXL345 -anturimoduulin liitäntä hiukkasfotoniin. Kiihtyvyysarvojen lukemiseen olemme käyttäneet hiukkasia I2c -sovittimen kanssa. Tämä I2C -sovitin tekee yhteyden anturimoduuliin helppoa ja luotettavaa.

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. ADXL345

2. Hiukkasfotoni

3. I2C -kaapeli

4. I2C -suoja hiukkasfotonille

Vaihe 2: Laitteiston kytkentä:

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

Laitteiston kytkentäosio selittää periaatteessa anturin ja hiukkasfotonin väliset tarvittavat johdotusliitännät. 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:

ADXL345 toimii I2C: n kautta. 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: Kiihtyvyyden mittauskoodi:

Kiihtyvyyden mittauskoodi
Kiihtyvyyden mittauskoodi

Aloitetaan nyt hiukkaskoodista.

Kun käytät anturimoduulia hiukkasen kanssa, sisällytämme hakemistoon application.h ja spark_wiring_i2c.h. "application.h" ja spark_wiring_i2c.h -kirjasto sisältävät toiminnot, jotka helpottavat i2c -tiedonsiirtoa anturin ja hiukkasen välillä.

Koko hiukkaskoodi annetaan alla käyttäjän mukavuuden vuoksi:

#sisältää

#sisältää

// ADXL345 I2C -osoite on 0x53 (83)

#define Addr 0x53

int xAccl = 0, yAccl = 0, zAccl = 0;

mitätön asennus ()

{

// Aseta muuttuja

Particle.variable ("i2cdevice", "ADXL345");

Particle.variable ("xAccl", xAccl);

Particle.variable ("yAccl", yAccl);

Particle.variable ("zAccl", zAccl);

// Alusta I2C -viestintä MASTERiksi

Wire.begin ();

// Alusta sarjaliikenne, aseta baudinopeus = 9600

Sarja.alku (9600);

// Aloita I2C -lähetys

Wire.beginTransmission (Addr);

// Valitse kaistanleveysrekisteri

Wire.write (0x2C);

// Valitse tulostusnopeus = 100 Hz

Wire.write (0x0A);

// Pysäytä I2C -lähetys

Wire.endTransmission ();

// Aloita I2C -lähetys

Wire.beginTransmission (Addr);

// Valitse virranhallintarekisteri

Wire.write (0x2D);

// Valitse automaattinen lepotila

Wire.write (0x08);

// Pysäytä I2C -lähetys

Wire.endTransmission ();

// Aloita I2C -lähetys

Wire.beginTransmission (Addr);

// Valitse datamuotorekisteri

Wire.write (0x31);

// Valitse täysi resoluutio, +/- 2g

Wire.write (0x08);

// Lopeta I2C -lähetys

Wire.endTransmission ();

viive (300);

}

tyhjä silmukka ()

{

allekirjoittamattomat int -tiedot [6];

(int i = 0; i <6; i ++)

{

// Aloita I2C -lähetys

Wire.beginTransmission (Addr);

// Valitse tietorekisteri

Wire.write ((50+i));

// Pysäytä I2C -lähetys

Wire.endTransmission ();

// Pyydä 1 tavu dataa laitteelta

Wire.requestFrom (Addr, 1);

// Lue 6 tavua dataa

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

jos (Wire.available () == 1)

{

data = Wire.read ();

}

viive (300);

}

// Muunna tiedot 10-bittisiksi

int xAccl = (((data [1] & 0x03) * 256) + data [0]);

jos (xAccl> 511)

{

xAccl -= 1024;

}

int yAccl = (((data [3] & 0x03) * 256) + data [2]);

jos (yAccl> 511)

{

yAccl -= 1024;

}

int zAccl = (((data [5] & 0x03) * 256) + data [4]);

jos (zAccl> 511)

{

zAccl -= 1024;

}

// Tulosta tiedot kojelautaan

Particle.publish ("Kiihtyvyys X-akselissa on:", Jono (xAccl));

Particle.publish ("Kiihtyvyys Y-akselilla on:", Jono (yAccl));

Particle.publish ("Kiihtyvyys Z-akselissa on:", String (zAccl));

}

Particle.variable () -funktio luo muuttujat anturin lähdön tallentamiseksi ja Particle.publish () -toiminto näyttää tuotoksen sivuston kojelaudalla.

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

Vaihe 4: Sovellukset:

Sovellukset
Sovellukset

ADXL345 on pieni, ohut, erittäin pienitehoinen, 3-akselinen kiihtyvyysmittari, jota voidaan käyttää luureissa, lääketieteellisissä laitteissa jne. Sen sovellus sisältää myös peli- ja osoitinlaitteet, teollisuuslaitteet, henkilökohtaiset navigointilaitteet ja kiintolevyaseman (HDD).

Suositeltava: