Étape 3: Code :
Le code java pour MPL3115A2 peut être téléchargé depuis notre dépôt github-ControlEverythingCommunity
Voici le lien pour la même chose :
https://github.com/ControlEverythingCommunity/MPL3...
Le datasheet du MPL3115A2 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.
MPL3115A2
Copiez le code suivant est conçu pour fonctionner avec le Module MPL3115A2_I2CS I2C Mini, disponible de ControlEverything.com.
https://www.controleverything.com/Products
import com.pi4j.io.i2c.I2CBus ;
import com.pi4j.io.i2c.I2CDevice ;
import com.pi4j.io.i2c.I2CFactory ;
import java.io.IOException ;
public class MPL3115A2
{
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 MPL3115A2 adresse est 0x60(96)
Dispositif de I2CDevice = Bus.getDevice(0x60) ;
Registre de contrôle Select
Mode actif, OSR = 128, mode altimètre
Device.Write (0 x 26, (octets) 0xB9) ;
Registre de configuration de données SELECT
Données prêt événement activé pour altitude, pression, température
Device.Write (0 x 13, (octet) 0 x 07) ;
Registre de contrôle Select
Mode actif, OSR = 128, mode altimètre
Device.Write (0 x 26, (octets) 0xB9) ;
Thread.Sleep(1000) ;
Lire les 6 octets de données de l’adresse 0x00(00)
statut, tHeight msb1, tHeight msb, tHeight lsb, msb temp, temp lsb
données de Byte [] = new ubyte [6] ;
Device.Read (0 x 00, données, 0, 6) ;
Convertissez les données en 20 bits
int tHeight = (((données [1] & 0xFF) * 65536) + ((données [2] & 0xFF) * 256) + (données [3] & 0xF0)) / 16) ;
int temp = ((données [4] * 256) + (données [5] & 0xF0)) / 16 ;
double altitude = tHeight / 16,0 ;
double MTET = (temp / 16,0) ;
double fTemp = MTET * 1.8 + 32 ;
Registre de contrôle Select
Mode actif, OSR = 128, mode Baromètre
Device.Write (0 x 26, (octet) 0 x 39) ;
Thread.Sleep(1000) ;
Lire les 4 octets de données de l’adresse 0x00(00)
statut, pres msb1, pres msb lsb pres
Device.Read (0 x 00, données, 0, 4) ;
Convertissez les données en 20 bits
pres d’int = (((données [1] & 0xFF) * 65536) + ((données [2] & 0xFF) * 256) + (données [3] & 0xF0)) / 16 ;
double pression = (pres / 4,0) / 1000.0 ;
Données de sortie à l’écran
System.out.printf ("pression : %.2f kPa %n «, pression) ;
System.out.printf (« Altitude : %.2f m %n », altitude) ;
System.out.printf ("température en degrés Celsius : %.2f C %n", PMTET) ;
System.out.printf ("température en degrés Fahrenheit : %.2f F %n", fTemp) ;
}
}