Zum Hauptinhalt springen

Schnellstart

Dieses Board misst die Beschleunigung auf drei Achsen. Verbinden Sie es über I2C, installieren Sie die Bibliothek für Ihre Umgebung und führen Sie das Beispiel für die Grundmessungen aus, um die Beschleunigung in X-, Y- und Z-Richtung in g zu sehen.

Sie programmieren den Controller, der an dieses Breakout angeschlossen ist. Das Breakout selbst wird nicht geflasht.

1. Breakout-Board anschließen​

Verbinden Sie das Breakout mit den 3,3-V-, GND- und I2C-Pins Ihres Controllers. Wenn der Controller einen Qwiic Connector hat, genügt ein Qwiic-Kabel von diesem zu einem der beiden Qwiic Connector am Breakout. Andernfalls löten Sie die mitgelieferten Stiftleisten an und verdrahten sie wie in dieser Tabelle für ein NULA DeepSleep gezeigt:

NULA DeepSleepSoldered Ultra-Low-Power Accelerometer BMA400 Breakout
GNDGND
3V33V3
IO8SDA
IO9SCL
Schaltplan: das NULA DeepSleep verbunden mit dem Soldered Ultra-Low-Power Accelerometer BMA400 Breakout: GND an GND, 3V3 an 3V3, IO8 an SDA, IO9 an SCL

Beim NULA DeepSleep verwendet Wire.begin() ohne Argumente IO8 als SDA und IO9 als SCL, also die Pins in dieser Tabelle. Verwenden Sie bei einem anderen Controller dessen Standard-I2C-Pins.

Das Board hat keinen Regler und keinen Pegelwandler: 3V3 versorgt den BMA400 direkt und legt seinen Logikpegel fest. Legen Sie 1,72 V bis 3,6 V an und verwenden Sie einen Controller mit 3,3-V-Logik. Schließen Sie 3V3 oder einen Signalpin niemals an 5 V an.

2. Bibliothek installieren​

Laden Sie die Bibliothek Soldered BMA400 Accelerometer aus ihrem GitHub-Repository herunter und fügen Sie sie in der Arduino IDE als ZIP-Bibliothek hinzu.

🔗Soldered BMA400 Accelerometer

Geprüfte Arduino-Bibliothek im Commit 853ca67

→

Tipp: Download von GitHub. Klicken Sie auf der GitHub-Seite der Bibliothek auf die grüne Schaltfläche Code und wählen Sie Download ZIP. Fügen Sie die Datei dann in der Arduino IDE hinzu über Sketch → Bibliothek einbinden → .ZIP-Bibliothek hinzufügen....

3. Erstes Beispiel ausführen​

Dies ist basicReadings.ino, das einfachste Beispiel der Bibliothek. Es startet den Sensor an der Standardadresse 0x14 und gibt die Beschleunigung auf allen drei Achsen in g aus, etwa 50-mal pro Sekunde. Laden Sie es hoch und öffnen Sie dann den Serial Monitor mit 115200 Baud.

Select Board
basicReadings.ino
/**
**************************************************
*
* @file basicReadings.ino
*
* @brief Example showing how to read X, Y, Z acceleration data
* from the Soldered BMA400 Accelerometer breakout over I2C
*
* @link solde.red/333419 : Soldered BMA400 Accelerometer breakout
*
* @authors SparkFun Electronics, modified by Soldered Electronics
***************************************************/
#include <BMA400-SOLDERED.h>

// Create an instance of the BMA400 sensor
Soldered_BMA400 accelerometer;

void setup()
{
// Initialize serial for output
Serial.begin(115200);
Serial.println("BMA400 Example - Basic Readings");

// Initialize I2C bus
Wire.begin();

// Check if sensor is connected and initialize it.
// Address is optional, defaults to 0x14
while (accelerometer.begin() != BMA400_OK)
{
Serial.println("Error: BMA400 not connected, check wiring and I2C address!");
delay(1000);
}

Serial.println("BMA400 connected!");
}

void loop()
{
// Get new measurements from the sensor. This must be called before
// accessing the acceleration data, otherwise it will never update
accelerometer.getSensorData();

// Print acceleration data in g's
Serial.print("Acceleration in g's");
Serial.print("\t");
Serial.print("X: ");
Serial.print(accelerometer.data.accelX, 3);
Serial.print("\t");
Serial.print("Y: ");
Serial.print(accelerometer.data.accelY, 3);
Serial.print("\t");
Serial.print("Z: ");
Serial.println(accelerometer.data.accelZ, 3);

// Print 50x per second
delay(20);
}

4. Ergebnis prüfen​

Sobald der Sensor antwortet, zeigt der Serial Monitor zwei Zeilen und danach eine Zeile pro Messwert, etwa 50 pro Sekunde: Acceleration in g's, dann X:, Y: und Z:, jeweils die Achse in g mit drei Nachkommastellen, durch Tabulatoren getrennt. Wenn das Breakout an ein NULA DeepSleep angeschlossen ist und flach liegt, sieht der Anfang der Ausgabe so aus:

Serial MonitorAutoscrollShow timestampNewline115200 baud
Message (Enter to send message to the board)
BMA400 Example - Basic Readings
BMA400 connected!
Acceleration in g's X: 0.007 Y: -0.022 Z: 0.996
Acceleration in g's X: 0.011 Y: -0.025 Z: 1.000
Acceleration in g's X: 0.014 Y: -0.026 Z: 1.004
Acceleration in g's X: 0.016 Y: -0.013 Z: 0.994
Acceleration in g's X: 0.012 Y: -0.015 Z: 1.001

Wenn stattdessen einmal pro Sekunde Error: BMA400 not connected, check wiring and I2C address! erscheint, hat der Sensor an 0x14 nicht geantwortet.

5. Wenn es nicht funktioniert​

Fahren Sie mit der Fehlerbehebung fort und wiederholen Sie dieses kleinste Beispiel nach jeder Änderung.