|
本帖最后由 shiow1984 于 2013-5-9 22:12 编辑
简单的试贴,在极客工坊上一点点地学习到现在算是交一个作业吧。
接线
请参考本论坛中的18B20及LCD12864与Arduino接线
代码: - /*LCD 12864+18B20+YEELINK
- PIN1 = GND
- PIN2 = 5V
- RS(CS) = 8;
- RW(SID)= 9;
- EN(CLK) = 3;
- PIN15 PSB = GND;
- ONE_WIRE_BUS 7 //18B20 数据端接ARDUINO 数据7口
- */
- #include<OneWire.h>
- #include<DallasTemperature.h>
- #include "LCD12864RSPI.h"
- #define AR_SIZE( a ) sizeof( a ) / sizeof( a[0] )
- unsigned char show0[]={0xCF, 0xD6,0xD4, 0xDA,0xB5, 0xC4,0xCE, 0xC2,0xB6, 0xC8,0xCA, 0xC7,0xA3, 0xBA};//现在的温度是:
- unsigned char du[]={0xA1, 0xE6, 0xA1, 0xEE,
- 0xA1, 0xFA,
- 0x20, 0x00}; //℃ +五角星箭头
- //#include<LiquidCrystal.h> //调用arduino自带的LiquidCrystal库
- #define ONE_WIRE_BUS 7 // 18B20 数据端接ARDUINO 数据7口
- OneWire oneWire(ONE_WIRE_BUS);
- DallasTemperature sensors(&oneWire);// DallasTemperature 库解析温度数据
- char str[5]; //定义温度值存储数组,4位,其中3位为数字,1位为小数点
- double val =0; //定义中间变量,用于将获取的float型温度值转变为unsigned char数组
- void setup()
- {
- Serial.begin(9600);//串口初始化
- LCDA.Initialise(); // 屏幕初始化
- delay(100);
- sensors.begin();
- }
- void loop ()
- {
-
- sensors.requestTemperatures();
- val=sensors.getTempCByIndex(0); //将得到的温度数据赋值给val
- dtostrf(val,4,2,str); //将获取的数值转换为字符型数组
- LCDA.DisplayString(0,0,show0,AR_SIZE(show0));//第一行第一格开始,显示文字 现在的温度是:
- delay(100);
- LCDA.DisplayString(2,0,(unsigned char *)str,AR_SIZE(str));//第三行第一格开始,显示温度数值
- delay(100);
- LCDA.DisplayString(2,3,du,AR_SIZE(du)); //显示摄氏度℃符号
- delay(100); //延时,这里也就是刷新速度。
- Serial.print("yeelink:"); // 连接yeelink 串口代码
- Serial.println(str); // 串口发送温度值,按照官方教程 “传感器数据作为字符串发送”所以是发送str,而不是val,
- //没试过val是否成功
- }
复制代码 编辑时间太长了 ,差点被删,还是贴图吧
yeelink 连接参考官方教程:
http://blog.yeelink.net/?p=53
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
|