Cuprins:
Video: ADXL345 Utilizarea Arduino Uno R3: 5 pași
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:44
În această lecție, vom învăța cum să folosim senzorul de accelerație ADXL345.
Pasul 1: Componente
- placa Arduino Uno * 1
- Cablu USB * 1
- ADXL345 * 1
- Panou * 1
- fire de jumper
Pasul 2: Principiu
Un accelerometru este folosit pentru a măsura forța generată în timpul accelerației. Cea mai fundamentală este accelerația de greutate cunoscută în mod obișnuit, care este 1g.
Măsurând accelerația cauzată de gravitație, puteți calcula unghiul de înclinare al dispozitivului față de suprafața de nivel. Analizând accelerația dinamică, puteți spune modul în care se deplasează dispozitivul. De exemplu, placa auto-echilibrată sau hoverboard aplică senzorul de accelerație și giroscopul pentru filtrul Kalman și corectarea posturii.
ADXL345
ADXL345 este un accelerometru pe 3 axe, mic, subțire, cu putere redusă, cu măsurare de înaltă rezoluție (13 biți), de până la ± 16 g. Datele de ieșire digitală sunt formatate ca un complement de 16 biți și sunt accesibile fie printr-o interfață digitală SPI (3 sau 4 fire) sau I2C. În acest experiment, este utilizată interfața digitală I2C.
Este foarte potrivit pentru a măsura accelerația statică a gravitației în aplicațiile de detectare a înclinării, precum și accelerația dinamică rezultată din mișcare sau șoc. Rezoluția sa înaltă (4 mg / LSB) permite măsurarea schimbării înclinației cu mai puțin de 1,0 °. Iar sensibilitatea excelentă (3,9 mg / LSB @ 2g) oferă o ieșire de înaltă precizie de până la ± 16g.
Cum funcționează ADXL345
ADXL345 detectează accelerația cu componenta de detectare din față, iar apoi componenta de detectare a semnalului electric o transformă în semnal electric, care este analog. Apoi, adaptorul AD integrat pe modul va converti semnalul analogic într-unul digital.
X_OUT, Y_OUT și Z_OUT sunt valorile de pe axele X, Y și respectiv Z. Așezați modulul cu fața în sus: Z_OUT poate atinge cel mult +1g, minimum X_OUT este -1g spre direcția Ax, iar minimul Y_OUT este -1g spre direcția Ay. Pe de altă parte, întoarceți modulul cu susul în jos: minimul Z_OUT este -1g, maximul X_OUT este + 1g spre direcția Ax, iar maximul Y_OUT este + 1g spre direcția Ay., așa cum se arată mai jos. Rotiți modulul ADXL345 și veți vedea schimbarea a trei valori.
când canalul A se schimbă de la nivel înalt la nivel scăzut, dacă canalul B este de nivel înalt, indică faptul că codificatorul rotativ se rotește în sensul acelor de ceasornic (CW); dacă în acel moment canalul B este de nivel scăzut, înseamnă că se rotește în sens invers acelor de ceasornic (CCW). Deci, dacă citim valoarea canalului B când canalul A este de nivel scăzut, putem ști în ce direcție se rotește codificatorul rotativ.
Principiu: Vezi mai jos schema schemei modulului codificatorului rotativ. Din acesta putem vedea că pinul 3 al codificatorului rotativ, și anume CLK de pe modul, este canalul B. Pinul 5, care este DT, este canalul A. Pentru a cunoaște direcția de rotație a înregistratorului, trebuie doar să citiți valoarea CLK și DT.
Există un cip regulator de tensiune de 3,3V în circuit, astfel încât să puteți alimenta modulul cu 5V sau 3,3V.
Deoarece SDO a fost conectat la GND, adresa I2C a ADXL345 este 0x53, 0xA6 pentru scriere, 0xA7 pentru citire
Funcția Pin a modulului ADXL345.
Pasul 3: Proceduri
Pasul 1. Construiți circuitul.
Pasul 2:
Descărcați codul de la
Pasul 3:
Încărcați schița pe placa Arduino Uno
Faceți clic pe pictograma Încărcare pentru a încărca codul pe placa de control.
Dacă „Încărcare finalizată” apare în partea de jos a ferestrei, înseamnă că schița a fost încărcată cu succes.
După încărcare, deschideți Serial Monitor, unde puteți vedea datele detectate. Când accelerarea modulului se schimbă, cifra se va modifica corespunzător pe fereastră.
Pasul 4: Cod
// ADXL335
/********************************
ADXL335
notă: vcc5v, dar ADXL335 Vs este de 3,3V
Circuitul:
5V: VCC
analog 0: axa x
analog 1: axa y
analogul 2: axa z
După arderea
program, deschideți fereastra de depanare a monitorului serial, unde puteți vedea afișate datele detectate. Când accelerația variază, cifra va varia în consecință.
*********************************
/E-mail:
//Website:www.primerobotics.in
const int xpin =
A0; // axa x a accelerometrului
const int ypin =
A1; // axa y
const int zpin =
A2; // axa z (numai la modelele cu 3 axe)
configurare nulă ()
{
// inițializați comunicațiile seriale:
Serial.begin (9600);
}
bucla nulă ()
{
int x = analogRead (xpin); // citit din xpin
întârziere (1); //
int y = analogRead (ypin); // citit din ypin
întârziere (1);
int z = analogRead (zpin); // citit din zpin
float zero_G = 338,0; // Sursa de alimentare ADXL335
de Vs 3.3V: 3.3V / 5V * 1024 = 676/2 = 338
//Serial.print(x);
//Serial.print("\t ");
//Serial.print(y);
//Serial.print("\t ");
//Serial.print(z);
//Serial.print("\n ");
pluti
zero_Gx = 331,5; // ieșirea zero_G a axei x: (x_max + x_min) / 2
pluti
zero_Gy = 329,5; // ieșirea zero_G a axei y: (y_max + y_min) / 2
float zero_Gz = 340.0; // the
ieșire zero_G a axei z: (z_max + z_min) / 2
float scale =
67,6; // sursa de alimentare Vs 3.3V: 3.3v / 5v * 1024 / 3.3v * 330mv / g = 67.6g
float scale_x =
65; // scala axei x: x_max / 3.3v * 330mv / g
float scale_y =
68,5; // scala axei y: y_max / 3,3v * 330mv / g
float scale_z =
68; // scala axei z: z_max / 3.3v * 330mv / g
Serial.print (((float) x
- zero_Gx) / scale_x); // tipăriți valoarea x pe monitorul serial
Serial.print ("\ t");
Serial.print (((float) y
- zero_Gy) / scale_y); // tipăriți valoarea y pe monitorul serial
Serial.print ("\ t");
Serial.print ((((float) z.)
- zero_Gz) / scale_z); // tipăriți valoarea z pe monitorul serial
Serial.print ("\ n");
întârziere (1000); // așteptați 1 secundă
}
Pasul 5: Analiza codului
Codul pentru experimentul ADXL345 include 3 părți: inițializați fiecare port și dispozitiv, achiziționați și stocați datele trimise de la senzori și convertiți datele.
Recomandat:
Contor vizitator Utilizarea Arduino pe TinkerCad: 3 pași
Contor de vizitatori folosind Arduino pe TinkerCad: De multe ori trebuie să monitorizăm persoana / persoanele care vizitează un loc, cum ar fi sala de seminarii, sala de conferințe sau centrul comercial sau templul. Acest proiect poate fi folosit pentru a număra și afișa numărul de vizitatori care intră în orice sală de conferințe sau seminar
Neopixel Ws2812 Rainbow LED Glow Cu M5stick-C - Rularea Rainbow pe Neopixel Ws2812 Utilizarea M5stack M5stick C Utilizarea Arduino IDE: 5 pași
Neopixel Ws2812 Rainbow LED Glow Cu M5stick-C | Rularea Rainbow pe Neopixel Ws2812 Utilizarea M5stack M5stick C Utilizarea Arduino IDE: Bună băieți, în acest instructables vom învăța cum să utilizați LED-uri neopixel ws2812 sau benzi LED sau matrice LED sau inel cu LED cu placa de dezvoltare m5stack m5stick-C cu Arduino IDE și vom face un model curcubeu cu el
Programare Attiny85 (scut) Utilizarea Arduino UNO: 7 pași
Programare Attiny85 (scut) Utilizarea Arduino UNO: Jocul cu Arduino este foarte distractiv. Cu toate acestea, uneori dimensiunea contează. Arduino UNO este mic, dar dacă doriți ca proiectul dvs. să fie într-o incintă mică, UNO ar putea fi mult prea mare. Ai putea încerca să folosești un NANO sau MINI, dar dacă chiar vrei
Utilizarea Arduino Uno pentru poziționarea XYZ a brațului robot 6 DOF: 4 pași
Utilizarea Arduino Uno pentru poziționarea XYZ a brațului robot 6 DOF: Acest proiect este despre implementarea unei schițe Arduino scurte și relativ ușoare pentru a oferi poziționare cinematică inversă XYZ. Am construit un braț robot 6 servo, dar când a venit să găsesc software pentru a-l rula, nu erau prea multe acolo afară de cust
Tutorial pentru ESP8266 ESPDuino NodeMcu Modul SPI Utilizarea Arduino Uno: 6 pași
Tutorial pentru ESP8266 ESPDuino NodeMcu Modul SPI Utilizarea Arduino Uno: Descriere Acest ESP8266 ESPDuino NodeMcu Modul SPI TFT LCD are rezoluție 128 x 128 și 262 culori, folosește interfața SPI pentru a comunica cu controlere precum Arduino Uno și ESP8266. Caracteristici: Dimensiune: 1,44 inch Interfață: Rezoluție SPI: 128