Obsah:

ADXL345 pomocou Arduino Uno R3: 5 krokov
ADXL345 pomocou Arduino Uno R3: 5 krokov

Video: ADXL345 pomocou Arduino Uno R3: 5 krokov

Video: ADXL345 pomocou Arduino Uno R3: 5 krokov
Video: VIXEN 3.0, ARDUINO ,WS2811 VIANOČNÉ OSVETLENIE SYNCHRONIZOVANÉ S HUDBOU 2024, Júl
Anonim
ADXL345 pomocou Arduino Uno R3
ADXL345 pomocou Arduino Uno R3

V tejto lekcii sa naučíme používať snímač zrýchlenia ADXL345.

Krok 1: Komponenty

- Doska Arduino Uno * 1

- USB kábel * 1

- ADXL345 *1

- Breadboard * 1

- prepojovacie vodiče

Krok 2: Princíp

Na meranie sily generovanej počas zrýchľovania sa používa akcelerometer. Najzákladnejšou je bežne známe gravitačné zrýchlenie, ktoré je 1 g.

Meraním zrýchlenia spôsobeného gravitáciou môžete vypočítať uhol sklonu zariadenia k vodorovnému povrchu. Vďaka analýze dynamického zrýchlenia môžete zistiť, ako sa zariadenie pohybuje. Samovyvažovacia doska alebo hoverboard napríklad používajú snímač zrýchlenia a gyroskop na Kalmanov filter a korekciu držania tela.

ADXL345

ADXL345 je malý, tenký, 3-osový akcelerometer s nízkym výkonom a meraním s vysokým rozlíšením (13 bitov) až ± 16 g. Údaje o digitálnom výstupe sú formátované ako 16-bitový dvojkomplement a sú prístupné prostredníctvom digitálneho rozhrania SPI (3- alebo 4-vodičové) alebo I2C. V tomto experimente sa používa digitálne rozhranie I2C.

Je vhodný na meranie statického gravitačného zrýchlenia v aplikáciách snímajúcich náklon, ako aj dynamického zrýchlenia vyplývajúceho z pohybu alebo šoku. Jeho vysoké rozlíšenie (4 mg/LSB) umožňuje meranie zmeny sklonu o menej ako 1,0 °. A vynikajúca citlivosť (3,9 mg/LSB @2 g) poskytuje vysoko presný výstup až ± 16 g.

Ako funguje ADXL345

ADXL345 detekuje zrýchlenie so snímacím komponentom vpredu a potom ho komponent pre snímanie elektrického signálu zmení na elektrický signál, ktorý je analógový. Potom adaptér AD integrovaný v module prevedie analógový signál na digitálny.

X_OUT, Y_OUT a Z_OUT sú hodnoty na osi X, Y a Z. Umiestnite modul lícom nahor: Z_OUT môže dosiahnuť maximálne +1 g, minimum X_OUT je -1 g v smere osi a minimum Y_OUT je -1 g v smere Ay. Na druhej strane otočte modul hore nohami: minimum Z_OUT je -1g, maximum X_OUT je +1g v smere osi a maximum Y_OUT je +1g v smere Ay., ako je uvedené nižšie. Otočte modul ADXL345 a uvidíte zmenu troch hodnôt.

keď sa kanál A zmení z vysokej na nízku úroveň, ak je kanál B na vysokej úrovni, znamená to, že sa rotačný snímač otáča v smere hodinových ručičiek (CW); ak je v tom okamihu kanál B na nízkej úrovni, znamená to, že sa točí proti smeru hodinových ručičiek (CCW). Ak teda čítame hodnotu kanála B, keď je kanál A na nízkej úrovni, môžeme vedieť, v akom smere sa rotačný snímač otáča.

Princíp: Pozrite si nižšie schematický diagram modulu rotačného enkodéra. Z toho vidíme, že pin 3 rotačného snímača, konkrétne CLK na module, je kanál B. Pin 5, čo je DT, je kanál A. Ak chcete poznať smer otáčania rekordéra, stačí prečítať hodnotu CLK a DT.

V obvode je čip regulátora napätia 3,3 V, takže modul môžete napájať 5 V alebo 3,3 V.

Pretože SDO bolo pripojené k GND, I2C adresa ADXL345 je 0x53, 0xA6 pre zápis, 0xA7 pre čítanie

Pinová funkcia modulu ADXL345.

Krok 3: Postupy

Krok 1. Zostavte obvod.

Krok 2:

Stiahnite si kód z

Krok 3:

Nahrajte skicu na dosku Arduino Uno

Kliknutím na ikonu Odovzdať odovzdáte kód na ovládací panel.

Ak sa v spodnej časti okna zobrazí „Dokončené nahrávanie“, znamená to, že skica bola úspešne nahraná.

Po nahraní otvorte Serial Monitor, kde môžete vidieť zistené údaje. Keď sa zmení zrýchlenie modulu, údaj sa v okne zodpovedajúcim spôsobom zmení.

Krok 4: Kód

Kód
Kód

// ADXL335

/********************************

ADXL335

poznámka: vcc5v, ale ADXL335 Vs je 3,3 V.

Okruh:

5V: VCC

analógový 0: os x

analóg 1: os y

analóg 2: os z

Po spálení súboru

programu, otvorte okno ladenia sériového monitora, kde môžete vidieť zobrazené detekované údaje. Keď sa zrýchlenie mení, údaj sa bude zodpovedajúcim spôsobom meniť.

*********************************

/E -mail:

//Web stránka:www.primerobotics.in

const int xpin =

A0; // os x akcelerometra

const int ypin =

A1; // os y

const int zpin =

A2; // os Z (iba na 3-osových modeloch)

neplatné nastavenie ()

{

// inicializácia sériovej komunikácie:

Serial.begin (9600);

}

prázdna slučka ()

{

int x = analogRead (xpin); // čítať z xpin

oneskorenie (1); //

int y = analogRead (ypin); // čítať z ypinu

oneskorenie (1);

int z = analogRead (zpin); // čítať zo zpin

float zero_G = 338,0; // Napájací zdroj ADXL335

podľa Vs 3,3 V: 3,3 V/5 V*1024 = 676/2 = 338

//Serial.print(x);

//Serial.print("\t ");

//Serial.print(y);

//Serial.print("\t ");

//Serial.print(z);

//Serial.print("\n ");

plavák

zero_Gx = 331,5; // výstup nu_G na osi x: (x_max + x_min)/2

plavák

zero_Gy = 329,5; // výstup nuly_G osi y: (y_max + y_min)/2

float zero_Gz = 340,0; // the

zero_G výstup osi z: (z_max + z_min)/2

float scale =

67,6; // napájanie Vs 3,3V: 3,3v/5v *1024/3,3v *330mv/g = 67,6g

float scale_x =

65; // mierka osi x: x_max/3,3 v*330 mv/g

float scale_y =

68,5; // mierka osi y: y_max/3,3v*330mv/g

float scale_z =

68; // mierka osi z: z_max/3,3v*330mv/g

Serial.print ((((float)) x

- zero_Gx)/scale_x); // tlač hodnoty x na sériový monitor

Serial.print ("\ t");

Serial.print ((((float)) y

- zero_Gy)/scale_y); // vytlačenie hodnoty y na sériovom monitore

Serial.print ("\ t");

Serial.print ((((float)) z

- zero_Gz)/scale_z); // vytlačenie hodnoty z na sériovom monitore

Serial.print ("\ n");

oneskorenie (1000); // počkajte 1 sekundu

}

Krok 5: Analýza kódu

Kód pre experiment ADXL345 obsahuje 3 časti: inicializácia každého portu a zariadenia, získavanie a ukladanie údajov odosielaných zo senzorov a prevádzanie údajov.

Odporúča: