Stap 3: Code:
De Java-code voor MMA8452Q kan worden gedownload van onze github archief-ControlEverythingCommunity
Hier is de link voor hetzelfde:
https://github.com/ControlEverythingCommunity/MMA8...
Het gegevensblad van MMA8452Q kan hier worden gevonden:
https://S3.amazonaws.com/controleverything.Media/c...
We hebben pi4j bibliotheek voor java code gebruikt, de stappen te installeren pi4j op de raspberry pi is hier beschreven:
U kunt ook de code kopiëren vanaf hier, het wordt als volgt gegeven:
Gedistribueerd met een licentie van de vrije wil.
Gebruik het elke manier wilt u, op de winst of het gratis, mits het past in de licenties van de bijbehorende werken.
MMA8452Q
Deze code is ontworpen om te werken met de MMA8452Q_I2CS I2C Mini Module beschikbaar vanaf ControlEverything.com.
https://www.controleverything.com/content/Accelor...
importeren van com.pi4j.io.i2c.I2CBus;
importeren van com.pi4j.io.i2c.I2CDevice;
importeren van com.pi4j.io.i2c.I2CFactory;
importeren van java.io.IOException;
openbare klasse MMA8452Q
{
openbare statische nietige leiding (Koord args[]) gooit uitzondering
{
I2C bus maken
I2CBus bus = I2CFactory.getInstance(I2CBus.BUS_1);
Krijg I2C apparaat, MMA8452Q I2C adres is 0x1C(28)
I2CDevice apparaat = bus.getDevice(0x1C);
Standby-opdracht verzenden
Device.write (0x2A, (byte) 0x00);
Actieve opdracht verzenden
Device.write (0x2A, (byte) 0x01);
Bereik instellen t/m +/-2g
Device.write (0x0E, (byte) 0x00);
Thread.Sleep(500);
7 bytes aan gegevens van adres 0x00(0) leest
Status, X msb, X lsb, msb Y, Y lsb, msb Z, Z lsb
[] bytegegevens = nieuwe byte [7];
Device.Read (0x00, gegevens, 0, 7);
De waarden converteren
int. xAccl = (((gegevens [1] & 0xFF) * 256) + (gegevens [2] & 0xFF)) / 16;
Als (xAccl > 2047)
{
xAccl = xAccl - 4096;
}
int. yAccl = (((gegevens [3] & 0xFF) * 256) + (gegevens [4] & 0xFF)) / 16;
Als (yAccl > 2047)
{
yAccl = yAccl - 4096;
}
int. zAccl = (((gegevens [5] & 0xFF) * 256) + (gegevens [6] & 0xFF)) / 16;
Als (zAccl > 2047)
{
zAccl = zAccl - 4096;
}
Uitvoergegevens naar scherm
System.out.printf ("x-as: %d %n", xAccl);
System.out.printf ("y-as: %d %n", yAccl);
System.out.printf ("z-as: %d %n", zAccl);
}
}