Sadržaj:
Video: ADXL345 Korištenje Arduino Uno R3: 5 koraka
2024 Autor: John Day | [email protected]. Zadnja izmjena: 2024-01-30 08:07
U ovoj lekciji ćemo naučiti kako koristiti senzor ubrzanja ADXL345.
Korak 1: Komponente
- Arduino Uno ploča * 1
- USB kabel * 1
- ADXL345 *1
- Oglasna ploča * 1
- Žice za spajanje
Korak 2: Princip
Akcelerometar se koristi za mjerenje sile nastale pri ubrzanju. Najvažnije je opće poznato ubrzanje gravitacije od 1 g.
Mjerenjem ubrzanja uzrokovanog gravitacijom možete izračunati kut nagiba uređaja prema ravnoj površini. Analizom dinamičkog ubrzanja možete odrediti način na koji se uređaj kreće. Na primjer, samobalansirajuća ploča ili hoverboard primjenjuje senzor ubrzanja i žiroskop za Kalmanov filter i ispravljanje položaja.
ADXL345
ADXL345 je mali, tanki, troosni akcelerometar male snage, sa visokom rezolucijom (13-bitnim) mjerenjem do ± 16 g. Digitalni izlazni podaci formatirani su kao 16-bitna dva komplementa i dostupni su putem SPI (3- ili 4-žičnog) ili I2C digitalnog sučelja. U ovom eksperimentu koristi se I2C digitalno sučelje.
Dobro je prilagođen za mjerenje statičkog ubrzanja gravitacije u aplikacijama osjetljivog nagiba, kao i dinamičkog ubrzanja koje je rezultat kretanja ili udara. Njegova visoka rezolucija (4 mg/LSB) omogućava mjerenje promjene nagiba za manje od 1,0 °. I izvrsna osetljivost (3,9 mg/LSB @2 g) obezbeđuje visoku preciznost do ± 16 g.
Kako funkcionira ADXL345?
ADXL345 detektira ubrzanje s osjetnom komponentom na prednjoj strani, a zatim je komponenta osjetljiva na električni signal mijenja u električni signal, koji je analogni. Zatim, AD adapter integriran na modulu će pretvoriti analogni signal u digitalni.
X_OUT, Y_OUT i Z_OUT su vrijednosti na osi X, Y i Z respektivno. Postavite modul licem prema gore: Z_OUT može doseći najviše 1g, minimalni X_OUT je -1g prema smjeru sjekire, a minimalni Y_OUT je -1g prema smjeru Ay. S druge strane, okrenite modul naopako: minimum Z_OUT je -1g, maksimum X_OUT je +1g prema smjeru sjekire, a maksimum Y_OUT je +1g prema smjeru Ay., kao što je prikazano u nastavku. Okrećite modul ADXL345 i vidjet ćete promjenu tri vrijednosti.
kada se kanal A promijeni s visokog na niski nivo, ako je kanal B na visokom nivou, to znači da se rotacijski davač okreće u smjeru kazaljke na satu (CW); ako je u tom trenutku kanal B nizak, to znači da se okreće suprotno od kazaljke na satu (CCW). Dakle, ako očitamo vrijednost kanala B kada je kanal A nizak, možemo znati u kojem se smjeru okreće rotacijski davač.
Princip: Pogledajte shematski dijagram modula rotacijskog davača u nastavku. Iz nje možemo vidjeti da je pin 3 rotacijskog davača, naime CLK na modulu, kanal B. Pin 5, koji je DT, je kanal A. Da biste saznali smjer okretanja snimača, samo pročitajte vrijednost CLK i DT.
U krugu postoji čip regulatora napona od 3,3 V, tako da možete napajati modul s 5 V ili 3,3 V.
Budući da je SDO povezan na GND, I2C adresa ADXL345 je 0x53, 0xA6 za pisanje, 0xA7 za čitanje
Pin funkcija ADXL345 modula.
Korak 3: Postupci
Korak 1. Izgradite krug.
Korak 2:
Preuzmite kôd sa
Korak 3:
Prenesite skicu na Arduino Uno ploču
Pritisnite ikonu Upload da biste učitali kôd na kontrolnu ploču.
Ako se na dnu prozora pojavi poruka "Gotovo učitavanje", to znači da je skica uspješno učitana.
Nakon učitavanja otvorite Serial Monitor, gdje možete vidjeti otkrivene podatke. Kada se ubrzanje modula promijeni, broj će se promijeniti u prozoru.
Korak 4: Kodirajte
// ADXL335
/********************************
ADXL335
napomena: vcc5v, ali ADXL335 Vs je 3.3V
Krug:
5V: VCC
analogno 0: os x
analogni 1: y-osa
analog 2: z-os
Nakon spaljivanja
programa, otvorite prozor za otklanjanje grešaka serijskog monitora, gdje možete vidjeti prikazane otkrivene podatke. Kad ubrzanje varira, brojka će se prema tome mijenjati.
*********************************
/Email:
//Website:www.primerobotics.in
const int xpin =
A0; // x osa akcelerometra
const int ypin =
A1; // y-osi
const int zpin =
A2; // z-os (samo na modelima s 3 osi)
void setup ()
{
// inicijalizira serijsku komunikaciju:
Serial.begin (9600);
}
void loop ()
{
int x = analogRead (xpin); // čitanje sa xpina
kašnjenje (1); //
int y = analogRead (ypin); // čitanje sa ypina
kašnjenje (1);
int z = analogRead (zpin); // čitanje sa zpina
plovak nula_G = 338,0; // ADXL335 napajanje
od 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 ");
plutati
zero_Gx = 331.5; // nulti_G izlaz x osi: (x_max + x_min)/2
plutati
zero_Gy = 329.5; // nulti_G izlaz y osi: (y_max + y_min)/2
float zero_Gz = 340.0; //
nulti_G izlaz z osi: (z_max + z_min)/2
float scale =
67.6; // napajanje Vs 3.3V: 3.3v/5v *1024/3.3v *330mv/g = 67.6g
float scale_x =
65; // skala x osi: x_max/3,3 v*330 mv/g
float scale_y =
68,5; // skala osi y: y_max/3,3 v*330 mv/g
float scale_z =
68; // skala osi z: z_max/3,3 v*330 mv/g
Serial.print (((float) x
- nula_Gx)/skala_x); // ispisuje x vrijednost na serijskom monitoru
Serial.print ("\ t");
Serial.print (((float) y
- nula_Gy)/skala_y); // ispisuje vrijednost y na serijskom monitoru
Serial.print ("\ t");
Serial.print (((float) z
- nula_Gz)/skala_z); // ispisuje vrijednost z na serijskom monitoru
Serial.print ("\ n");
kašnjenje (1000); // pričekajte 1 sekundu
}
Korak 5: Analiza koda
Kod za eksperiment ADXL345 sastoji se od 3 dijela: inicijalizirati svaki port i uređaj, prikupiti i pohraniti podatke poslane sa senzora i pretvoriti podatke.
Preporučuje se:
Korištenje STM32 poput Arduino vodiča - STM32F103C8: 5 koraka
Korištenje STM32 poput Arduino vodiča | STM32F103C8: Hej, šta ima, momci! Akarsh ovdje iz CETech -a. U sljedećem vodiču ćemo pogledati različite mikrokontrolere koje nudi STM, poput STM32F103C8, STM32F030F4 i STM8S103F3. Upoređivat ćemo ove mikroelemente zajedno sa
Korištenje robota za crtanje za Arduino sa satnim vodičem: 3 koraka
Korištenje robota za crtanje za Arduino uz Hour of Code Tutoriale: Napravio sam Arduino robota za crtanje za radionicu kako bih pomogao tinejdžerkama da se zainteresiraju za STEM teme (vidi https://www.instructables.com/id/Arduino-Drawing-Robot/ ). Robot je dizajniran za korištenje programskih naredbi u stilu kornjače, poput naprijed (distanc
Neopixel Ws2812 Rainbow LED sjaj sa M5stick-C - Pokretanje Rainbow -a na Neopixelu Ws2812 Korištenje M5stack M5stick C Korištenje Arduino IDE -a: 5 koraka
Neopixel Ws2812 Rainbow LED sjaj sa M5stick-C | Pokretanje Rainbow-a na Neopixel Ws2812 Korištenje M5stack M5stick C Korištenje Arduino IDE-a: Zdravo momci u ovim uputama naučit ćemo kako koristiti neopixel ws2812 LED diode ili LED traku ili LED matricu ili LED prsten s razvojnom pločom m5stack m5stick-C s Arduino IDE-om, a mi ćemo napraviti dugin uzorak sa njim
Korištenje 1602 LCD štitnika tipkovnice W/ Arduino [+Praktični projekti]: 7 koraka
Korištenje 1602 LCD štitnika za tipkovnicu W/ Arduino [+Praktični projekti]: Ovaj i druge nevjerojatne vodiče možete pročitati na službenoj web stranici ElectroPeak -a Pregled U ovom vodiču naučit ćete kako koristiti Arduino LCD štitnik tipkovnice s 3 praktična projekta. Što ćete naučiti: Kako postaviti štit i identificirati ključeveHo
Korištenje Arduino Uno za XYZ pozicioniranje 6 DOF robotske ruke: 4 koraka
Korištenje Arduino Uno za XYZ pozicioniranje 6 DOF robotske ruke: Ovaj projekt govori o implementaciji kratke i relativno jednostavne Arduino skice za pružanje XYZ inverznog kinematičkog pozicioniranja. Napravio sam 6 servo robotsku ruku, ali što se tiče pronalaženja softvera za njeno pokretanje, nije bilo mnogo toga osim custa