文号
t60720
阅读
12073
回复
2
收藏
3
ARDUINO现学现卖之18B20温度传感器+LCD5110显示
2013/09/20
IP:北京
本帖最后由 wjwj1234xx 于 2013-9-20 00:34 编辑

本人纯纯纯小白一枚,没学过C语言,学学ARDUINO也就一两周.连抄带蒙,做了个这么个小玩意.
18B20.png 18B20传感器,TO92小封装.
adino.png

ARDUINO板

5110.png 显示效果



附上代码


//      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()
{
  myGLCD.InitLCD();
  myGLCD.setFont(SmallFont);
  sensors.begin();    \\以上初始化18B20和LCD5110
}

void loop()
{
  myGLCD.clrScr();    \\清屏
  sensors.requestTemperatures();    \\向18B20读取温度
  int x=sensors.getTempCByIndex(0);   \\赋值给x,实际上应该是float,或者double才对,我使用INT,直接忽视了小数点.
  String t=String(x);                            \\问题就在这里,int转换为字符串,但是float或者double我都不会转字符串,也就无法在LCD显示出来,求高人指点
  myGLCD.print("THE Temp is:",LEFT,0);   \\第一行字输出
  myGLCD.print(t,CENTER,20);       \\第二行,温度输出
  delay (3000);              \\延时三秒.
}


+200
科创币
虎哥
2013/09/20
楼主不会是袁玉虎吧。。
13年3个月前IP:未同步
643489
1楼
Nokia!~~~~试试看这个屏幕能不能当防爆盾~~~~~~
引用
评论
13年3个月前IP:未同步
643591
2楼
用sprintf试试看
引用
评论
笔记
{{note.content}}
{{n.user.username}}
{{fromNow(n.toc)}} {{n.status === noteStatus.disabled ? "已屏蔽" : ""}} {{n.status === noteStatus.unknown ? "正在审核" : ""}} {{n.status === noteStatus.deleted ? '已删除' : ''}}
  • 编辑
  • 删除
  • {{n.status === 'disabled' ? "解除屏蔽" : "屏蔽" }}
我也是有底线的