Obsah:

Meranie zrýchlenia pomocou ADXL345 a fotónu častíc: 4 kroky
Meranie zrýchlenia pomocou ADXL345 a fotónu častíc: 4 kroky

Video: Meranie zrýchlenia pomocou ADXL345 a fotónu častíc: 4 kroky

Video: Meranie zrýchlenia pomocou ADXL345 a fotónu častíc: 4 kroky
Video: Meranie tiažového zrýchlenia pomocou reverzného kyvadla 2024, Jún
Anonim
Image
Image

ADXL345 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 I2 C. 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 tutoriáli bolo ilustrované prepojenie senzorového modulu ADXL345 s fotónom častíc. Na čítanie hodnôt zrýchlenia sme použili častice s adaptérom I2c. Tento adaptér I2C umožňuje jednoduché a spoľahlivejšie pripojenie k modulu snímača.

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

2. Fotón častíc

3. Kábel I2C

4. I2C štít pre časticový fotón

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 fotónom častíc. 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:

ADXL345 bude fungovať cez 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 na meranie zrýchlenia:

Kód na meranie zrýchlenia
Kód na meranie zrýchlenia

Začnime teraz s časticovým kódom.

Pri použití senzorového modulu s časticami zahrnujeme knižnicu application.h a spark_wiring_i2c.h. Knižnica "application.h" a spark_wiring_i2c.h obsahuje funkcie, ktoré uľahčujú i2c komunikáciu medzi senzorom a časticou.

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

#zahrnúť

#zahrnúť

// Adresa ADXL345 I2C je 0x53 (83)

#define Addr 0x53

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

neplatné nastavenie ()

{

// Nastavenie premennej

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

Particle.variable ("xAccl", xAccl);

Particle.variable ("yAccl", yAccl);

Particle.variable ("zAccl", zAccl);

// 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 rýchlosti šírky pásma

Wire.write (0x2C);

// Vyberte výstupný dátový tok = 100 Hz

Wire.write (0x0A);

// Zastavte prenos I2C

Wire.endTransmission ();

// Spustite prenos I2C

Wire.beginTransmission (Addr);

// Vyberte register riadenia výkonu

Wire.write (0x2D);

// Vyberte automatické vypnutie režimu spánku

Wire.write (0x08);

// Zastavte prenos I2C

Wire.endTransmission ();

// Spustite prenos I2C

Wire.beginTransmission (Addr);

// Vyberte register formátu údajov

Wire.write (0x31);

// Vyberte plné rozlíšenie, +/- 2g

Wire.write (0x08);

// Ukončite prenos I2C

Wire.endTransmission ();

oneskorenie (300);

}

prázdna slučka ()

{

nepodpísané int údaje [6];

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

{

// Spustite prenos I2C

Wire.beginTransmission (Addr);

// Vyberte dátový register

Wire.write ((50+i));

// Zastavte prenos I2C

Wire.endTransmission ();

// Vyžiadajte si 1 bajt údajov zo zariadenia

Wire.requestFrom (Addr, 1);

// Prečítajte 6 bajtov údajov

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

ak (Wire.available () == 1)

{

data = Wire.read ();

}

oneskorenie (300);

}

// Previesť údaje na 10-bitové

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

ak (xAccl> 511)

{

xAccl -= 1024;

}

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

ak (yAccl> 511)

{

yAccl -= 1024;

}

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

ak (zAccl> 511)

{

zAccl -= 1024;

}

// Výstup údajov na informačný panel

Particle.publish ("Zrýchlenie v osi X je:", reťazec (xAccl));

Particle.publish („Zrýchlenie v osi Y je:“, reťazec (yAccl));

Particle.publish ("Zrýchlenie v osi Z je:", reťazec (zAccl));

}

Funkcia Particle.variable () vytvára premenné na ukladanie výstupu zo senzora a funkcia Particle.publish () zobrazuje výstup na palubnej doske webu.

Výstup senzora je pre vašu referenciu zobrazený na obrázku vyššie.

Krok 4: Aplikácie:

Aplikácie
Aplikácie

ADXL345 je malý, tenký, ultraľahký, 3-osový akcelerometer, ktorý je možné použiť v mobilných telefónoch, lekárskych prístrojoch atď. Jeho aplikácia zahŕňa aj herné a ukazovacie zariadenia, priemyselné prístroje, osobné navigačné zariadenia a ochranu pevného disku (HDD).

Odporúča: