Der Hinweis auf 37 Sensoren und Aktoren ist im Internet weit verbreitet. Tatsächlich muss es mehr als 37 Sensormodule geben, die mit Arduino kompatibel sind. Angesichts der Tatsache, dass ich einige Sensor- und Aktuatormodule zur Hand habe, werde ich gemäß dem Konzept der Ausübung wahren Wissens (das durchgeführt werden muss) zum Zwecke des Lernens und der Kommunikation eine Reihe von Experimenten nacheinander ausprobieren Eins, unabhängig vom Erfolg (das Programm läuft durch) oder nicht, Sie werden aufgezeichnet – kleine Fortschritte oder unlösbare Probleme, in der Hoffnung, andere zu inspirieren.
[Arduino] 168 Experimente mit Sensormodulserien (Datencode + Simulationsprogrammierung + Grafikprogrammierung)
Experiment 108: Elektronisches Gyroskop mit dreiachsigem Beschleunigungsmodul MPU-6050 6DOF GY-521-Sensor (dreiachsiges Gyroskop + dreiachsige Beschleunigung)
Elektrischer Schaltplan des Moduls
Experimenteller Schaltplan
[Arduino] 168 Experimente mit Sensormodulserien (Datencode + Simulationsprogrammierung + Grafikprogrammierung)
Experiment 108: Elektronisches Gyroskop mit dreiachsigem Beschleunigungsmodul MPU-6050 6DOF GY-521-Sensor (dreiachsiges Gyroskop + dreiachsige Beschleunigung)
Projekt 2: Zeigen Sie die sechsachsige Kurve an
Experimentelle Verkabelung:
Arduino------MPU 6050
5V-------------VCC
GND-----------GND
A4-----------SDA IIC Datenkabel
A5-----------SCL IIC Taktleitung
D2-----------INT Interrupt-Pin
/*
【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
实验一百零八:MPU-6050模块 三轴加速度 电子陀螺仪6DOF GY-521传感器(三轴陀螺仪 + 三轴加速度)
项目之二:显示六轴曲线
实验接线:
Arduino------MPU 6050
5V-------------VCC
GND-----------GND
A4-----------SDA IIC 数据线
A5-----------SCL IIC 时钟线
D2-----------INT 中断脚
*/
#include "I2Cdev.h"
#include "MPU6050.h"
#if I2CDEV_IMPLEMENTATION == I2CDEV_ARDUINO_WIRE
#include "Wire.h"
#endif
MPU6050 accelgyro;
int16_t ax, ay, az;
int16_t gx, gy, gz;
#define OUTPUT_READABLE_ACCELGYRO
#define LED_PIN 13
bool blinkState = false;
void setup() {
#if I2CDEV_IMPLEMENTATION == I2CDEV_ARDUINO_WIRE
Wire.begin();
#elif I2CDEV_IMPLEMENTATION == I2CDEV_BUILTIN_FASTWIRE
Fastwire::setup(400, true);
#endif
Serial.begin(38400);
Serial.println("Initializing I2C devices...");
accelgyro.initialize();
Serial.println("Testing device connections...");
Serial.println(accelgyro.testConnection() ? "MPU6050 connection successful" : "MPU6050 connection failed");
pinMode(LED_PIN, OUTPUT);
}
void loop() {
accelgyro.getMotion6(&ax, &ay, &az, &gx, &gy, &gz);
#ifdef OUTPUT_READABLE_ACCELGYRO
Serial.print("a/g:\t");
Serial.print(ax); Serial.print("\t");
Serial.print(ay); Serial.print("\t");
Serial.print(az); Serial.print("\t");
Serial.print(gx); Serial.print("\t");
Serial.print(gy); Serial.print("\t");
Serial.println(gz);
#endif
#ifdef OUTPUT_BINARY_ACCELGYRO
Serial.write((uint8_t)(ax >> 8)); Serial.write((uint8_t)(ax & 0xFF));
Serial.write((uint8_t)(ay >> 8)); Serial.write((uint8_t)(ay & 0xFF));
Serial.write((uint8_t)(az >> 8)); Serial.write((uint8_t)(az & 0xFF));
Serial.write((uint8_t)(gx >> 8)); Serial.write((uint8_t)(gx & 0xFF));
Serial.write((uint8_t)(gy >> 8)); Serial.write((uint8_t)(gy & 0xFF));
Serial.write((uint8_t)(gz >> 8)); Serial.write((uint8_t)(gz & 0xFF));
#endif
blinkState = !blinkState;
digitalWrite(LED_PIN, blinkState);
delay(50);
}
Experimentelle Rückkehr zur seriellen Schnittstelle
Öffnen Sie die Arduino IDE – Tools – Serial Port Plotter und sehen Sie sich die experimentelle Wellenform an.
Der Rückgabestatus des experimentellen Serial Port Plotters
Experimentelles Szenendiagramm
Experimentelle Open-Source-Grafikprogrammierung (Mind+, Programmieren während des Lernens)
Experimentelle Rückkehr zur seriellen Schnittstelle