Indholdsfortegnelse:
Video: ADXL345 Brug af Arduino Uno R3: 5 trin
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:28
I denne lektion lærer vi, hvordan man bruger accelerationssensoren ADXL345.
Trin 1: Komponenter
- Arduino Uno board * 1
- USB -kabel * 1
- ADXL345 *1
- Brødbræt * 1
- Jumper ledninger
Trin 2: Princip
Et accelerometer bruges til at måle den kraft, der genereres under accelerationen. Det mest fundamentale er den almindeligt kendte tyngdekraftacceleration, der er 1 g.
Ved at måle accelerationen forårsaget af tyngdekraften kan du beregne enhedens hældningsvinkel til den plane overflade. Gennem analyse af den dynamiske acceleration kan du fortælle, hvordan enheden bevæger sig. For eksempel anvender selvbalancerende bræt eller hoverboard accelerationssensoren og gyroskopet til Kalman filter- og kropsholdningskorrektion.
ADXL345
ADXL345 er et lille, tyndt, laveffekt, 3-akset accelerometer med høj opløsning (13-bit) måling på op til ± 16 g. Digitale outputdata er formateret som 16-bit tos komplement og er tilgængelige via enten en SPI (3- eller 4-leder) eller I2C digital grænseflade. I dette eksperiment bruges I2C digital interface.
Det er velegnet til at måle den statiske tyngdekraftacceleration i hældningsfølende applikationer samt dynamisk acceleration som følge af bevægelse eller stød. Dens høje opløsning (4 mg/LSB) muliggør måling af hældningsændring med mindre end 1,0 °. Og den fremragende følsomhed (3,9 mg/LSB @2g) giver en højpræcisions output på op til ± 16g.
Sådan fungerer ADXL345
ADXL345 registrerer accelerationen med sensekomponenten foran, og derefter ændrer den elektriske signalføler komponent den til et elektrisk signal, som er analogt. Dernæst konverterer den AD -adapter, der er integreret på modulet, det analoge signal til et digitalt.
X_OUT, Y_OUT og Z_OUT er værdierne ved henholdsvis X-, Y- og Z -aksen. Placer modulet med forsiden opad: Z_OUT kan højst nå +1g, minimum X_OUT er -1g mod Ax -retningen, og minimum Y_OUT er -1g mod Ay -retningen. På den anden side skal du vende modulet på hovedet: minimum af Z_OUT er -1g, maksimumet af X_OUT er +1g mod aksens retning, og maksimum af Y_OUT er +1g mod Ay -retningen., som vist herunder. Drej ADXL345 -modulet, og du vil se ændringen af tre værdier.
når kanal A skifter fra højt til lavt niveau, hvis kanal B er højt niveau, angiver det, at den roterende encoder drejer med uret (CW); hvis kanal B i det øjeblik er lavt, betyder det, at det drejer mod uret (CCW). Så hvis vi læser værdien af kanal B, når kanal A er lavt, kan vi vide i hvilken retning den roterende encoder roterer.
Princip: Se skematisk diagram af Rotary Encoder -modulet herunder. Fra det kan vi se, at pin 3 på den roterende encoder, nemlig CLK på modulet, er kanal B. Pin 5, som er DT, er kanal A. For at kende optagerens rotationsretning skal du bare læse værdien af CLK og DT.
Der er en 3.3v spændingsregulatorchip i kredsløbet, så du kan drive modulet med 5V eller 3.3V.
Da SDO er blevet forbundet til GND, er I2C -adressen på ADXL345 0x53, 0xA6 til skrivning, 0xA7 for læsning
Pin -funktion af ADXL345 -modul.
Trin 3: Procedurer
Trin 1. Byg kredsløbet.
Trin 2:
Download koden fra
Trin 3:
Upload skitsen til Arduino Uno -tavlen
Klik på ikonet Upload for at uploade koden til kontrolkortet.
Hvis "Udført upload" vises nederst i vinduet, betyder det, at skitsen er uploadet.
Efter upload skal du åbne Serial Monitor, hvor du kan se dataene registreret. Når accelerationen af modulet ændres, ændres tallet tilsvarende i vinduet.
Trin 4: Kode
// ADXL335
/********************************
ADXL335
Bemærk: vcc5v, men ADXL335 Vs er 3.3V
Kredsløbet:
5V: VCC
analog 0: x-akse
analog 1: y-akse
analog 2: z-akse
Efter at have brændt
program, skal du åbne vinduet til seriel skærmfejlfinding, hvor du kan se de registrerede data blive vist. Når accelerationen varierer, vil tallet variere tilsvarende.
*********************************
/E -mail:
// Websted: www.primerobotics.in
const int xpin =
A0; // accelerometerets x-akse
const int ypin =
A1; // y-aksen
const int zpin =
A2; // z-akse (kun på 3-aksede modeller)
ugyldig opsætning ()
{
// initialiser den serielle kommunikation:
Serial.begin (9600);
}
hulrum ()
{
int x = analogRead (xpin); // læst fra xpin
forsinkelse (1); //
int y = analogRead (ypin); // læst fra ypin
forsinkelse (1);
int z = analogRead (zpin); // læst fra zpin
float zero_G = 338,0; // ADXL335 strømforsyning
ved 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 ");
flyde
zero_Gx = 331,5; // zero_G -output for x -aksen: (x_max + x_min)/2
flyde
zero_Gy = 329,5; // zero_G outgput af y -aksen: (y_max + y_min)/2
float zero_Gz = 340.0; // the
zero_G output af z -aksen: (z_max + z_min)/2
flyde skala =
67.6; // strømforsyning ved Vs 3.3V: 3.3v/5v *1024/3.3v *330mv/g = 67.6g
float skala_x =
65; // skalaen for x -aksen: x_max/3,3v*330mv/g
float skala_y =
68,5; // skalaen for y -aksen: y_max/3,3v*330mv/g
float skala_z =
68; // z -aksens skala: z_max/3,3v*330mv/g
Serial.print (((float) x
- zero_Gx)/scale_x); // udskriv x -værdi på seriel skærm
Serial.print ("\ t");
Serial.print (((float) y
- zero_Gy)/scale_y); // udskriv y -værdi på seriel skærm
Serial.print ("\ t");
Serial.print (((float) z
- zero_Gz)/scale_z); // udskriv z -værdi på seriel skærm
Serial.print ("\ n");
forsinkelse (1000); // vent i 1 sekund
}
Trin 5: Kodeanalyse
Koden til ADXL345 -eksperimentet omfatter 3 dele: initialiser hver port og enhed, hent og gem data, der sendes fra sensorerne, og konverter dataene.
Anbefalede:
SÅDAN BRÆNDER DU BOOTLOADER I ATMEGA328 Brug af Arduino Uno: 5 trin
SÅDAN BRÆNDER DU BOOTLOADER I ATMEGA328 Brug af Arduino Uno: første tutorial om videovisning
Hjemmeautomatisering Trin for trin Brug af Wemos D1 Mini Med PCB -design: 4 trin
Hjemmeautomatisering Trin for trin Brug af Wemos D1 Mini Med PCB -design: Hjemmeautomatisering Trin for trin ved hjælp af Wemos D1 Mini med PCB -design For et par uger siden udgav vi en tutorial "Home Automation using Raspberry Pi" i rootsaid.com, som blev godt modtaget blandt hobbyfolk og universitetsstuderende. Så kom et af vores medlemmer
Sådan uploades C -kode til ِ AVR Brug af Arduino Uno som programmerer: 6 trin
Sådan uploades C -kode til ِ AVR Brug af Arduino Uno som programmerer: HI alle: D Her vil jeg dele en enkel måde at programmere enhver AVR -chip ved hjælp af Arduino Uno R3 Alt hvad du behøver for at brænde koden til din mikrokontroller er Arduino Uno i stedet for at købe specifikke programmør, som koster meget
I2C / IIC LCD -skærm - Brug et SPI LCD til I2C LCD Display Brug SPI til IIC modul med Arduino: 5 trin
I2C / IIC LCD -skærm | Brug en SPI LCD til I2C LCD -skærmen Brug af SPI til IIC -modulet med Arduino: Hej fyre, da en normal SPI LCD 1602 har for mange ledninger at tilslutte, så det er meget svært at grænseflade det med arduino, men der er et modul på markedet, som kan konverter SPI -skærm til IIC -skærm, så du skal kun tilslutte 4 ledninger
Neopixel Ws2812 Rainbow LED Glød Med M5stick-C - Kører Rainbow på Neopixel Ws2812 Brug af M5stack M5stick C Brug af Arduino IDE: 5 trin
Neopixel Ws2812 Rainbow LED Glød Med M5stick-C | Kører Rainbow på Neopixel Ws2812 Brug af M5stack M5stick C Brug af Arduino IDE: Hej fyre i denne instruktion vil vi lære at bruge neopixel ws2812 LED'er eller led strip eller led matrix eller led ring med m5stack m5stick-C udviklingstavle med Arduino IDE, og vi vil lave et regnbuemønster med det