Obsah:

ADXL345 pomocí Arduino Uno R3: 5 kroků
ADXL345 pomocí Arduino Uno R3: 5 kroků

Video: ADXL345 pomocí Arduino Uno R3: 5 kroků

Video: ADXL345 pomocí Arduino Uno R3: 5 kroků
Video: Arduino - Lekce 2 2024, Listopad
Anonim
ADXL345 pomocí Arduino Uno R3
ADXL345 pomocí Arduino Uno R3

V této lekci se naučíme používat senzor zrychlení ADXL345.

Krok 1: Součásti

- Deska Arduino Uno * 1

- USB kabel * 1

- ADXL345 *1

- Breadboard * 1

- Propojovací vodiče

Krok 2: Princip

Akcelerometr se používá k měření síly generované během zrychlení. Tou nejzásadnější je běžně známé gravitační zrychlení, které je 1 g.

Měřením gravitačního zrychlení můžete vypočítat úhel náklonu zařízení k rovné ploše. Pomocí analýzy dynamického zrychlení můžete zjistit, jak se zařízení pohybuje. Například samovyvažovací deska nebo hoverboard používá snímač zrychlení a gyroskop pro Kalmanův filtr a korekci držení těla.

ADXL345

ADXL345 je malý, tenký 3osý akcelerometr s nízkým výkonem a měřením s vysokým rozlišením (13bitové) až ± 16 g. Data digitálního výstupu jsou formátována jako 16bitový dvojkový doplněk a jsou přístupná prostřednictvím digitálního rozhraní SPI (3- nebo 4vodičové) nebo I2C. V tomto experimentu se používá digitální rozhraní I2C.

Je vhodný k měření statického gravitačního zrychlení v aplikacích snímajících náklon i dynamického zrychlení způsobeného pohybem nebo šokem. Jeho vysoké rozlišení (4 mg/LSB) umožňuje měření změny sklonu o méně než 1,0 °. A vynikající citlivost (3,9 mg/LSB @2 g) poskytuje vysoce přesný výstup až ± 16 g.

Jak ADXL345 funguje

ADXL345 detekuje zrychlení se snímací složkou vpředu a poté součást snímající elektrický signál změní na elektrický signál, který je analogový. Dále adaptér AD integrovaný v modulu převede analogový signál na digitální.

X_OUT, Y_OUT a Z_OUT jsou hodnoty na ose X, Y a Z. Umístěte modul lícem nahoru: Z_OUT může dosáhnout maximálně +1 g, minimum X_OUT je -1 g ve směru osy a minimum Y_OUT je -1 g ve směru Ay. Na druhou stranu otočte modul vzhůru nohama: minimum Z_OUT je -1g, maximum X_OUT je +1g ve směru osy a maximum Y_OUT je +1g ve směru Ay., Jak je ukázáno níže. Otočte modul ADXL345 a uvidíte změnu tří hodnot.

když se kanál A změní z vysoké úrovně na nízkou úroveň, pokud je kanál B na vysoké úrovni, znamená to, že se rotační kodér otáčí ve směru hodinových ručiček (CW); pokud je v tu chvíli kanál B na nízké úrovni, znamená to otáčení proti směru hodinových ručiček (CCW). Pokud tedy odečteme hodnotu kanálu B, když je kanál A na nízké úrovni, můžeme vědět, ve kterém směru se rotační kodér otáčí.

Princip: Viz níže schematický diagram modulu rotačního kodéru. Z toho vidíme, že pin 3 rotačního kodéru, konkrétně CLK na modulu, je kanál B. Pin 5, což je DT, je kanál A. Chcete -li znát směr otáčení rekordéru, stačí přečíst hodnotu CLK a DT.

V obvodu je čip regulátoru napětí 3,3 V, takže modul můžete napájet 5 V nebo 3,3 V.

Protože SDO bylo připojeno k GND, I2C adresa ADXL345 je 0x53, 0xA6 pro zápis, 0xA7 pro čtení

Funkce pinu modulu ADXL345.

Krok 3: Postupy

Krok 1. Vybudujte obvod.

Krok 2:

Stáhněte si kód z

Krok 3:

Nahrajte skicu na desku Arduino Uno

Kliknutím na ikonu Odeslat odešlete kód na ovládací panel.

Pokud se ve spodní části okna zobrazí „Hotovo nahrávání“, znamená to, že skica byla úspěšně nahrána.

Po nahrání otevřete Serial Monitor, kde uvidíte zjištěná data. Když se změní zrychlení modulu, údaj se v okně příslušně změní.

Krok 4: Kód

Kód
Kód

// ADXL335

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

ADXL335

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

Okruh:

5V: VCC

analogový 0: osa x

analog 1: osa y

analog 2: osa z

Po spálení souboru

programu, otevřete okno ladění sériového monitoru, kde můžete vidět zobrazená zjištěná data. Když se zrychlení mění, bude se číslo odpovídajícím způsobem měnit.

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

/E-mailem:

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

const int xpin =

A0; // osa x akcelerometru

const int ypin =

A1; // osa y

const int zpin =

A2; // osa z (pouze u 3osých modelů)

neplatné nastavení ()

{

// inicializace sériové komunikace:

Serial.begin (9600);

}

prázdná smyčka ()

{

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

zpoždění (1); //

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

zpoždění (1);

int z = analogRead (zpin); // číst ze zpin

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

podle 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 ");

plovák

zero_Gx = 331,5; // výstup zero_G osy x: (x_max + x_min)/2

plovák

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

float zero_Gz = 340,0; // the

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

float scale =

67,6; // napájení Vs 3,3 V: 3,3 V/5 V *1024/3,3 V *330 mV/g = 67,6 g

float scale_x =

65; // měřítko osy x: x_max/3,3 v*330 mv/g

float scale_y =

68,5; // měřítko osy y: y_max/3,3v*330mv/g

float scale_z =

68; // měřítko osy z: z_max/3,3v*330mv/g

Serial.print ((((float)) x

- zero_Gx)/scale_x); // tisk hodnoty x na sériovém monitoru

Serial.print ("\ t");

Serial.print ((((float) y)

- zero_Gy)/scale_y); // tisk hodnoty y na sériovém monitoru

Serial.print ("\ t");

Serial.print ((((float)) z

- zero_Gz)/scale_z); // tisk hodnoty z na sériovém monitoru

Serial.print ("\ n");

zpoždění (1000); // počkejte 1 sekundu

}

Krok 5: Analýza kódu

Kód pro experiment ADXL345 obsahuje 3 části: inicializujte každý port a zařízení, získávejte a ukládejte data odeslaná ze senzorů a převádějte data.

Doporučuje: