有小伙伴表示Arduino也是个好玩具,所以又入了一块Arduino UNO R3先玩着。突然想起科技京城电子市场很久很久没去过了,所以一时兴起又顶着烈日去晃了一圈,哈哈太好了,市场还在。顺便买了块Lcd1602液晶显示屏。
稍有点电子制作基础和C语言基础的人玩Arduino上手应该很快的。从 http://www.arduino.org.cn/software 下载了IDE(含驱动),晚饭后折腾了一把,还算顺利的就做出了这个实验。IDE直接自带的Lcd1206的Demo,只要按注释的方法正确接线直接就能运行。稍微有点小麻烦的是18B20温控的库,要另外找,并且找到后要导入库到IDE。
具体1602和18b20的介绍就不说了,这个是笔记不是论文,网上资料太多了,做实验只要搞清楚引脚编号就行了。
电路示意图如下:
实际效果如下:
温控在左侧,被线挡住了。手头没有10K电位器,用了1K和10K固定电阻将就下,1K接地,对比度还是有点偏高,不过这个不是重点了。
抄来的代码如下:
#include <LiquidCrystal.h>
#include <OneWire.h>
#include <DallasTemperature.h>
#define TempSensor A0
OneWire oneWire(TempSensor);
DallasTemperature sensors(&oneWire);
// initialize the library with the numbers of the interface pins
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
void setup() {
//pinMode(TempSensor,INPUT);
sensors.begin();
// set up the LCD's number of columns and rows:
lcd.begin(16, 2);
// Print a message to the LCD.
lcd.print("Current Temp:");
}
void loop() {
// Get 18B20 Data
sensors.requestTemperatures();
float t = sensors.getTempCByIndex(0);
delay(1000);
// set the cursor to column 0, line 1
// (note: line 1 is the second row, since counting begins with 0):
lcd.setCursor(0, 1);
// print the number of seconds since reset:
lcd.print(t);
lcd.setCursor(6,1);
lcd.print("C");
}