Brzi početak
Ova pločica mjeri akceleraciju na tri osi. Povežite je preko I2C sučelja, instalirajte biblioteku za svoje okruženje i pokrenite njezin primjer osnovnih očitanja kako biste vidjeli akceleraciju po osima X, Y i Z u jedinici g.
Programirate kontroler spojen na ovu pločicu. Sama pločica se ne programira.
- Arduino
- MicroPython
1. Povežite pločicu
Povežite pločicu s pinovima 3,3 V, GND i I2C svog kontrolera. Ako kontroler ima Qwiic konektor, to možete učiniti Qwiic kabelom od njega do bilo kojeg Qwiic konektora na pločici. Inače zalemite priložene pin headere i spojite ih kako prikazuje ova tablica za NULA DeepSleep:
| NULA DeepSleep | Soldered Ultra-Low-Power Accelerometer BMA400 Breakout |
|---|---|
| GND | GND |
| 3V3 | 3V3 |
| IO8 | SDA |
| IO9 | SCL |
Na pločici NULA DeepSleep Wire.begin() bez argumenata koristi IO8 kao SDA i IO9
kao SCL, odnosno pinove iz ove tablice. Na drugom kontroleru koristite njegove zadane I2C pinove.
Pločica nema regulator ni pretvarač razine: 3V3 izravno napaja BMA400
i određuje njegovu logičku razinu. Napajajte ga naponom od 1,72 V do 3,6 V i koristite
kontroler s logikom od 3,3 V. Nikada ne spajajte 3V3 ni signalni pin na 5 V.
2. Instalirajte biblioteku
Preuzmite biblioteku Soldered BMA400 Accelerometer s njezina GitHub repozitorija i dodajte je u Arduino IDE kao ZIP biblioteku.
🔗Soldered BMA400 Accelerometer
Provjerena Arduino biblioteka na commitu 853ca67
Savjet: preuzimanje s GitHuba. Na GitHub stranici biblioteke kliknite zeleni gumb Code i odaberite Download ZIP, zatim je dodajte u Arduino IDE putem Sketch → Include Library → Add .ZIP Library....
3. Pokrenite prvi primjer
Ovo je basicReadings.ino, najjednostavniji primjer iz biblioteke. Pokreće
senzor na zadanoj adresi 0x14 i ispisuje akceleraciju na sve tri
osi u jedinici g, otprilike 50 puta u sekundi. Učitajte ga, zatim otvorite Serial Monitor
na 115200 baud.
/**
**************************************************
*
* @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. Provjerite rezultat
Kad senzor odgovori, Serial Monitor prikazuje dva retka, zatim jedan redak po
očitanju, otprilike 50 u sekundi: Acceleration in g's, zatim X:, Y: i Z:,
svaka os u jedinici g s tri decimale, odvojene tabulatorima. Kad je pločica spojena
na NULA DeepSleep i leži ravno, početak ispisa izgleda ovako:
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
Ako umjesto toga svake sekunde vidite Error: BMA400 not connected, check wiring and I2C address!,
senzor nije odgovorio na adresi 0x14.
5. Ako ne radi
Nastavite s poglavljem Rješavanje problema i nakon svake promjene ponovno pokrenite ovaj najmanji primjer.
1. Povežite pločicu
Povežite pločicu s pinovima 3,3 V, GND i I2C svog kontrolera. Ako
kontroler ima Qwiic konektor, to možete učiniti Qwiic kabelom od njega do bilo kojeg Qwiic
konektora na pločici. Inače zalemite priložene pin headere
i spojite ih kako prikazuje ova tablica za NULA DeepSleep, pločicu ESP32-S3 s podrškom za
MicroPython. Njezini IO8 i IO9 su GPIO 8 i GPIO 9, a MicroPythonovi
Pin(8) i Pin(9) su ti GPIO brojevi. Primjer u nastavku koristi GPIO 8 za
SDA i GPIO 9 za SCL na I2C sabirnici 0; na drugoj pločici promijenite ih u pinove
koje ste spojili.
| NULA DeepSleep | Soldered Ultra-Low-Power Accelerometer BMA400 Breakout |
|---|---|
| GND | GND |
| 3V3 | 3V3 |
| IO8 | SDA |
| IO9 | SCL |
Pločica nema regulator ni pretvarač razine: 3V3 izravno napaja BMA400
i određuje njegovu logičku razinu. Napajajte ga naponom od 1,72 V do 3,6 V i koristite
kontroler s logikom od 3,3 V. Nikada ne spajajte 3V3 ni signalni pin na 5 V.
2. Instalirajte modul
Koristite mim ili, nakon instalacije paketa mpremote, instalirajte biblioteku na svoju pločicu ovom naredbom:
mpremote mip install github:SolderedElectronics/Soldered-BMA400-MicroPython-Library
Na Windowsima:
python -m mpremote mip install github:SolderedElectronics/Soldered-BMA400-MicroPython-Library
🔗Soldered BMA400 MicroPython library
Provjereni MicroPython modul na commitu 484a5be
Savjet: preuzimanje s GitHuba. Bez mpremote otvorite .py
datoteku modula na GitHubu i kliknite Download raw file, zatim je otvorite u Thonnyju i koristite
File → Save as... → MicroPython device kako biste je kopirali na pločicu.
3. Pokrenite prvi primjer
Ovo je bma400-basicReadings.py. Stvara I2C sabirnicu, pokreće senzor na
zadanoj adresi 0x14 i ispisuje akceleraciju na sve tri osi u jedinici g,
otprilike svakih 20 ms. Promijenite pinove scl i sda u retku I2C(...) u
pinove koje ste spojili, zatim ga pokrenite na svojoj pločici.
# FILE: bma400-basicReadings.py
# AUTHOR: Soldered Electronics
# BRIEF: Reads X, Y, Z acceleration from the BMA400 sensor over I2C
# WORKS WITH: BMA400 Accelerometer breakout: www.solde.red/333419
# LAST UPDATED: 2026-09-17
from bma400 import BMA400, BMA400_OK
from machine import I2C, Pin
import time
# Change these to match how your board wires I2C
i2c = I2C(0, scl=Pin(9), sda=Pin(8))
sensor = BMA400(i2c)
if sensor.status != BMA400_OK:
raise Exception("Failed to initialize BMA400: " + sensor.status_string())
print("BMA400 connected!")
while True:
if sensor.get_sensor_data() == BMA400_OK:
print(
"X: {:.3f} g\tY: {:.3f} g\tZ: {:.3f} g".format(
sensor.data.accel_x, sensor.data.accel_y, sensor.data.accel_z
)
)
else:
print("Failed to read acceleration:", sensor.status_string())
time.sleep_ms(20)
🔗Otvorite cjeloviti primjer
bma400-basicReadings.py na commitu 484a5be
4. Provjerite rezultat
Kad senzor odgovori, shell prikazuje BMA400 connected!, zatim jedan redak po
očitanju: X:, Y: i Z:, svaka u jedinici g s tri decimale, nakon čega slijedi g,
odvojene tabulatorima. Kad je pločica spojena na NULA DeepSleep kao gore i
leži ravno, početak ispisa izgleda ovako:
BMA400 connected!
X: 0.008 g Y: -0.028 g Z: 1.003 g
X: 0.020 g Y: -0.018 g Z: 1.006 g
X: 0.018 g Y: -0.009 g Z: 1.003 g
X: 0.014 g Y: -0.018 g Z: 1.009 g
X: 0.008 g Y: -0.021 g Z: 1.001 g
Ako senzor ne odgovori, skripta se zaustavlja s iznimkom koja navodi
adresu koju je pokušala koristiti, na primjer BMA400 not responding on address 0x14.
5. Ako ne radi
Nastavite s poglavljem Rješavanje problema i nakon svake promjene ponovno pokrenite ovaj najmanji primjer.