- Erforderliche Komponenten:
- MPU6050 Gyro Sensor:
- Beschreibung:
- Schaltplan und Erklärung:
- Programmiererklärung
Der MPU6050- Sensor hat viele Funktionen über den einzelnen Chip. Es besteht aus einem MEMS-Beschleunigungsmesser, einem MEMS-Kreisel und einem Temperatursensor. Dieses Modul ist sehr genau, wenn analoge Werte in digitale konvertiert werden, da es für jeden Kanal eine 16-Bit-Hardware für analoge und digitale Konverter enthält. Dieses Modul kann gleichzeitig x-, y- und z-Kanäle erfassen. Es verfügt über eine I2C-Schnittstelle zur Kommunikation mit dem Host-Controller. Dieses MPU6050-Modul ist ein kompakter Chip mit Beschleunigungsmesser und Kreisel. Dies ist ein sehr nützliches Gerät für viele Anwendungen wie Drohnen, Roboter und Bewegungssensoren. Es wird auch Gyroskop oder dreiachsiger Beschleunigungsmesser genannt.
Heute in diesem Artikel werden wir dieses MPU6050 Gyroskop mit Arduino verbinden und die Werte über 16x2 LCD anzeigen.
Erforderliche Komponenten:
- Arduino Uno
- MPU-6050
- 10K POT
- Überbrückungskabel
- Steckbrett
- USB-Kabel
- Energieversorgung
MPU6050 Gyro Sensor:
MPU-6050 ist ein 8-poliger 6-Achsen-Kreisel und Beschleunigungsmesser in einem einzigen Chip. Dieses Modul arbeitet standardmäßig mit der seriellen I2C-Kommunikation, kann jedoch durch Konfigurieren des Registers für die SPI-Schnittstelle konfiguriert werden. Für I2C hat dies SDA- und SCL-Leitungen. Fast alle Pins sind multifunktional, aber hier fahren wir nur mit I2C-Modus-Pins fort.
Pin-Konfiguration:
Vcc: - Dieser Pin wird zur Stromversorgung des MPU6050-Moduls in Bezug auf Masse verwendet
GND: - Dies ist der Erdungsstift
SDA: - Der SDA-Pin wird für Daten zwischen Controller und mpu6050-Modul verwendet
SCL: - Der SCL-Pin wird für die Takteingabe verwendet
XDA: - Dies ist die Sensor I2C SDA-Datenleitung zum Konfigurieren und Lesen von externen Sensoren ((optional) wird in unserem Fall nicht verwendet).
XCL: - Dies ist die Sensor-I2C-SCL-Taktleitung zum Konfigurieren und Lesen von externen Sensoren ((optional) wird in unserem Fall nicht verwendet).
ADO: - I2C-Slave-Adress-LSB (in unserem Fall nicht anwendbar)
INT: - Interrupt-Pin zur Anzeige der Datenbereitschaft.
Beschreibung:
In diesem Artikel zeigen wir Temperatur-, Kreisel- und Beschleunigungsmesserwerte über LCD mit MPU6050 mit Arduino. Dieses Modul gibt uns Zeilenwerte und normalisierte Werte in der Ausgabe an, aber die Zeilenwerte sind nicht stabil. Daher werden hier normalisierte Werte über dem LCD angezeigt. Wenn Sie nur den Wert des Beschleunigungsmessers möchten, können Sie den Beschleunigungsmesser ADXL335 auch mit Arduino verwenden.
In diesem Projekt haben wir zuerst einen Temperaturwert über dem LCD angezeigt und nach 10 Sekunden zeigen wir Kreiselwerte und nach 10 Sekunden haben wir Beschleunigungsmesser-Messwerte, wie in den folgenden Bildern gezeigt:
Schaltplan und Erklärung:
Das Schaltbild für die Verbindung der MPU6050 mit Arduino ist hier sehr einfach. Wir haben ein LCD und eine MPU6050 verwendet. Und hier haben wir ein Laptop-USB-Netzteil verwendet. Ein 10k-Topf dient zur Steuerung der Helligkeit des LCD. In Verbindung mit der MPU6050 haben wir 5 Verbindungen hergestellt, bei denen wir die 3,3-V-Stromversorgung und die Erdung der MPU6050 mit der 3,3-V-Erdung und der Erdung von Arduino verbunden haben. Die SCL- und SDA-Pins der MPU6050 sind mit den A4- und A5-Pins von Arduino verbunden. Der INT-Pin der MPU6050 ist mit dem Interrupt 0 von Arduino (D2) verbunden. Die RS, RW und EN des LCD sind direkt mit 8, gnd und 9 von Arduino verbunden. Der Daten-Pin ist direkt mit den digitalen Pins 10, 11, 12 und 13 verbunden.
Programmiererklärung
Der Programmierteil ist auch für dieses Projekt einfach. Hier haben wir diese MPU6050-Bibliothek verwendet, um sie mit Arduino zu verbinden. Zunächst müssen wir die MPU6050-Bibliothek von GitHub herunterladen und in Arduino IDE installieren.
Danach finden wir im Beispiel Beispielcodes. Der Benutzer kann diesen Code testen, indem er ihn direkt auf Arduino hochlädt, und Werte über den seriellen Monitor anzeigen. Oder der Benutzer kann unseren am Ende des Artikels angegebenen Code verwenden, um Werte auch über LCD und seriellen Monitor anzuzeigen.
In die Codierung haben wir einige erforderliche Bibliotheken wie MPU6050 und LCD aufgenommen.
#einschließen
In der Setup- Funktion initialisieren wir beide Geräte und schreiben eine Begrüßungsnachricht über das LCD
void setup () {lcd.begin (16,2); lcd.createChar (0, Grad); Serial.begin (9600); Serial.println ("MPU6050 initialisieren"); while (! mpu.begin (MPU6050_SCALE_2000DPS, MPU6050_RANGE_2G)) {lcd.clear (); lcd.print ("Gerät nicht gefunden"); Serial.println ("Es konnte kein gültiger MPU6050-Sensor gefunden werden, Verkabelung prüfen!"); Verzögerung (500); } count = 0; mpu.calibrateGyro (); mpu.setThreshold (3); In der Schleifenfunktion haben wir alle 10 Sekunden drei Funktionen aufgerufen, um die Temperatur, den Kreisel und den Beschleunigungsmesser auf dem LCD anzuzeigen. Diese drei Funktionen sind tempShow, gyroShow und accelShow . Sie können diese Funktionen im vollständigen Arduino-Code überprüfen, der am Ende dieses Artikels angegeben ist:
void loop () {lcd.clear (); lcd.print ("Temperatur"); langes st = millis (); Serial.println ("Temperatur"); während (millis ()
Der Kreisel MPU6050 und der Beschleunigungsmesser werden beide verwendet, um die Position und Ausrichtung eines Geräts zu erfassen. Gyro verwendet die Erdgravitation, um die Positionen der x-, y- und z-Achse zu bestimmen, und der Beschleunigungsmesser erkennt basierend auf der Änderungsrate der Bewegung. Wir haben den Beschleunigungsmesser bereits mit Arduino in vielen unserer Projekte verwendet, wie zum Beispiel:
- Handgestengesteuerter Roboter auf Beschleunigungsmesserbasis
- Arduino-basiertes Fahrzeugunfall-Warnsystem
- Erdbebenmelder Alarm mit Arduino