Obsah:

Měření zrychlení pomocí ADXL345 a fotonu částic: 4 kroky
Měření zrychlení pomocí ADXL345 a fotonu částic: 4 kroky

Video: Měření zrychlení pomocí ADXL345 a fotonu částic: 4 kroky

Video: Měření zrychlení pomocí ADXL345 a fotonu částic: 4 kroky
Video: Wireless Force Acceleration Sensor Overview 2024, Listopad
Anonim
Image
Image

ADXL345 je malý, tenký, ultralehký, 3osý akcelerometr s měřením s vysokým rozlišením (13 bitů) až ± 16 g. Data digitálního výstupu jsou formátována jako 16bitová dvojčata a jsou přístupná prostřednictvím digitálního rozhraní I2 C. Měří statické gravitační zrychlení v aplikacích snímajících náklon i dynamické zrychlení způsobené pohybem nebo šokem. Jeho vysoké rozlišení (3,9 mg/LSB) umožňuje měření změn sklonu menší než 1,0 °.

V tomto tutoriálu bylo ukázáno propojení senzorového modulu ADXL345 s fotonem částic. Ke čtení hodnot zrychlení jsme použili částice s adaptérem I2c. Tento adaptér I2C umožňuje snadné a spolehlivější připojení k modulu senzoru.

Krok 1: Požadovaný hardware:

Požadovaný hardware
Požadovaný hardware
Požadovaný hardware
Požadovaný hardware
Požadovaný hardware
Požadovaný hardware

Materiály, které potřebujeme k dosažení našeho cíle, zahrnují následující hardwarové komponenty:

1. ADXL345

2. Foton částic

3. Kabel I2C

4. I2C štít pro částicový foton

Krok 2: Připojení hardwaru:

Připojení hardwaru
Připojení hardwaru
Připojení hardwaru
Připojení hardwaru

Sekce zapojení hardwaru v zásadě vysvětluje zapojení potřebná pro připojení mezi snímačem a fotonem částic. Zajištění správného připojení je základní nutností při práci na jakémkoli systému pro požadovaný výstup. Požadovaná připojení jsou tedy následující:

ADXL345 bude fungovat přes I2C. Zde je příklad schématu zapojení, které ukazuje, jak zapojit jednotlivá rozhraní senzoru.

Po vybalení je deska nakonfigurována pro rozhraní I2C, proto doporučujeme tuto přípojku použít, pokud jste jinak agnostik.

Vše, co potřebujete, jsou čtyři dráty! Jsou vyžadována pouze čtyři připojení Vcc, Gnd, SCL a SDA piny a ty jsou spojeny pomocí kabelu I2C.

Tato spojení jsou ukázána na obrázcích výše.

Krok 3: Kód pro měření zrychlení:

Kód pro měření zrychlení
Kód pro měření zrychlení

Začněme nyní kódem částic.

Při použití senzorového modulu s částicemi zahrnujeme knihovnu application.h a spark_wiring_i2c.h. Knihovna „application.h“a spark_wiring_i2c.h obsahuje funkce, které usnadňují komunikaci i2c mezi senzorem a částicem.

Celý kód částic je pro pohodlí uživatele uveden níže:

#zahrnout

#zahrnout

// Adresa ADXL345 I2C je 0x53 (83)

#define Addr 0x53

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

neplatné nastavení ()

{

// Nastavit proměnnou

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

Particle.variable ("xAccl", xAccl);

Particle.variable ("yAccl", yAccl);

Particle.variable ("zAccl", zAccl);

// Inicializujte komunikaci I2C jako MASTER

Wire.begin ();

// Inicializace sériové komunikace, nastavení přenosové rychlosti = 9600

Serial.begin (9600);

// Spusťte přenos I2C

Wire.beginTransmission (Addr);

// Vyberte registr rychlosti šířky pásma

Wire.write (0x2C);

// Vyberte výstupní datovou rychlost = 100 Hz

Wire.write (0x0A);

// Zastavte přenos I2C

Wire.endTransmission ();

// Spusťte přenos I2C

Wire.beginTransmission (Addr);

// Vyberte registr řízení výkonu

Wire.write (0x2D);

// Vyberte automatické vypnutí spánku

Wire.write (0x08);

// Zastavte přenos I2C

Wire.endTransmission ();

// Spusťte přenos I2C

Wire.beginTransmission (Addr);

// Vyberte registr formátu dat

Wire.write (0x31);

// Vyberte plné rozlišení, +/- 2g

Wire.write (0x08);

// Ukončení přenosu I2C

Wire.endTransmission ();

zpoždění (300);

}

prázdná smyčka ()

{

nepodepsaná int data [6];

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

{

// Spusťte přenos I2C

Wire.beginTransmission (Addr);

// Vyberte datový registr

Wire.write ((50+i));

// Zastavte přenos I2C

Wire.endTransmission ();

// Vyžádejte si 1 bajt dat ze zařízení

Wire.requestFrom (Addr, 1);

// Přečíst 6 bajtů dat

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

pokud (Wire.available () == 1)

{

data = Wire.read ();

}

zpoždění (300);

}

// Převeďte data na 10 bitů

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

if (xAccl> 511)

{

xAccl -= 1024;

}

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

if (yAccl> 511)

{

yAccl -= 1024;

}

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

if (zAccl> 511)

{

zAccl -= 1024;

}

// Výstup dat na řídicí panel

Particle.publish („Zrychlení v ose X je:“, řetězec (xAccl));

Particle.publish („Zrychlení v ose Y je:“, řetězec (yAccl));

Particle.publish („Zrychlení v ose Z je:“, řetězec (zAccl));

}

Funkce Particle.variable () vytváří proměnné pro uložení výstupu senzoru a funkce Particle.publish () zobrazuje výstup na palubní desce webu.

Výstup snímače je uveden na obrázku výše pro vaši referenci.

Krok 4: Aplikace:

Aplikace
Aplikace

ADXL345 je malý, tenký, ultralehký, 3osý akcelerometr, který lze použít v mobilních telefonech, lékařských přístrojích atd. Jeho aplikace také zahrnuje herní a polohovací zařízení, průmyslové přístroje, osobní navigační zařízení a ochranu pevného disku (HDD).

Doporučuje: