Raspberry Pi - ADXL345 3-axlig Accelerometer Java Tutorial (3 / 4 steg)
Steg 3: kod:
Java-kod för ADXL345 kan hämtas från vår github repository-ControlEverythingCommunity
Här är länken för samma:
https://github.com/ControlEverythingCommunity/ADXL...
Databladet för ADXL345 kan hittas här:
https://s3.amazonaws.com/controleverything.Media/c...
Vi har använt pi4j bibliotek för java-kod, stegen för att installera pi4j på raspberry pi som beskrivs här:
Du kan också kopiera koden från här, det ges enligt följande:
Distribueras med en fri vilja licens.
Använda det något sätt du vill, vinst eller gratis, förutsatt att den passar i licenser av dess tillhörande arbeten.
ADXL345
Denna kod är utformad att fungera med ADXL345_I2CS I2C Mini modulen tillgänglig från ControlEverything.com.
https://www.controleverything.com/content/Accelor...
import com.pi4j.io.i2c.I2CBus;
import com.pi4j.io.i2c.I2CDevice;
import com.pi4j.io.i2c.I2CFactory;
import java.io.IOException;
allmän klass ADXL345
{
public static void main (String args[]) kastar undantag
{
Skapa I2C bussen
I2CBus buss = I2CFactory.getInstance(I2CBus.BUS_1);
Få I2C enhet, I2C adress är 0x53(83)
I2CDevice device = Bus.getDevice(0x53);
Välj bandbredd hastighet register
Normal-läge, utgång data klassar = 100 Hz
Device.write (0x2C, (byte) 0x0A);
Välj Power control register
Inaktivera Auto-sömn
Device.write (0x2D, (byte) 0x08);
Välj Data format register
Självtest funktionshindrade, 4-wire interface, Full upplösning, intervall = +/-2g
Device.write (0x31, (byte) 0x08);
Thread.Sleep(500);
Läst 6 byte data
xAccl lsb, xAccl msb, yAccl lsb, yAccl msb, zAccl lsb, zAccl msb
byte [] data = nya byte [6].
data [0] = (byte)device.read(0x32);
data [1] = (byte)device.read(0x33);
data [2] = (byte)device.read(0x34);
data [3] = (byte)device.read(0x35);
data [4] = (byte)device.read(0x36);
data [5] = (byte)device.read(0x37);
Konvertera data till 10-bitar
int xAccl = ((data [1] & 0x03) * 256 + (data [0] & 0xFF));
IF(xAccl > 511)
{
xAccl-= 1024;
}
int yAccl = ((data [3] & 0x03) * 256 + (data [2] & 0xFF));
IF(yAccl > 511)
{
yAccl-= 1024;
}
int zAccl = ((data [5] & 0x03) * 256 + (data [4] & 0xFF));
IF(zAccl > 511)
{
zAccl-= 1024;
}
Utdata till skärm
System.out.printf ("Acceleration i x-axeln: %d %n", xAccl);
System.out.printf ("Acceleration i y-axeln: %d %n", yAccl);
System.out.printf ("Acceleration i z-axeln: %d %n", zAccl);
}
}