Étape 3: Code
Le code java pour MCP9805 peut être téléchargé depuis notre dépôt github-ControlEverythingCommunity
Voici le lien pour la même chose :
https://github.com/ControlEverythingCommunity/MCP9...
Le datasheet du MCP9805 peut être trouvé ici :
http://WW1.Microchip.com/downloads/en/DeviceDoc/21...
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.
MCP9805
Copiez le code suivant est conçu pour fonctionner avec le Module MCP9808_I2CS I2C Mini, disponible de ControlEverything.com.
https://www.controleverything.com/content/tempera...
import com.pi4j.io.i2c.I2CBus ;
import com.pi4j.io.i2c.I2CDevice ;
import com.pi4j.io.i2c.I2CFactory ;
import java.io.IOException ;
public class MCP9805
{
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 MCP9805 adresse est 0x18(24)
Dispositif de I2CDevice = Bus.getDevice(0x18) ;
Thread.Sleep(300) ;
Sélectionnez configuration de Registre
Mode de conversion continue, mise sous tension
Byte [] config = new ubyte [2] ;
config [0] = 0 x 00 ;
config [1] = 0 x 00 ;
Device.Write (0 x 01, config, 0, 2) ;
Sélectionnez la résolution enregistrez-vous
Résolution = +0.0625 / C
Device.Write (0 x 08, (octet) 0 x 03) ;
Thread.Sleep(300) ;
Lire les 2 octets de données de l’adresse 0x05(05)
msb Temp, temp lsb
données de Byte [] = new ubyte [2] ;
Device.Read (0 x 05, données, 0, 2) ;
Convertir les données à 13 bits
int temp = ((data [0] & 0x1F) * 256 + (données [1] & 0xFF)) ;
if(Temp > 4095)
{
Temp = 8192 ;
}
double MTET = temp * 0,0625 ;
double fTemp = MTET * 1.8 + 32 ;
Données de sortie à l’écran
System.out.printf ("température en degrés Celsius est : %.2f C %n", PMTET) ;
System.out.printf ("température en Fahrenheit est : %.2f F %n", fTemp) ;
}
}