Sadržaj:
Video: ADXL345 Korištenje Arduino Uno R3: 5 koraka
2024 Autor: John Day | [email protected]. Zadnja promjena: 2024-01-30 09:35
U ovoj lekciji naučit ćemo kako koristiti senzor ubrzanja ADXL345.
Korak 1: Komponente
- Arduino Uno ploča * 1
- USB kabel * 1
- ADXL345 *1
- Oglasna ploča * 1
- Žice za kratkospojnike
Korak 2: Princip
Akcelerometar se koristi za mjerenje sile nastale tijekom ubrzanja. Najvažnije je općepoznato ubrzanje gravitacije od 1g.
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, samo balansirajuć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 s mjerenjima visoke razlučivosti (13 bita) do ± 16 g. Digitalni izlazni podaci formatirani su kao 16-bitna dva komplementa i dostupni su putem SPI (3- ili 4-žice) ili I2C digitalnog sučelja. U ovom eksperimentu koristi se I2C digitalno sučelje.
Prikladno je za mjerenje statičkog ubrzanja gravitacije u aplikacijama osjetnika nagiba, kao i dinamičkog ubrzanja koje proizlazi iz kretanja ili udara. Njegova visoka razlučivost (4 mg/LSB) omogućuje mjerenje promjene nagiba za manje od 1,0 °. I izvrsna osjetljivost (3,9 mg/LSB @2 g) omogućuje visoku preciznost do ± 16 g.
Kako radi 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, odnosno Z. 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 niže. Okrećite modul ADXL345 i vidjet ćete promjenu tri vrijednosti.
kada se kanal A promijeni s visoke razine na nisku razinu, ako je kanal B visoke razine, to pokazuje da se rotacijski davač okreće u smjeru kazaljke na satu (CW); ako je u tom trenutku kanal B na niskoj razini, to znači da se okreće suprotno od kazaljke na satu (CCW). Dakle, ako očitamo vrijednost kanala B kada je kanal A na niskoj razini, možemo znati u kojem se smjeru okreće rotacijski davač.
Načelo: 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 znali smjer okretanja snimača, samo pročitajte vrijednost CLK i DT.
U krugu se nalazi čip regulatora napona od 3,3 V, tako da modul možete napajati s 5 V ili 3,3 V.
Budući da je SDO spojen 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 s
3. korak:
Prenesite skicu na Arduino Uno ploču
Pritisnite ikonu za prijenos da biste učitali kôd na upravljačku ploču.
Ako se na dnu prozora pojavi poruka "Gotovo učitavanje", to znači da je skica uspješno učitana.
Nakon prijenosa otvorite Serial Monitor, gdje možete vidjeti otkrivene podatke. Kad se ubrzanje modula promijeni, brojka će se u skladu s tim promijeniti na prozoru.
Korak 4: Kodirajte
// ADXL335
/********************************
ADXL335
napomena: vcc5v, ali ADXL335 Vs je 3.3V
Krug:
5V: VCC
analogno 0: os x
analogni 1: os y
analogni 2: z-os
Nakon spaljivanja
programa, otvorite prozor za otklanjanje pogrešaka serijskog monitora u kojem možete vidjeti otkrivene podatke. Kad se ubrzanje mijenja, brojka će se prema tome mijenjati.
*********************************
/E -mail:
// Web stranica: www.primerobotics.in
const int xpin =
A0; // os x mjerila ubrzanja
const int ypin =
A1; // y-os
const int zpin =
A2; // z-os (samo na modelima s 3 osi)
void setup ()
{
// inicijaliziranje serijske komunikacije:
Serial.begin (9600);
}
void loop ()
{
int x = analogRead (xpin); // čitanje s xpina
odgoda (1); //
int y = analogRead (ypin); // čitanje s ypina
odgoda (1);
int z = analogno čitanje (zpin); // čitanje sa zpina
plovak nula_G = 338,0; // napajanje ADXL335
od Vs 3.3V: 3.3V/5V*1024 = 676/2 = 338
//Serial.print(x);
//Serial.print("\t ");
//Serijski.ispis (y);
//Serial.print("\t ");
//Serijski.tisak(z);
//Serial.print("\n ");
plutati
zero_Gx = 331.5; // izlaz zero_G na osi x: (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,3 V: 3,3 v/5 v *1024/3,3 v *330 mv/g = 67,6 g
float scale_x =
65; // ljestvica osi x: x_max/3,3 v*330 mv/g
float scale_y =
68,5; // ljestvica osi y: y_max/3,3 v*330 mv/g
float scale_z =
68; // ljestvica osi z: z_max/3,3 v*330 mv/g
Serial.print (((float) x
- nula_Gx)/ljestvica_x); // ispisuje x vrijednost na serijskom monitoru
Serial.print ("\ t");
Serial.print (((float) y
- nula_Gy)/ljestvica_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čeni:
Korištenje STM32 poput Arduino vodiča - STM32F103C8: 5 koraka
Korištenje STM32 poput Arduino vodiča | STM32F103C8: Hej, što ima, dečki! Akarsh ovdje iz CETech -a. U sljedećem vodiču ćemo pogledati različite mikrokontrolere koje nudi STM, poput STM32F103C8, STM32F030F4 i STM8S103F3. Uspoređivat ćemo ove mikrofone zajedno s
Zvučni signal kviza Korištenje ATMEGA328P (Arduino) Uradi sam: 3 koraka
Zvučni signal kviza Korištenje ATMEGA328P (Arduino) Uradi sam: U krugu zvučnih signala kvizova pitanje se postavlja svim timovima. Osoba koja zna odgovor prvo pritisne zujalicu, a zatim odgovori na pitanje. Ponekad dva ili više igrača pritisnu zujalicu gotovo istodobno i to je
Korištenje robota za crtanje za Arduino s satnim uputama o kodu: 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 teme STEM (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 s M5stick-C - Pokretanje Rainbow na Neopixelu Ws2812 Korištenje M5stack M5stick C Korištenje Arduino IDE -a: 5 koraka
Neopixel Ws2812 Rainbow LED sjaj s M5stick-C | Pokretanje Rainbow-a na Neopixelu Ws2812 Korištenje M5stack M5stick C Korištenje Arduino IDE-a: Zdravo dečki, 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 s njim
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 robotsku ruku sa 6 servo -a, ali što se tiče pronalaženja softvera za njeno pokretanje, nije bilo puno toga osim custa