Innholdsfortegnelse:
2025 Forfatter: John Day | [email protected]. Sist endret: 2025-01-23 15:02
Oversikt
I noen elektronikkprosjekter må vi kjenne den geografiske plasseringen når som helst og utføre en spesifikk operasjon deretter. I denne opplæringen lærer du hvordan du bruker LSM303DLHC GY-511 kompassmodulen med Arduino til å lage et digitalt kompass. Først lærer du om denne modulen og hvordan den fungerer, og deretter ser du hvordan du grensesnitter LSM303DLHC GY-511-modulen med Arduino.
Hva du vil lære
- Hvilken kompassmodul er?
- Kompassmodul og Arduino -grensesnitt.
- Lag et digitalt kompass med GY-511-modulen og Arduino.
Trinn 1: Generell informasjon om kompassmodul
GY-511-modulen inkluderer et 3-akset akselerometer og et 3-akset magnetometer. Denne sensoren kan måle den lineære akselerasjonen ved hele skalaer på ± 2 g / ± 4 g / ± 8 g / ± 16 g og magnetfelt i hele skalaer på ± 1,3 / ± 1,9 / ± 2,5 / ± 4,0 / ± 4,7 / ± 5,6 / ± 8,1 Gauss.
Når denne modulen plasseres i et magnetfelt, induserer en eksitasjonsstrøm i henhold til Lorentz -loven i den mikroskopiske spolen. Kompassmodulen konverterer denne strømmen til differensialspenningen for hver koordinatretning. Ved å bruke disse spenningene kan du beregne magnetfeltet i hver retning og få den geografiske posisjonen.
Tips
QMC5883L er en annen vanlig kompassmodul. Denne modulen, som har en lignende struktur og applikasjon som LMS303 -modulen, er litt forskjellig i ytelse. Så hvis du gjør prosjektene, vær forsiktig med modultypen. Hvis modulen din er QMC5882L, bruker du passende bibliotek og koder som også er inkludert i opplæringen.
Trinn 2: Nødvendige komponenter
Maskinvarekomponenter
Arduino UNO R3 *1
GY-511 3-akse akselerometer + magnetometer *1
TowerPro Servomotor SG-90 *1
1602 LCD -modul *1
Gensere *1
Programvare -apper
Arduino IDE
Trinn 3: Grensesnitt GY-511 kompassmodul med Arduino
GY-511 kompassmodul har 8 pinner, men du trenger bare 4 av dem for å koble til Arduino. Denne modulen kommuniserer med Arduino ved hjelp av I2C -protokollen, så koble SDA (I2C -utgang) og SCK (I2C -klokkeinngang) -pinnene på modulen til I2C -pinnene på Arduino -kortet.
Merk Som du ser har vi brukt GY-511-modulen i dette prosjektet. Men du kan bruke denne instruksjonen til å sette opp andre LMS303 kompassmoduler.
Trinn 4: Kalibrering av GY-511 kompassmodul
For å navigere må du først kalibrere modulen, noe som betyr å sette måleområdet fra 0 til 360 grader. For å gjøre dette, koble modulen til Arduino som vist nedenfor og last opp følgende kode på brettet ditt. Etter at koden er utført, kan du se minimums- og maksimumsverdiene for måleområdet for X-, Y- og Z -aksen i det serielle monitorvinduet. Du trenger disse tallene i neste del, så skriv dem ned.
Trinn 5: Krets
Trinn 6: Kode
I denne koden trenger du Wire.h -biblioteket for I2C -kommunikasjon og LMS303.h -biblioteket for kompassmodulen. Du kan laste ned disse bibliotekene fra følgende lenker.
LMS303.h bibliotek
Wire.h bibliotek
Merk Hvis du bruker QMC5883, trenger du følgende bibliotek:
MechaQMC5883L.h
Her forklarer vi koden for LMS303, men du kan også laste ned kodene for QMC -modulen.
La oss se noen av de nye funksjonene:
compass.enableDefault ();
Modulinitialisering
kompass.les ();
Leser utgangsverdiene til kompassmodulen
running_min.z = min (running_min.z, kompass.m.z); running_max.x = maks (running_max.x, kompass.m.x);
Bestemme minimums- og maksimumsverdiene for måleområdet ved å sammenligne måleverdiene.
Trinn 7: Lag et digitalt kompass
Etter kalibrering av modulen, skal vi bygge et kompass ved å koble en servomotor til modulen. Slik at servoindikatoren alltid viser oss nordretningen, som den røde pilen på kompasset. For å gjøre dette, beregner kompassmodulen først den geografiske retningen først og sender den til Arduino, og deretter, ved å bruke en passende koeffisient, beregner du vinkelen som servomotoren skal rotere slik at indikatoren peker mot det magnetiske nord. Til slutt bruker vi den vinkelen på servomotoren.
Trinn 8: Krets
Trinn 9: Kode
For denne delen trenger du også Servo.h -biblioteket, som er installert på Arduino -programvaren som standard.
La oss se noen av de nye funksjonene:
Servo Servo1;
Modulinitialisering
kompass.les ();
Vi presenterer servomotorobjektet
Servo1.attach (servoPin); compass.init (); compass.enableDefault ();
Initialiserer kompassmodulen og servomotoren
Servo1.attach () -argumentet er nummeret på pinnen som er koblet til servomotoren.
compass.m_min = (LSM303:: vektor) { -32767, -32767, -32767}; compass.m_max = (LSM303:: vektor) { +32767, +32767, +32767};
Ved å bruke disse linjene definerer du minimums- og maksimumsverdiene for måling av området oppnådd i forrige del.
float heading = compass.heading ((LSM303:: vektor) {0, 0, 1});
Funksjonen heading () returnerer vinkelen mellom koordinataksen og en fast akse. Du kan definere den faste aksen med en vektor i funksjonsargumentet. For eksempel, ved å definere (LSM303:: vektor) {0, 0, 1} her, blir Z -aksen betraktet som en konstant akse.
Servo1.write (overskrift);
Servo1.write () -funksjonen bruker leseverdien av kompassmodulen på servomotoren.
Merk Vær oppmerksom på at servomotoren kan ha et magnetfelt, så det er bedre å plassere servomotoren i passende avstand fra kompassmodulen, slik at den ikke får kompassmodulen til å avvike.
Anbefalt:
Digitalt kompass og Heading Finder: 6 trinn
Digital Compass and Heading Finder: Forfattere: Cullan Whelan Andrew Luft Blake Johnson Bekreftelser: California Maritime Academy Evan Chang-Siu Innledning: Grunnlaget for dette prosjektet er et digitalt kompass med overskriftssporing. Dette gjør det mulig for brukeren å følge en overskrift over lang avstand
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
Digitalt kompass ved bruk av Arduino og HMC5883L magnetometer: 6 trinn
Digitalt kompass ved bruk av Arduino og HMC5883L magnetometer: Hei folkens, Denne sensoren kan indikere det geografiske nord, sør, øst og vest, vi mennesker kan også bruke det til tider når det er nødvendig. Så. I denne artikkelen la oss prøve å forstå hvordan magnetometersensor fungerer og hvordan du kan koble den til en mikrokontro
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