Innholdsfortegnelse:
Video: ADXL345 Bruke Arduino Uno R3: 5 trinn
2024 Forfatter: John Day | [email protected]. Sist endret: 2024-01-30 11:23
I denne leksjonen lærer vi hvordan du bruker akselerasjonssensoren ADXL345.
Trinn 1: Komponenter
- Arduino Uno -bord * 1
- USB -kabel * 1
- ADXL345 *1
- Brødbrett * 1
- Jumper ledninger
Trinn 2: Prinsipp
Et akselerometer brukes til å måle kraften som genereres under akselerasjonen. Det mest grunnleggende er den allment kjente tyngdekraftakselerasjonen som er 1g.
Ved å måle akselerasjonen forårsaket av tyngdekraften, kan du beregne tiltvinkelen til enheten til den jevne overflaten. Gjennom å analysere den dynamiske akselerasjonen kan du fortelle hvordan enheten beveger seg. For eksempel bruker selvbalanserende brett eller hoverboard akselerasjonssensoren og gyroskopet for Kalman filter- og holdningskorreksjon.
ADXL345
ADXL345 er et lite, tynt, laveffekt, 3-akset akselerometer med høy oppløsning (13-bit) måling på opptil ± 16 g. Digitale utdata er formatert som 16-biters tokomplement og er tilgjengelig via enten et SPI (3- eller 4-leder) eller I2C digitalt grensesnitt. I dette eksperimentet brukes I2C digitalt grensesnitt.
Det er godt egnet til å måle den statiske gravitasjonsakselerasjonen i tilt-sensing applikasjoner, så vel som dynamisk akselerasjon som følge av bevegelse eller sjokk. Den høye oppløsningen (4 mg/LSB) muliggjør måling av hellingsendring med mindre enn 1,0 °. Og den utmerkede følsomheten (3,9 mg/LSB @2g) gir en høy presisjon på opptil ± 16 g.
Hvordan fungerer ADXL345
ADXL345 registrerer akselerasjonen med sensingkomponenten foran, og deretter endrer den elektriske signalsensingkomponenten den til et elektrisk signal, som er analogt. Deretter vil AD -adapteren som er integrert på modulen konvertere det analoge signalet til et digitalt.
X_OUT, Y_OUT og Z_OUT er verdiene på henholdsvis X-, Y- og Z -aksen. Plasser modulen med forsiden opp: Z_OUT kan maksimalt nå +1g, minimum X_OUT er -1g mot akseretningen, og minimum Y_OUT er -1g mot Ay -retningen. På den annen side, snu modulen opp ned: minimum Z_OUT er -1g, maksimum X_OUT er +1g mot akseretningen, og maksimum på Y_OUT er +1g mot Ay -retningen., som vist under. Roter ADXL345 -modulen, og du vil se endringen av tre verdier.
når kanal A endres fra høyt nivå til lavt nivå, hvis kanal B er høyt nivå, indikerer det at roterende encoder snurrer med klokken (CW); hvis kanal B er lavt i det øyeblikket, betyr det spinn mot klokken (CCW). Så hvis vi leser verdien av kanal B når kanal A er lavt, kan vi vite i hvilken retning den roterende koderen roterer.
Prinsipp: Se skjematisk diagram over Rotary Encoder -modulen nedenfor. Fra den kan vi se at pinne 3 på den roterende koderen, nemlig CLK på modulen, er kanal B. Pin 5, som er DT, er kanal A. For å kjenne opptakerens rotasjonsretning, les bare verdien av CLK og DT.
Det er en 3.3v spenningsregulatorbrikke i kretsen, så du kan drive modulen med 5V eller 3.3V.
Siden SDO har blitt koblet til GND, er I2C -adressen til ADXL345 0x53, 0xA6 for skrive, 0xA7 for lesing
Pin -funksjon på ADXL345 -modulen.
Trinn 3: Prosedyrer
Trinn 1. Bygg kretsen.
Steg 2:
Last ned koden fra
Trinn 3:
Last opp skissen til Arduino Uno -brettet
Klikk på Last opp -ikonet for å laste opp koden til kontrollkortet.
Hvis "Ferdig opplasting" vises nederst i vinduet, betyr det at skissen er lastet opp.
Etter opplasting åpner du Serial Monitor, der du kan se dataene oppdaget. Når akselerasjonen til modulen endres, vil tallet endres tilsvarende på vinduet.
Trinn 4: Kode
// ADXL335
/********************************
ADXL335
merk: vcc5v, men ADXL335 Vs er 3.3V
Kretsen:
5V: VCC
analog 0: x-akse
analog 1: y-akse
analog 2: z-akse
Etter å ha brent
program, åpner du feilsøkingsvinduet for seriell skjerm, hvor du kan se dataene som blir oppdaget, vises. Når akselerasjonen varierer, vil tallet variere tilsvarende.
*********************************
/E -post:
//Nettsted: www.primerobotics.in
const int xpin =
A0; // x-aksen til akselerometeret
const int ypin =
A1; // y-aksen
const int zpin =
A2; // z-aksen (bare på 3-aksede modeller)
ugyldig oppsett ()
{
// initialiser den serielle kommunikasjonen:
Serial.begin (9600);
}
hulrom ()
{
int x = analogRead (xpin); // lese fra xpin
forsinkelse (1); //
int y = analogRead (ypin); // lese fra ypin
forsinkelse (1);
int z = analogRead (zpin); // lest 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 ");
flyte
zero_Gx = 331,5; // null_G -utgangen til x -aksen: (x_max + x_min)/2
flyte
zero_Gy = 329,5; // null_G -utgangen til y -aksen: (y_max + y_min)/2
flyte zero_Gz = 340.0; // the
zero_G -utgang fra z -aksen: (z_max + z_min)/2
flytevekt =
67,6; // strømforsyning med Vs 3,3V: 3,3v/5v *1024/3,3v *330mv/g = 67,6g
flyte skala_x =
65; // skalaen til x -aksen: x_max/3,3v*330mv/g
flyte skala_y =
68,5; // skalaen til y -aksen: y_max/3,3v*330mv/g
flyte skala_z =
68; // skalaen til z -aksen: z_max/3,3v*330mv/g
Serial.print (((flyte) x
- zero_Gx)/scale_x); // Skriv ut x -verdi på seriell skjerm
Serial.print ("\ t");
Serial.print (((float) y
- zero_Gy)/scale_y); // Skriv ut y -verdi på seriell skjerm
Serial.print ("\ t");
Serial.print (((float) z
- zero_Gz)/scale_z); // skriv ut z -verdi på seriell skjerm
Serial.print ("\ n");
forsinkelse (1000); // vent i 1 sekund
}
Trinn 5: Kodeanalyse
Koden for ADXL345 -eksperimentet inkluderer 3 deler: initialiser hver port og enhet, hente og lagre data som sendes fra sensorene, og konverter dataene.
Anbefalt:
Opplæring: Hvordan bruke RGB fargedetektorsensor TCS230 med Arduino UNO: 3 trinn
Opplæring: Hvordan bruke RGB fargedetektorsensor TCS230 med Arduino UNO: Beskrivelse: Denne opplæringen viser deg noen enkle trinn om hvordan du bruker RGB fargedetektorsensor ved hjelp av Arduino Uno. På slutten av denne opplæringen får du en rekke sammenligningsresultater mellom få farger. TCS3200 er en komplett fargedetektor
Hvordan bruke DS1307 Bruke Arduino: 7 trinn
Hvordan bruke DS1307 Bruke Arduino: DS1307 er en sanntidsklokke IC (RTC). Denne IC brukes til å gi tidsdata. Tildelt tid starter fra sekunder, minutt, timer, dager, dato, måned og år. Denne IC krever ytterligere eksterne komponenter som Crystal og 3,6V batterier. Krystall
Hvordan bruke en tenåring til å skrive ut bilder på Splatoon 2 Bruke SplatPost -skriveren: 10 trinn
Hvordan bruke en tenåring til å skrive ut bilder på Splatoon 2 Bruke SplatPost -skriveren: I denne instruksen vil jeg vise hvordan du bruker SplatPost -skriveren av ShinyQuagsire. Uten klare instruksjoner ville noen som ikke har erfaring med kommandolinjen ha litt problemer. Målet mitt er å forenkle trinnene ned til poi
Neopixel Ws2812 Rainbow LED-glød med M5stick-C - Kjører Rainbow på Neopixel Ws2812 Bruke M5stack M5stick C Bruke Arduino IDE: 5 trinn
Neopixel Ws2812 Rainbow LED-glød med M5stick-C | Running Rainbow på Neopixel Ws2812 Bruke M5stack M5stick C Bruke Arduino IDE: Hei folkens i denne instruksen, vi lærer hvordan du bruker neopixel ws2812 LED eller led strip eller led matrise eller led ring med m5stack m5stick-C utviklingstavle med Arduino IDE, og vi skal lage et regnbuemønster med den
Hvordan bruke Wiimote som en datamus ved å bruke stearinlys som sensor !!: 3 trinn
Slik bruker du Wiimote som en datamus ved å bruke stearinlys som en sensor !!: Denne guiden viser deg hvordan du kobler din Wii -fjernkontroll (Wiimote) til din PC og bruker den som en mus