Étape 3: Code :
Le code java pour ADXL345 peut être téléchargé depuis notre dépôt github-ControlEverythingCommunity
Voici le lien pour la même chose :
https://github.com/ControlEverythingCommunity/ADXL...
Le datasheet du ADXL345 peut être trouvé ici :
https://S3.amazonaws.com/controleverything.Media/c...
Nous avons utilisé pi4j bibliothèque de code java, les étapes pour installer pi4j sur pi framboise est décrit ici :
Vous pouvez également copier le code d’ici, il est affecté comme suit :
Distribué avec une licence libre-arbitre.
Utilisez-le toute façon vous voulez, Profitez ou libre, autant il s’intègre dans les licences de ses ouvrages connexes.
ADXL345
Copiez le code suivant est conçu pour fonctionner avec le Module ADXL345_I2CS I2C Mini, disponible de 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 ;
public class ADXL345
{
Public Shared Sub main (chaîne args[]) lève Exception
{
Créer le bus I2C
I2CBus Bus = I2CFactory.getInstance(I2CBus.BUS_1) ;
Obtenir I2C device, périphérique I2C adresse est 0x53(83)
Dispositif de I2CDevice = Bus.getDevice(0x53) ;
Sélectionnez inscrire taux de bande passante
Mode normal, le débit de données de sortie = 100 Hz
Device.Write (0x2C, (octet) 0x0A) ;
Sélectionnez Registre de commande de puissance
Désactiver le mode auto-sleep
Device.Write (0x2D, (octet) 0 x 08) ;
Sélectionnez données format Registre
Autotest interface handicapé, 4 fils, pleine résolution, gamme = +/-2g
Device.Write (0 x 31, (octet) 0 x 08) ;
Thread.Sleep(500) ;
Lire les 6 octets de données
xAccl msb, yAccl lsb, yAccl msb, zAccl lsb, lsb xAccl, zAccl msb
données de Byte [] = new ubyte [6] ;
Data [0] = (byte)device.read(0x32) ;
données [1] = (byte)device.read(0x33) ;
données [2] = (byte)device.read(0x34) ;
données [3] = (byte)device.read(0x35) ;
données [4] = (byte)device.read(0x36) ;
données [5] = (byte)device.read(0x37) ;
Convertissez les données en 10 bits
int xAccl = ((données [1] & 0 x 03) * 256 + (data [0] & 0xFF)) ;
if(xAccl > 511)
{
xAccl-= 1024 ;
}
int yAccl = ((données [3] & 0 x 03) * 256 + (données [2] & 0xFF)) ;
if(yAccl > 511)
{
yAccl-= 1024 ;
}
int zAccl = ((données [5] & 0 x 03) * 256 + (données [4] & 0xFF)) ;
if(zAccl > 511)
{
zAccl-= 1024 ;
}
Données de sortie à l’écran
System.out.printf ("accélération dans l’axe des abscisses : %d %n", xAccl) ;
System.out.printf ("accélération dans l’axe des ordonnées : %d %n", yAccl) ;
System.out.printf ("accélération dans l’axe z: %d %n", zAccl) ;
}
}