Indholdsfortegnelse:

Sådan bruges GY511 -modulet med Arduino [Lav et digitalt kompas]: 11 trin
Sådan bruges GY511 -modulet med Arduino [Lav et digitalt kompas]: 11 trin

Video: Sådan bruges GY511 -modulet med Arduino [Lav et digitalt kompas]: 11 trin

Video: Sådan bruges GY511 -modulet med Arduino [Lav et digitalt kompas]: 11 trin
Video: How to use AC 80-260V 100A PZEM-061 Active Power Meter 2024, November
Anonim
Sådan bruges GY511 -modul med Arduino [Lav et digitalt kompas]
Sådan bruges GY511 -modul med Arduino [Lav et digitalt kompas]

Oversigt

I nogle elektronikprojekter skal vi til enhver tid kende den geografiske placering og udføre en bestemt operation i overensstemmelse hermed. I denne vejledning lærer du, hvordan du bruger LSM303DLHC GY-511 kompasmodulet med Arduino til at lave et digitalt kompas. Først lærer du om dette modul og hvordan det fungerer, og derefter vil du se, hvordan du tilslutter LSM303DLHC GY-511-modulet til Arduino.

Hvad du vil lære

  • Hvilket kompasmodul er?
  • Kompasmodul og Arduino -interface.
  • Lav et digitalt kompas med GY-511-modulet og Arduino.

Trin 1: Generel information om kompasmodul

Generel information om kompasmodul
Generel information om kompasmodul

GY-511-modulet indeholder et 3-akset accelerometer og et 3-akset magnetometer. Denne sensor kan måle den lineære acceleration ved fulde skalaer på ± 2 g / ± 4 g / ± 8 g / ± 16 g og magnetfelter i fuld skala på ± 1,3 / ± 1,9 / ± 2,5 / ± 4,0 / ± 4,7 / ± 5,6 / ± 8,1 Gauss.

Når dette modul placeres i et magnetfelt, fremkalder en excitationsstrøm i henhold til Lorentz -loven i sin mikroskopiske spole. Kompasmodulet konverterer denne strøm til differentialspændingen for hver koordinatretning. Ved hjælp af disse spændinger kan du beregne magnetfeltet i hver retning og opnå den geografiske position.

Tip

QMC5883L er et andet almindeligt brugt kompasmodul. Dette modul, der har en lignende struktur og anvendelse som LMS303 -modulet, er lidt anderledes i ydelse. Så hvis du laver projekterne, skal du være forsigtig med din modultype. Hvis dit modul er QMC5882L, skal du bruge det relevante bibliotek og koder, der også er inkluderet i selvstudiet.

Trin 2: Påkrævede komponenter

Påkrævede komponenter
Påkrævede komponenter

Hardware -komponenter

Arduino UNO R3 *1

GY-511 3-akset accelerometer + magnetometer *1

TowerPro Servomotor SG-90 *1

1602 LCD -modul *1

Jumpere *1

Software -apps

Arduino IDE

Trin 3: Grænseflade GY-511 kompasmodul med Arduino

Grænseflade GY-511 kompasmodul med Arduino
Grænseflade GY-511 kompasmodul med Arduino
Grænseflade GY-511 kompasmodul med Arduino
Grænseflade GY-511 kompasmodul med Arduino

GY-511 kompasmodul har 8 ben, men du har kun brug for 4 af dem for at kommunikere med Arduino. Dette modul kommunikerer med Arduino ved hjælp af I2C protokol, så tilslut SDA (I2C output) og SCK (I2C clock input) benene på modulet til I2C benene på Arduino kortet.

Bemærk Som du kan se, har vi brugt GY-511-modulet i dette projekt. Men du kan bruge denne instruktion til opsætning af andre LMS303 kompasmoduler.

Trin 4: Kalibrering af GY-511 kompasmodul

For at navigere skal du først kalibrere modulet, hvilket betyder at indstille måleområdet fra 0 til 360 grader. For at gøre dette skal du slutte modulet til Arduino som vist herunder og uploade følgende kode på dit bord. Efter udførelse af koden kan du se minimums- og maksimumværdierne for måleområdet for X-, Y- og Z -aksen i det serielle monitorvindue. Du skal bruge disse tal i den næste del, så skriv dem ned.

Trin 5: Kredsløb

Kredsløb
Kredsløb

Trin 6: Kode

I denne kode har du brug for Wire.h -biblioteket til I2C -kommunikation og LMS303.h -biblioteket til kompasmodulet. Du kan downloade disse biblioteker fra følgende links.

LMS303.h Bibliotek

Wire.h bibliotek

Bemærk Hvis du bruger QMC5883, skal du bruge følgende bibliotek:

MechaQMC5883L.h

Her forklarer vi koden til LMS303, men du kan også downloade koderne til QMC -modulet.

Lad os se nogle af de nye funktioner:

compass.enableDefault ();

Modulinitialisering

kompas.læse ();

Læsning af kompassmodulets outputværdier

running_min.z = min (running_min.z, compass.m.z); running_max.x = max (running_max.x, kompas.m.x);

Bestemmelse af minimums- og maksimumværdier for måleområde ved at sammenligne måleværdierne.

Trin 7: Lav et digitalt kompas

Efter kalibrering af modulet skal vi bygge et kompas ved at forbinde en servomotor til modulet. Så servoindikatoren altid viser os den nordlige retning, ligesom den røde pil på kompasset. For at gøre dette beregner kompassmodulet først den geografiske retning først og sender den til Arduino, og derefter beregner du ved hjælp af en passende koefficient den vinkel, servomotoren skal rotere, så dens indikator peger mod det magnetiske nord. Til sidst anvender vi den vinkel på servomotoren.

Trin 8: Kredsløb

Kredsløb
Kredsløb

Trin 9: Kode

Kode
Kode

Til denne del har du også brug for Servo.h -biblioteket, der er installeret på din Arduino -software som standard.

Lad os se nogle af de nye funktioner:

Servo Servo1;

Modulinitialisering

kompas.læse ();

Introduktion til servomotorobjektet

Servo1.attach (servoPin); compass.init (); compass.enableDefault ();

Initialisering af kompasmodul og servomotor

Servo1.attach () -argumentet er nummeret på den pin, der er forbundet til servomotoren.

compass.m_min = (LSM303:: vektor) { -32767, -32767, -32767}; compass.m_max = (LSM303:: vektor) { +32767, +32767, +32767};

Ved hjælp af disse linjer definerer du minimums- og maksimumværdierne for måling af det område, der er opnået i den foregående del.

float heading = compass.heading ((LSM303:: vektor) {0, 0, 1});

Funktionen heading () returnerer vinklen mellem koordinataksen og en fast akse. Du kan definere den faste akse med en vektor i funktionsargumentet. For eksempel her, ved at definere (LSM303:: vektor) {0, 0, 1}, betragtes Z -aksen som en konstant akse.

Servo1.skriv (overskrift);

Servo1.write () -funktionen anvender kompasmodulets læseværdi på servomotoren.

Bemærk Bemærk, at servomotoren kan have et magnetfelt, så det er bedre at placere servomotoren i en passende afstand fra kompasmodulet, så det ikke får kompasmodulet til at afvige.

Anbefalede: