2014年7月16日水曜日

温度計LM75BDのサンプル

温度計のLM75BDとI2Cを使って通信するスクリプトです。
LM75BDのSCLをp27、SDAをp28に接続してください。
 mbed application boardを使用している人はそのまま起動できます。

 <!DOCTYPE html>  
 <html><head>  
 <meta charset="UTF-8">  
 <script src="http://mimic.sourceforge.jp/jsapi/mbedJS.all.js"></script>  
 <script type="text/javascript">  
 function Sleep(ms) {  
   var d1 = new Date().getTime();  
   var d2 = new Date().getTime();  
   while( d2 < (d1 + ms) ) {  
     d2 = new Date().getTime();  
   }  
   return;  
 }  
 // i2c temperture sensor   
 function start()  
 {  
      var addr = 0x90;  
      var step = 0;  
      var mcu=new mbedJS.Mcu("10.0.0.2",  
      {  
           onNew:function()  
           {  
                var i2c = new mbedJS.I2C(mcu,[mbedJS.PinName.p28 , mbedJS.PinName.p27],  
                {  
                     onNew:function()  
                     {  
                          i2c.frequency(1000);  
                     },  
                     onFrequency:function()  
                     {  
                          i2c.start();  
                     },  
                     onStart:function()  
                     {  
                          i2c.write(addr,[0x01 , 0x00],false);  
                     },  
                     onWrite:function()  
                     {  
                          switch(step){  
                               case 0:  
                               step++;  
                               Sleep(500);  
                               i2c.write(addr,[0x00],false);  
                               break;  
                               case 1:  
                               step++;  
                               i2c.read(addr , 2 , false);  
                               break;  
                               default:  
                               i2c.stop();  
                          }  
                     },  
                     onRead:function(v)  
                     {  
                          /*document.write(v+"<br>\n");*/  
                          /*document.write(v.data+"<br>\n");*/  
                          document.write(( (v.data[0]<<8)|v.data[1]) / 256.0);  
                     }  
                });  
           }  
      });  
 }  
 </script>  
 </head>  
 <h1 id="title">temperture LM75BD</h1>  
 <body onload="start()">  
 </body>  
 </html>  

0 件のコメント:

コメントを投稿