你可以在这里找到我们的代码:
emc1182素描
这里是一个代码的复制和粘贴。因为它是代码的命令编辑混淆它与HTML并没有复制好。你应该使用GitHub链接。
/ /这个草图是由Frank Fox写的jouletime。
/ /找我们http://www.jouletime.com
/ /店上市易趣网在http://www.jouletime.com//shop
/*这个草图将演示如何使用双通道温度传感器,emc1182,从微芯片传感器精确到+ / - 1摄氏度β修正读数。包括内部和外部温度传感器。外部温度传感器使用一个二极管、晶体管和一个可选的电容滤波器。该装置包括众多选择,高/低限,β-构型,二极管理想因子、等设备兼容1.8V SMBus和I2C通信。我们将使用一个固定的奴隶地址版本,emc1182-1。这个装置,从地址是1001100b,(0x4c)。否则,设备地址是由电阻连接的价值选择。该装置具有多个操作寄存器0x00到0xFF。写模式:写模式必须包含三字节的信息:写从地址、控制/控制/操作操作登记,登记了一些重要的控制/操作登记地址的数据:数据的高字节0x00内部二极管。外部二极管数据的高字节0x01。0x03配置,掌握一般操作。镜像0x09。0x04的转化率,如何经常阅读更新,镜像0x0a。0x10外部二极管低字节的数据,只有3的MSB。0x25外部二极管测试配置。(默认0x08)0x27外部二极管理想因子。(默认0x12)0x29内部二极管数据的低字节,MSB仅3。阅读方式:发送的奴隶,发送控制登记,念奴地址,多少字节的数据。没有自动增量在阅读登记。你一定要把你想看的新登记的登记地址每次。否则会重复阅读同一过。以前读过,你可以写的登记地址先选择一个操作登记。如果地址已设置,然后读可以立即发生。* /
#包括/包括/ TWI(I2C两线接口)与你的图形库。
#定义tempsensor 0x4c字节= 0;
无效setup() / *执行这些动作:1。准备和启动串口监控。2。写登记地址和打印出来的串口监视寄存器的值。*/ {串行。开始(9600);/ / 1。设置串口监测数据发送到屏幕。线。begin();而(!串行){ //等待串口监控开始。延迟允许列奥纳多式板连接到串行端口。;} / / 2。写寄存器地址,然后读登记数据。delay(3000); // wait 3 seconds i=0; Serial.print("This is Internal Diode Data High Byte, "); Serial.print(GetTempRegister(i), HEX); // the value is displayed Serial.print(", default 0x00."); Serial.println(); // line return i++; Serial.print("This is External Diode Data High Byte, "); Serial.print(GetTempRegister(i), HEX); // the value is displayed Serial.print(", default 0x00."); Serial.println(); // line return i++; Serial.print("This is Status, "); Serial.print(GetTempRegister(i), HEX); // the value is displayed Serial.print(", default 0x00."); Serial.println(); // line return i++; Serial.print("This is Configuration, "); Serial.print(GetTempRegister(i), HEX); // the value is displayed Serial.print(", default 0x00."); Serial.println(); // this creates a line return i++; Serial.print("This is Conversion Rate, "); Serial.print(GetTempRegister(i), HEX); // the value is displayed Serial.print(", default 0x06."); Serial.println(); // this creates a line return i++; Serial.print("This is Internal Diode High Limit, "); Serial.print(GetTempRegister(i), HEX); // the value is displayed Serial.print(", default 0x55."); Serial.println(); // this creates a line return i++; Serial.print("This is Internal Diode Low Limit, "); Serial.print(GetTempRegister(i), HEX); // the value is displayed Serial.print(", default 0x00."); Serial.println(); // this creates a line return i++; Serial.print("This is External Diode High Limit, High Byte, "); Serial.print(GetTempRegister(i), HEX); // the value is displayed Serial.print(", default 0x55."); Serial.println(); // this creates a line return i++; Serial.print("This is External Diode Low Limit, High Byte, "); Serial.print(GetTempRegister(i), HEX); // the value is displayed Serial.print(", default 0x00."); Serial.println(); // this creates a line return Serial.print("This is External Diode Beta Configuration, "); Serial.print(GetTempRegister(0x25), HEX); // Serial.print(", default 0x08."); Serial.println(); // this creates a line return Serial.print("This is External Diode Ideality Factor, "); Serial.print(GetTempRegister(0x27), HEX); // Serial.print(", default 0x12."); Serial.println(); // this creates a line return Serial.print("This is Internal Diode Data Low Byte, only 3 MSB, "); Serial.print(GetTempRegister(0x29), HEX); // Serial.print(", default 0x00."); Serial.println(); // this creates a line return /* i++; Serial.print("This is Internal Diode Low Limit (Mirror) "); Serial.print(GetTempRegister(i), HEX); // the value is displayed Serial.print(", default 0x00."); Serial.println(); // this creates a line return */ delay(2000); // 2 second delay until repeat} void loop(){ // Read the internal and external temperature, and Send the data to serial monitor. i=0; int temp=0; Serial.println(); // this creates a line return Serial.println(); // this creates a line return Serial.print("This is Internal Diode, High Byte "); Serial.print(GetTempRegister(i), DEC); // the decimal value is displayed Serial.print("C, or "); temp=GetTempRegister(i)*9/5+32; //Convert to Fahrenheit Serial.print(temp, DEC); Serial.print("F. "); Serial.println(); // this creates a line return i++; Serial.print("This is External Diode, High Byte "); Serial.print(GetTempRegister(i), DEC); // the decimal value is displayed Serial.print("C, or "); temp=GetTempRegister(i)*9/5+32; //Convert to Fahrenheit Serial.print(temp, DEC); Serial.print("F. "); Serial.println(); // this creates a line return delay(4000);// 4 second delay}
(责任编辑:admin)