Sisukord:
Video: ADXL345 Arduino Uno R3 kasutamine: 5 sammu
2024 Autor: John Day | [email protected]. Viimati modifitseeritud: 2024-01-30 08:48
Selles õppetükis õpime kasutama kiirendusandurit ADXL345.
Samm: komponendid
- Arduino Uno plaat * 1
- USB -kaabel * 1
- ADXL345 *1
- Leivalaud * 1
- Jumper juhtmed
2. samm: põhimõte
Kiirenduse ajal tekkiva jõu mõõtmiseks kasutatakse kiirendusmõõturit. Kõige olulisem on üldtuntud raskuskiirendus, mis on 1 g.
Mõõtes gravitatsioonist tingitud kiirendust, saate arvutada seadme kaldenurga tasase pinna suhtes. Dünaamilise kiirenduse analüüsimisel saate öelda, kuidas seade liigub. Näiteks isetasakaalustav laud või hõljuklaud kasutab Kalmani filtri ja kehahoia korrigeerimiseks kiirendusandurit ja güroskoopi.
ADXL345
ADXL345 on väike, õhuke, väikese võimsusega 3-teljeline kiirendusmõõtur, millel on kõrge eraldusvõimega (13-bitine) mõõtmine kuni ± 16 g. Digitaalsed väljundandmed on vormindatud 16-bitise kahe täiendusena ja neile on juurdepääs kas SPI (3- või 4-juhtmeline) või I2C digitaalse liidese kaudu. Selles katses kasutatakse digitaalset liidest I2C.
See sobib hästi staatilise raskuskiirenduse mõõtmiseks kaldeanduriga rakendustes, samuti dünaamilist kiirendust, mis tuleneb liikumisest või löögist. Selle kõrge eraldusvõime (4 mg/LSB) võimaldab mõõta kalde muutust alla 1,0 °. Suurepärane tundlikkus (3,9 mg/LSB @2 g) tagab suure täpsusega kuni ± 16 g väljundi.
Kuidas ADXL345 töötab
ADXL345 tuvastab kiirenduse esiosas oleva andurikomponendiga ja seejärel muudab elektrilise signaali andur selle elektrisignaaliks, mis on analoog. Seejärel teisendab moodulisse integreeritud AD -adapter analoogsignaali digitaalseks.
X_OUT, Y_OUT ja Z_OUT on väärtused vastavalt X-, Y- ja Z -teljel. Asetage moodul esiküljega üles: Z_OUT võib ulatuda maksimaalselt +1 g -ni, minimaalne X_OUT on -1 g kirve suunas ja minimaalne Y_OUT on -1 g Ay suunas. Teisest küljest keerake moodul tagurpidi: minimaalne Z_OUT on -1g, maksimaalne X_OUT on +1g kirve suunas ja maksimaalne Y_OUT on +1g Ay suunas., nagu allpool näidatud. Pöörake ADXL345 moodulit ja näete kolme väärtuse muutust.
kui kanal A muutub kõrgelt tasemelt madalale, kui kanal B on kõrgel tasemel, näitab see pöörleva koodri pöörlemist päripäeva (CW); kui sel hetkel on kanal B madal, tähendab see pöörlemist vastupäeva (CCW). Seega, kui loeme kanali B väärtust, kui kanal A on madal, saame teada, millises suunas pöörlev kooder pöörleb.
Põhimõte: vaadake allolevat pöörleva kodeerija mooduli skemaatilist diagrammi. Sellest näeme, et pöörleva kodeerija tihvt 3, nimelt moodulil CLK, on kanal B. Pin 5, mis on DT, on kanal A. Salvesti pöörlemissuuna teadmiseks lugege lihtsalt CLK väärtust ja DT.
Ahelas on 3,3 V pingeregulaatori kiip, nii et saate moodulit toita 5 V või 3,3 V pingega.
Kuna SDO on ühendatud GND -ga, on ADXL345 I2C -aadress 0x53, kirjutamiseks 0xA6, lugemiseks 0xA7
ADXL345 mooduli tihvtifunktsioon.
3. samm: protseduurid
Samm 1. Ehitage ahel.
2. samm:
Laadige kood alla aadressilt
3. samm:
Laadige eskiis üles Arduino Uno tahvlile
Koodi juhtpaneelile üleslaadimiseks klõpsake üleslaadimise ikooni.
Kui akna allosas kuvatakse "Valmis üleslaadimine", tähendab see, et visand on edukalt üles laaditud.
Pärast üleslaadimist avage Serial Monitor, kus näete tuvastatud andmeid. Kui mooduli kiirendus muutub, muutub näitaja aknal vastavalt.
4. samm: kood
// ADXL335
/********************************
ADXL335
märkus: vcc5v, kuid ADXL335 Vs on 3.3V
Ahel:
5V: VCC
analoog 0: x-telg
analoog 1: y-telg
analoog 2: z-telg
Pärast põletamist
programm, avage seeriamonitori silumisaken, kus näete tuvastatud andmete kuvamist. Kui kiirendus varieerub, muutub see näitaja vastavalt.
*********************************
/E -post:
// Veebisait: www.primerobotics.in
const int xpin =
A0; // kiirendusmõõturi x-telg
const int ypin =
A1; // y-telg
const int zpin =
A2; // z-telg (ainult 3-teljelistel mudelitel)
tühine seadistus ()
{
// jadaühenduse initsialiseerimine:
Seriaalne algus (9600);
}
tühine tsükkel ()
{
int x = analogRead (xpin); // lugeda xpinist
viivitus (1); //
int y = analogRead (ypin); // lugeda ypinist
viivitus (1);
int z = analogRead (zpin); // lugeda zpinist
ujuk null_G = 338,0; // ADXL335 toiteallikas
Vs 3.3V järgi: 3.3V/5V*1024 = 676/2 = 338
//Sarja.print (x);
//Sarja.print ("\t ");
//Sarja.print (y);
//Sarja.print ("\t ");
//Seriaalne.print (z);
//Sarja.print ("\n ");
hõljuma
zero_Gx = 331.5; // x telje null_G väljund: (x_max + x_min)/2
hõljuma
zero_Gy = 329,5; // y telje null_G väljund: (y_max + y_min)/2
float zero_Gz = 340.0; //
z telje null_G väljund: (z_max + z_min)/2
ujuk skaala =
67,6; // toiteallikas Vs 3.3V: 3.3v/5v *1024/3.3v *330mv/g = 67,6g
ujuk skaala_x =
65; // x -telje skaala: x_max/3.3v*330mv/g
ujuk skaala_y =
68,5; // y -telje skaala: y_max/3.3v*330mv/g
ujuk skaala_z =
68; // z -telje skaala: z_max/3.3v*330mv/g
Seeria.print (((ujuk) x
- null_Gx)/skaala_x); // prindi x väärtus jadamonitorile
Serial.print ("\ t");
Serial.print (((float) y
- null_Gy)/skaala_y); // prindi y väärtus jadamonitorile
Serial.print ("\ t");
Serial.print (((ujuk) z
- null_Gz)/skaala_z); // printige z väärtus jadamonitorile
Serial.print ("\ n");
viivitus (1000); // oota 1 sekund
}
Samm: koodi analüüs
ADXL345 katse kood sisaldab 3 osa: iga pordi ja seadme lähtestamine, anduritelt saadetud andmete hankimine ja salvestamine ning andmete teisendamine.
Soovitan:
Attiny85 programmeerimine (kilp) Arduino UNO kasutamine: 7 sammu
Attiny85 programmeerimine (kilp) Arduino UNO kasutamine: Arduinoga mängimine on väga lõbus. Mõnikord on suurus siiski oluline. Arduino UNO on väike, kuid kui soovite, et teie projekt asuks väikeses korpuses, võib UNO olla liiga suur. Võite proovida kasutada NANO või MINI, kuid kui soovite tõesti
WeMos TTgo ESP32 Uno D1 R32 seadistamine ja kasutamine: 3 sammu
WeMos TTgo ESP32 Uno D1 R32 seadistamine ja kasutamine: WeMos® TTgo ESP32 uno D1 R32 seadistamine
Kahe LED -i kasutamine Arduino UNO abil TinkerCADi ahelates: 8 sammu
Kahe LED -iga töötamine Arduino UNO abil TinkerCADi ahelates: See projekt demonstreerib kahe LED -i ja Arduinoga töötamist TinkerCAD -ahelates
Arduino Uno kasutamine 6 DOF robotkäe XYZ positsioneerimiseks: 4 sammu
Arduino Uno kasutamine 6 DOF robotkäe XYZ positsioneerimiseks: See projekt hõlmab lühikese ja suhteliselt lihtsa Arduino eskiisi rakendamist, et pakkuda XYZ -pöördkinemaatilist positsioneerimist. Olin ehitanud 6 -servilise robotkäe, kuid selle käivitamiseks vajaliku tarkvara leidmiseks polnud seal palju muud, kui ainult hooldus
TCRT5000 IR -andurimooduli kasutamine Arduino UNO -ga: 7 sammu (piltidega)
Kuidas kasutada TCRT5000 IR -andurimoodulit Arduino UNO -ga: Selles õpetuses õpetame teile mõningaid põhitõdesid TCRT5000 IR -andurimooduli kasutamise kohta. Need põhitõed näitavad teile analoog- ja digitaalväärtusi jadamonitoril. Kirjeldus: See IR -peegeldav andur kasutab TCRT5000 -d, et tuvastada värve ja