我在Mario Boehmer的书中使用Arduino开始Android ADK的Project 8 . 我使用的是具有以下数值的10k热敏电阻,但我的温度报告为6531.0C,这显然是不正确的 .

long r0 = 10000;

long beta = 4050;

// temperature in kelvin at at 25 celsius

double t0 = 298.15;

// value of second resistor

long additional_resistor = 10000;

// input voltage

float v_in = 5.0;

串行监视器的读数如下:

currentThermistorResistance: 128378.38

currentTemperatureInDegrees: -22.16

convertedValue: -221

voltageMeasured: 0.36

完整代码如下:

#include

#include

#include

#define COMMAND_TEMPERATURE 0x4

#define INPUT_PIN_0 0x0

// Size: 5mm

// Resistance: 10KΩ

// Temperature: -30°C to +125°C

// Tolerance: ±10%

//-----

//change those values according to your thermistor's datasheet

// original

// long r0 = 4700;

// long beta = 3980;

//new

long r0 = 10000;

long beta = 4050;

//-----

// temperature in kelvin at at 25 celsius

double t0 = 298.15;

// value of second resistor

long additional_resistor = 10000;

// input voltage

float v_in = 5.0;

double r_inf;

double currentThermistorResistance;

/*

AndroidAccessory(const char *manufacturer,

const char *model,

const char *description,

const char *version,

const char *uri,

const char *serial);

*/

AndroidAccessory acc("UW MHCID",

"HCID TempSense",

"A temperature sensing android application",

"0.1",

"https://github.com/pdugan20/hcid-temp-sense",

"0000000012345678");

byte sntmsg[6];

void setup() {

Serial.begin(19200);

acc.powerOn();

// changed from powerOn() to begin()

// acc.begin();

sntmsg[0] = COMMAND_TEMPERATURE;

sntmsg[1] = INPUT_PIN_0;

r_inf = r0 * (exp((-beta) / t0));

}

void loop() {

if (acc.isConnected()) {

int currentADCValue = analogRead(INPUT_PIN_0);

float voltageMeasured = getCurrentVoltage(currentADCValue);

double currentThermistorResistance = getCurrentThermistorResistance(voltageMeasured);

double currentTemperatureInDegrees = getCurrentTemperatureInDegrees(currentThermistorResistance);

// multiply the float value by 10 to retain one value behind the decimal point before converting

// to an integer for better value transmission

int convertedValue = currentTemperatureInDegrees * 10;

sntmsg[2] = (byte) (convertedValue >> 24);

sntmsg[3] = (byte) (convertedValue >> 16);

sntmsg[4] = (byte) (convertedValue >> 8);

sntmsg[5] = (byte) convertedValue;

acc.write(sntmsg, 6);

delay(100);

}

}

// "reverse ADC calculation"

float getCurrentVoltage(int currentADCValue) {

return v_in * currentADCValue / 1024;

}

// rearranged voltage divider formula for thermistor resistance calculation

double getCurrentThermistorResistance(float voltageMeasured) {

return ((v_in * additional_resistor) - (voltageMeasured * additional_resistor)) / voltageMeasured;

}

//Steinhart-Hart B equation for temperature calculation

double getCurrentTemperatureInDegrees(double currentThermistorResistance) {

return (beta / log(currentThermistorResistance / r_inf)) - 273.15;

}

adk java,通过Android ADK从Thermistor读取的摄氏温度无效相关推荐

  1. android adk -(sdk),arm cortex-M4 连接android adk2012

    最近用Freescale 的cortex-M4 K60 MCU 做accessory 连接android 手机, K60这款M4 非常强大,丰富的外围设备,特别是免费的开源实时操作系统MQX , 加上 ...

  2. java套接字客户端_使用Java从客户端套接字读取数据(Read data from a client socket in Java)...

    使用Java从客户端套接字读取数据(Read data from a client socket in Java) 我编写了从客户端套接字发送/接收数据的代码. 发送数据步骤已成功完成,但是当我想从套 ...

  3. android libbfaac.so,Android中Json数据读取与创建

    一:  Json的特性和在数据交互中的地位就不用说了,直接看案例. 首先在android studio中创建assets文件目录,用于存放Json数据文件,android studio 1.3 默认项 ...

  4. Java开源Android开源项目

    FBReaderJ FBReaderJ用于Android平台的电子书阅读器,它支持多种电子书籍格式包括:oeb.ePub和fb2.此外还支持直接读取zip.tar和gzip等压缩文档. 更多FBRea ...

  5. Android Studio调用python读取图片(使用服务器paddlehub处理图片)

    Android Studio调用python读取图片 一.主要任务 二.环境配置 1.创建一个android studio项目 2.配置项目gradle 3.配置app下的gradle 三.demo测 ...

  6. 疯狂Java和Android面试题大全(Android版)

    疯狂Java和Android面试题大全(Android版) 本大全每个月会定期更新,索取网址:http://www.fkjava.org Java核心技术部分 Java核心技术部分的面试题,可能覆盖J ...

  7. JAVA IDEA集成geotools gt-mif gdal读取.MIF

    JAVA IDEA集成geotools gt-mif gdal读取.MIF 1. 结论 2. 问题1:gdal maven下载不下来 3. geotools,gt-mif maven配置 4. 源码 ...

  8. java对文本文件进行操作:读取、修改、添加、删除、重命名等

    java对文本文件进行操作:读取.修改.添加.删除.重命名等 Java IO 也称为IO流,IO = 流,它的核心就是对文件的操作,对于 字节 .字符类型的输入和输出流. IO是指对数据流的输入和输出 ...

  9. Java、Android注解代码生成(ButterKnife原理、ViewBinding)

    前言 首先需要一些先验知识: 浅谈Java/Android下的注解 Java.Android基础之-反射 Java.Android静态代理与动态代理 简介 在我们常用的框架中注解和自动生成代码的身影很 ...

最新文章

  1. 基于Picture Library创建的图片文档库中的上传多个文件功能(upload multiple files)报错怎么解决?...
  2. C#中生产者线程和消费者线程同步的实现
  3. 如何在Ubuntu下安装 monodevelop
  4. 面试题:ConcurrentHashMap 和 Hashtable 的区别
  5. python串口通信_python 读取串口数据的示例
  6. Ubuntu9.04更新源
  7. 一门从业4年都没能用上的优化技术
  8. matlab2c使用c++实现matlab函数系列教程-ismember函数
  9. 实验四------实验十二
  10. 2019年SpringBoot视频教程【全网免费】每周更新
  11. C#版OPOS打印(基于北洋OPOS SDK二次开发包,支持EPSON和北洋、佳博、商祺等支持标准ESC/POS指令的POS打印机)...
  12. dedecms源码分析(第一部分)
  13. 百分之九十的人都不清楚自己找的是Kanban软件还是看板软件(附Kanban工具测评)
  14. TIPTOP 智能仓库扫描系统解决方案
  15. 自己整理的scratch说课讲义
  16. 阿里云通过链接下载附件
  17. 安装tensorflow报错:Cannot uninstall ‘wrapt‘. It is a distutils installed project and thus we cannot accu
  18. 1、二进制安装k8s
  19. 数组里面都是人的名字,分割成:例如:老杨|老苏|老邹…”(老杨,老苏,老邹,老虎,老牛,老蒋,老王,老马)
  20. JS之使用Echarts画出人际关系图

热门文章

  1. 互联网下大学生就业创业浅析
  2. ps游戏在什么系统下开发_引擎级防沉迷! Unity携手腾讯游戏推出防沉迷系统开发工具...
  3. Golang 中 Slice的分析与使用(含源码)
  4. LeetCode 2086. 从房屋收集雨水需要的最少水桶数 -- 动态规划
  5. 轻松生成小程序分享海报 1
  6. 用Python对KSC数据集处理的一次排错经历
  7. ipa 修改服务器地址,动态更改服务器上的.ipa文件
  8. 【LorMe云讲堂】贺纪正:土壤硝化作用的微生物机制与氮素管理
  9. [转]人脸识别中的活体检测
  10. Unity【NGUI】【UGUI】 动画效果实现,AnimationCurve曲线动画控制器,支持动画完成 回调