Fehlerbehebung
Beginnen Sie mit dem Symptom, das Sie beobachten können. Nehmen Sie jeweils nur eine Änderung vor und wiederholen Sie dann das kleinste Beispiel aus der Schnellstart-Anleitung.
| Symptom | Prüfen | Lösung |
|---|---|---|
Arduino: Error: BMA400 not connected, check wiring and I2C address! wiederholt sich jede Sekunde | Stromversorgung, Masse, SDA und SCL erreichen das Breakout, und die im Code verwendete Adresse stimmt mit dem Board überein | Stecken Sie das Qwiic-Kabel neu auf oder prüfen Sie die Verdrahtung am Header. begin() verwendet standardmäßig 0x14; wenn Sie den Adress-Jumper JP1 geändert haben oder ADDR auf High legen, rufen Sie begin(BMA400_I2C_ADDRESS_SECONDARY) für 0x15 auf. |
MicroPython: BMA400 not responding on address 0x14 | Die Pins in I2C(0, scl=Pin(9), sda=Pin(8)) sind die Pins, die Sie angeschlossen haben, und die Adresse stimmt mit dem Board überein | Ändern Sie die Pins scl und sda entsprechend Ihrer Verdrahtung. Für ein auf 0x15 eingestelltes Board übergeben Sie address=BMA400_I2C_ADDRESS_SDO_HIGH an BMA400(). |
MicroPython: BMA400 not found, chip ID 0x.. was read instead of 0x90 | Ein anderer Chip antwortet unter dieser Adresse | Stellen Sie sicher, dass kein anderes Gerät am Bus dieselbe Adresse verwendet, oder stellen Sie das Breakout auf die andere Adresse um. |
MicroPython: Board not recognized, enter I2C pins manually | BMA400() wurde ohne i2c-Objekt auf einem Board erstellt, das die Bibliothek nicht erkennt: Sie erkennt nur Firmware, die sich als esp32, esp8266 oder als eine ältere Soldered-Board-Firmware meldet | Erstellen Sie den Bus selbst mit I2C(...) und übergeben Sie ihn an BMA400(i2c), wie es die Beispiele tun. |
Das Board antwortet weder unter 0x14 noch unter 0x15 oder nur manchmal | Der Adress-Jumper JP1: ADDR darf niemals offen (floating) bleiben | Stellen Sie eine Seite von JP1 wieder her oder legen Sie den Pin ADDR von Ihrem Controller aus auf einen festen Pegel. Siehe Jumper. |
| Das Bewegungs- oder Schrittbeispiel gibt nach dem Start nichts aus | INT1 ist mit dem Controller-Pin verbunden, den der Code nennt: 2 in den Arduino-Beispielen, 5 in den MicroPython-Beispielen, und dieser Pin unterstützt Interrupts | Verbinden Sie INT1 mit diesem Pin oder ändern Sie interruptPin (Arduino) bzw. INT1_PIN (MicroPython) auf den von Ihnen verwendeten Pin. |
| Der Schrittzähler zählt nie | Der Interrupt des Schrittzählers ist aktiviert | Behalten Sie enableInterrupt(BMA400_STEP_COUNTER_INT_EN, true) (Arduino) bzw. enable_interrupt(BMA400_STEP_COUNTER_INT_EN, True) (MicroPython) in Ihrem Code bei; ohne diesen Aufruf zählt der Schrittzähler nicht, auch wenn Sie den Pin nicht verwenden. |
| Das Board wurde an 5 V angeschlossen | Die Versorgung an 3V3 | Das absolute Maximum des BMA400 beträgt 4 V, und das Board hat keinen Spannungsregler. Versorgen Sie es ausschließlich mit 1,72 V bis 3,6 V. |
Immer noch blockiert?
Fragen Sie im Community-Forum nach. Geben Sie Folgendes an, damit jemand das Problem nachvollziehen kann:
- Produktname und SKU: Soldered Ultra-Low-Power Accelerometer BMA400 Breakout,
333419 - Controller-Board und Software-Umgebung
- Version der Bibliothek bzw. des Moduls
- vollständiger Fehlertext oder unerwartete Ausgabe
- Anschlussart und Stromquelle
- ein deutliches Foto der Verdrahtung