Étape 3: Code :
Le code Java pour MMA8452Q peut être téléchargé depuis notre dépôt github-ControlEverythingCommunity
Voici le lien pour la même chose :
https://github.com/ControlEverythingCommunity/MMA8...
Le datasheet du MMA8452Q 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.
MMA8452Q
Copiez le code suivant est conçu pour fonctionner avec le Module MMA8452Q_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 MMA8452Q
{
Public Shared Sub main (chaîne args[]) lève Exception
{
Créer le bus I2C
I2CBus bus = I2CFactory.getInstance(I2CBus.BUS_1) ;
Obtenez le périphérique I2C, I2C MMA8452Q adresse est 0x1C(28)
Dispositif de I2CDevice = bus.getDevice(0x1C) ;
Envoyer commande veille
Device.Write (0x2A, (octet) 0 x 00) ;
Envoyer la commande active
Device.Write (0x2A, (octet) 0 x 01) ;
Jeu de plage jusqu'à +/-2g
Device.Write (0x0E, (octet) 0 x 00) ;
Thread.Sleep(500) ;
Lu 7 octets de données de l’adresse 0x00(0)
Statut, X msb, X lsb, lsb Y, Z msb, Y msb lsb Z
données de Byte [] = new ubyte [7] ;
Device.Read (0 x 00, données, 0, 7) ;
Convertir les valeurs
int xAccl = (((données [1] & 0xFF) * 256) + (données [2] & 0xFF)) / 16 ;
Si (xAccl > 2047)
{
xAccl = xAccl - 4096 ;
}
int yAccl = (((données [3] & 0xFF) * 256) + (données [4] & 0xFF)) / 16 ;
Si (yAccl > 2047)
{
yAccl = yAccl - 4096 ;
}
int zAccl = (((données [5] & 0xFF) * 256) + (données [6] & 0xFF)) / 16 ;
Si (zAccl > 2047)
{
zAccl = zAccl - 4096 ;
}
Données de sortie à l’écran
System.out.printf ("axe des abscisses : %d %n", xAccl) ;
System.out.printf ("axe des ordonnées : %d %n", yAccl) ;
System.out.printf ("axe z: %d %n", zAccl) ;
}
}