本帖最后由 wjwj1234xx 于 2013-9-20 00:34 编辑 本人纯纯纯小白一枚,没学过C语言,学学ARDUINO也就一两周.连抄带蒙,做了个这么个小玩意.
18B20传感器,TO92小封装.
ARDUINO板
显示效果
附上代码
// SCK - Pin 8
// MOSI - Pin 9
// DC - Pin 10
// RST - Pin 11
// CS - Pin 12
//
#include <OneWire.h> \\单总线库
#include <DallasTemperature.h> \\18B20库
#include <LCD5110_Basic.h> \\LCD5110库
LCD5110 myGLCD(8,9,10,11,12); \\定义LCD引脚
#define ONE_WIRE_BUS 2 \\定义18B20数据引脚在arduino的2号脚
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
extern uint8_t SmallFont[]; \\设定显示字体
void setup()
{
XXXXXXXXXitLCD();
XXXXXXXXXtFont(SmallFont);
XXXXXXXXXXgin(); \\以上初始化18B20和LCD5110
}
void loop()
{
XXXXXXXXXrScr(); \\清屏
XXXXXXXXXXquestTemperatures(); \\向18B20读取温度
int x=XXXXXXXXXXtTempCByIndex(0); \\赋值给x,实际上应该是float,或者double才对,我使用INT,直接忽视了小数点.
String t=String(x); \\问题就在这里,int转换为字符串,但是float或者double我都不会转字符串,也就无法在LCD显示出来,求高人指点
XXXXXXXXXint("THE Temp is:",LEFT,0); \\第一行字输出
XXXXXXXXXint(t,CENTER,20); \\第二行,温度输出
delay (3000); \\延时三秒.
}
200字以内,仅用于支线交流,主线讨论请采用回复功能。