Obsah:
- Krok 1: Požadovaný hardware:
- Krok 2: Připojení hardwaru:
- Krok 3: Kód pro měření zrychlení:
- Krok 4: Aplikace:
Video: Měření zrychlení pomocí ADXL345 a Arduino Nano: 4 kroky
2024 Autor: John Day | [email protected]. Naposledy změněno: 2024-01-30 08:21
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 arduino nano. Ke čtení hodnot zrychlení jsme použili arduino s adaptérem I2c. Tento adaptér I2C umožňuje snadné a spolehlivější připojení k modulu senzoru.
Krok 1: Požadovaný hardware:
Materiály, které potřebujeme k dosažení našeho cíle, zahrnují následující hardwarové komponenty:
1. ADXL345
2. Arduino Nano
3. Kabel I2C
4. I2C štít pro Arduino Nano
Krok 2: Připojení hardwaru:
Sekce zapojení hardwaru v zásadě vysvětluje zapojení kabelů požadovaná mezi senzorem a arduino nano. 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í:
Začněme nyní arduino kódem.
Při používání senzorového modulu s arduino jsme zahrnuli knihovnu Wire.h. Knihovna „Wire“obsahuje funkce, které usnadňují komunikaci i2c mezi senzorem a deskou arduino.
Celý arduino kód je pro pohodlí uživatele uveden níže:
#zahrnout
// Adresa ADXL345 I2C je 0x53 (83)
#define Addr 0x53
neplatné nastavení ()
{
// 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);
// Normální režim, výstupní datový tok = 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);
// Vypnutí automatického 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);
// Automatický test deaktivován, 4vodičové rozhraní, plné rozlišení, rozsah = +/- 2 g
Wire.write (0x08);
// Zastavte přenos 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
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 ();
}
}
// 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 sériový monitor
Serial.print ("Zrychlení v ose X je:");
Serial.println (xAccl);
Serial.print ("Zrychlení v ose Y je:");
Serial.println (yAccl);
Serial.print ("Zrychlení v ose Z je:");
Serial.println (zAccl);
zpoždění (300);
}
V drátové knihovně Wire.write () a Wire.read () slouží k zápisu příkazů a čtení výstupu senzoru.
Serial.print () a Serial.println () se používá k zobrazení výstupu senzoru na sériovém monitoru Arduino IDE.
Výstup snímače je zobrazen na obrázku výše.
Krok 4: 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:
Měření zrychlení pomocí ADXL345 a fotonu částic: 4 kroky
Měření zrychlení pomocí ADXL345 a částicového fotonu: ADXL345 je malý, tenký, ultra nízký výkon, 3osý akcelerometr s 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á dvojčata a jsou přístupná prostřednictvím digitálního rozhraní I2 C. Měří
Měření zrychlení pomocí H3LIS331DL a Arduino Nano: 4 kroky
Měření zrychlení pomocí H3LIS331DL a Arduino Nano: H3LIS331DL je vysoce výkonný 3osý lineární akcelerometr patřící do rodiny „nano“s digitálním sériovým rozhraním I²C. H3LIS331DL má uživatelem volitelné plné stupnice ± 100 g/± 200 g/± 400 g a je schopen měřit zrychlení
Měření zrychlení pomocí H3LIS331DL a fotonu částic: 4 kroky
Měření zrychlení pomocí H3LIS331DL a částicového fotonu: H3LIS331DL, je vysoce výkonný 3osý lineární akcelerometr patřící do rodiny „nano“, s digitálním sériovým rozhraním I²C. H3LIS331DL má uživatelem volitelné plné stupnice ± 100 g/± 200 g/± 400 g a je schopen měřit zrychlení
Měření zrychlení pomocí ADXL345 a Raspberry Pi: 4 kroky
Měření zrychlení pomocí ADXL345 a Raspberry Pi: ADXL345 je malý, tenký, ultra nízký výkon, 3osý akcelerometr s 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á dvojčata a jsou přístupná prostřednictvím digitálního rozhraní I2 C. Měří
Měření zrychlení pomocí BMA250 a Arduino Nano: 4 kroky
Měření zrychlení pomocí BMA250 a Arduino Nano: BMA250 je malý, tenký, ultralehký, 3osý akcelerometr s 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á dvojka a jsou přístupná prostřednictvím digitálního rozhraní I2C. Měří statický