Kazalo:
- 1. korak: Potrebna strojna oprema:
- 2. korak: Priključitev strojne opreme:
- 3. korak: Koda za merjenje pospeška:
- 4. korak: Aplikacije:
Video: Merjenje pospeška z uporabo ADXL345 in Arduino Nano: 4 koraki
2024 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2024-01-30 12:04
ADXL345 je majhen, tanek, 3-osni merilnik pospeška z ultra nizko močjo z visoko ločljivostjo (13-bitnimi) meritvami do ± 16 g. Digitalni izhodni podatki so oblikovani kot 16-bitni dvojčki, ki se dopolnjujejo in so dostopni prek digitalnega vmesnika I2 C. Meri statični pospešek gravitacije v aplikacijah za zaznavanje nagiba, pa tudi dinamični pospešek, ki je posledica gibanja ali udarca. Njegova visoka ločljivost (3,9 mg/LSB) omogoča merjenje naklonskih sprememb pod 1,0 °.
V tej vadnici je prikazano povezovanje senzorskega modula ADXL345 z arduino nano. Za branje vrednosti pospeškov smo uporabili arduino z vmesnikom I2c, ki omogoča enostavno in zanesljivo povezavo s senzorskim modulom.
1. korak: Potrebna strojna oprema:
Materiali, ki jih potrebujemo za dosego našega cilja, vključujejo naslednje komponente strojne opreme:
1. ADXL345
2. Arduino Nano
3. Kabel I2C
4. I2C ščit za Arduino Nano
2. korak: Priključitev strojne opreme:
Oddelek za priključitev strojne opreme v bistvu pojasnjuje potrebne ožičenje med senzorjem in arduino nano. Zagotavljanje pravilnih povezav je osnovna potreba pri delu na katerem koli sistemu za želeni izhod. Torej so potrebne povezave naslednje:
ADXL345 bo deloval preko I2C. Tu je primer sheme ožičenja, ki prikazuje, kako povezati vsak vmesnik senzorja.
Plošča je že pripravljena za vmesnik I2C, zato priporočamo uporabo te povezave, če niste agnostični.
Vse kar potrebujete so štiri žice! Potrebne so le štiri povezave Vcc, Gnd, SCL in SDA, ki so povezane s kablom I2C.
Te povezave so prikazane na zgornjih slikah.
3. korak: Koda za merjenje pospeška:
Začnimo s kodo arduino zdaj.
Med uporabo senzorskega modula z arduinom vključujemo knjižnico Wire.h. Knjižnica "Wire" vsebuje funkcije, ki olajšajo komunikacijo i2c med senzorjem in arduino ploščo.
Celotna koda arduino je podana spodaj za udobje uporabnika:
#vključi
// Naslov ADXL345 I2C je 0x53 (83)
#define Addr 0x53
void setup ()
{
// Inicializirajte komunikacijo I2C kot MASTER
Wire.begin ();
// Začetek serijske komunikacije, nastavljena hitrost prenosa = 9600
Serial.begin (9600);
// Zagon prenosa I2C
Wire.beginTransmission (Addr);
// Izberite register pasovne širine
Wire.write (0x2C);
// Običajen način, hitrost izhodnih podatkov = 100 Hz
Wire.write (0x0A);
// Ustavi prenos I2C
Wire.endTransmission ();
// Zagon prenosa I2C
Wire.beginTransmission (Addr);
// Izberite register za nadzor moči
Wire.write (0x2D);
// Onemogočanje samodejnega spanja
Wire.write (0x08);
// Ustavi prenos I2C
Wire.endTransmission ();
// Zagon prenosa I2C
Wire.beginTransmission (Addr);
// Izberite register oblike zapisa podatkov
Wire.write (0x31);
// Samopreizkus onemogočen, 4-žični vmesnik, polna ločljivost, razpon = +/- 2g
Wire.write (0x08);
// Ustavi prenos I2C
Wire.endTransmission ();
zamuda (300);
}
void loop ()
{
podpisani int podatki [6];
za (int i = 0; i <6; i ++)
{
// Zagon prenosa I2C
Wire.beginTransmission (Addr);
// Izberite register podatkov
Wire.write ((50 + i));
// Ustavi prenos I2C
Wire.endTransmission ();
// Zahtevajte 1 bajt podatkov
Wire.requestFrom (Addr, 1);
// Preberite 6 bajtov podatkov
// xAccl lsb, xAccl msb, yAccl lsb, yAccl msb, zAccl lsb, zAccl msb
če (Wire.available () == 1)
{
podatki = Wire.read ();
}
}
// Pretvorimo podatke v 10-bitne
int xAccl = (((podatki [1] & 0x03) * 256) + podatki [0]);
če (xAccl> 511)
{
xAccl -= 1024;
}
int yAccl = (((podatki [3] & 0x03) * 256) + podatki [2]);
če (yAccl> 511)
{
yAccl -= 1024;
}
int zAccl = (((podatki [5] & 0x03) * 256) + podatki [4]);
če (zAccl> 511)
{
zAccl -= 1024;
}
// Izhodni podatki na serijski monitor
Serial.print ("Pospešek v osi X je:");
Serial.println (xAccl);
Serial.print ("Pospešek v osi Y je:");
Serial.println (yAccl);
Serial.print ("Pospešek v osi Z je:");
Serial.println (zAccl);
zamuda (300);
}
V knjižnici žic Wire.write () in Wire.read () se uporabljata za pisanje ukazov in branje izhoda senzorja.
Serial.print () in Serial.println () se uporabljata za prikaz izhoda senzorja na serijskem monitorju Arduino IDE.
Izhod senzorja je prikazan na zgornji sliki.
4. korak: Aplikacije:
ADXL345 je majhen, tanek, 3-osni merilnik pospeška z ultra nizko močjo, ki ga je mogoče uporabiti v prenosnih enotah, medicinskih instrumentih itd. Njegova uporaba vključuje tudi igralne in kazalne naprave, industrijske instrumente, osebne navigacijske naprave in zaščito trdega diska (HDD).
Priporočena:
Merjenje pospeška z uporabo ADXL345 in fotona delcev: 4 koraki
Merjenje pospeška z uporabo ADXL345 in fotona iz delcev: ADXL345 je majhen, tanek, 3-osni merilnik pospeška z ultra nizko močjo z visoko ločljivostjo (13-bitni) do ± 16 g. Digitalni izhodni podatki so oblikovani kot 16-bitni dvojčki, ki se dopolnjujejo in so dostopni prek digitalnega vmesnika I2 C. Meri
Merjenje pospeška z uporabo H3LIS331DL in Arduino Nano: 4 koraki
Merjenje pospeška z uporabo H3LIS331DL in Arduino Nano: H3LIS331DL, je nizko zmogljiv 3-osni linearni merilnik pospeška iz družine "nano" z digitalnim serijskim vmesnikom I²C. H3LIS331DL ima polne lestvice, ki jih lahko izbere uporabnik ± 100g/± 200g/± 400g, in lahko meri pospeške w
Merjenje pospeška z uporabo H3LIS331DL in fotona delcev: 4 koraki
Merjenje pospeška z uporabo H3LIS331DL in fotona delcev: H3LIS331DL, je visoko zmogljiv 3-osni linearni merilnik pospeška, ki spada v družino "nano", z digitalnim serijskim vmesnikom I²C. H3LIS331DL ima polne lestvice, ki jih lahko izbere uporabnik ± 100g/± 200g/± 400g, in lahko meri pospeške w
Merjenje pospeška z uporabo ADXL345 in Raspberry Pi: 4 koraki
Merjenje pospeška z uporabo ADXL345 in Raspberry Pi: ADXL345 je majhen, tanek, 3-osni merilnik pospeška z ultra nizko močjo z visoko ločljivostjo (13 bitov) do ± 16 g. Digitalni izhodni podatki so oblikovani kot 16-bitni dvojčki, ki se dopolnjujejo in so dostopni prek digitalnega vmesnika I2 C. Meri
Merjenje pospeška z uporabo BMA250 in Arduino Nano: 4 koraki
Merjenje pospeškov z uporabo BMA250 in Arduino Nano: BMA250 je majhen, tanek, 3-osni merilnik pospeška z ultra nizko močjo z visoko ločljivostjo (13 bitov) do ± 16 g. Digitalni izhodni podatki so oblikovani kot 16-bitni dvojčki, ki se dopolnjujejo, in so dostopni prek digitalnega vmesnika I2C. Meri statično