11646| 2
|
[进阶] 温度计简单教程,简单到令人发指,dth11,1602 |
温度计简单教程,简单到令人发指,dth11,1602 经过不懈的努力,花了N多的时间,终于把dth11温湿度传感器,Arduino uno,1802显示,完成了,现在把其中辛苦纵然大家分享,我遇到的困难,大家也遇到,希望大家少走弯路。 前提: 如果看官真的是从零开始,建议买个DF的初级套装,然后再买个dth11温湿度传感器,一个带IIC总线的1602,后两个请自行某宝,因为DF的有点贵。然后做个温湿度计,算是对这一阶段学习的考试。 带IIC总线!!! 带IIC总线!!! 带IIC总线!!! 重要的事计三遍,我就是随随便便买了个1602,不带总线,然后接线烦了我三天,我们目的是学习,不是给自己找罪受。 此1602没带IIC总线,,接线一堆 DTH11 我用的是4号端口 温湿度传感器,记住,在arduino,你每一个零件,都要带arduino IDE编程器认识的库文件。也就是说,要有“dth11”,这一个库,然后你才能在程序中用到。提供库的下载地址,请自行下载,然后自己把这个库文件放在” C:\Program Files\Arduino\libraries” 库下载,请打开这个页面,下拉,有下载地址。 https://wiki.dfrobot.com.cn/_SKU_DFR0067_DHT11%E6%95%B0%E5%AD%97%E6%B8%A9%E6%B9%BF%E5%BA%A6%E4%BC%A0%E6%84%9F%E5%99%A8V2 arduino uno 最普通的版本,我的是山寨版,十来元的 1602显示屏 推荐带iic总线的,然后请翻看这个教程,然后本教程后面就不需要看了。 https://mc.dfrobot.com.cn/thread-13576-1-1.html 项目九 实时温湿度检测器 带iic总线的,后面有一块小板,然后装线简单很多。 本教程说的是不带iic总线的。 1602屏的库IDE自带,不需要自己去找。 10K可调电阻 购买零件的时候记得带一个,IIC总线自带 杜邦线 杜邦线的头有的是针,有的是孔。我们使用了面包板,所以以双头针为主,大约6针孔。DF套件有。 面包板, 随意,我用DF套件里的。 Arduino IDE 编程器 Arduino IDE 编程器的版本很多,各个版本之间不完全兼容,我用的是1.0.6,不要贪心,如果运行不了,请下载1.0.6,与本教程作者保持一致。 avr-g++: error: avr-g++: error: CreateProcess: No such file or directory Arduino IDE 编程器,我用的是1.0.6,不要贪心,如果运行不了,请下载1.0.6,与本教程作者保持一致。 "LiquidCrystal.h" 对应多个库 原来用的是1.6.12,各种问题,然后下载1.0.6,与本教程作者保持一致。 exit status 1 Arduino:1.6.12 (Windows XP), 开发板:"Arduino/Genuino Uno" avr-g++: error: CreateProcess: No such file or directory exit status 1 为开发板 Arduino/Genuino Uno 编译时出错。 请下载1.0.6,与本教程作者保持一致。 接线。 #include <LiquidCrystal.h> 此语句的意思是加载液晶显示屏的库 LiquidCrystal lcd(10,9,7,6,5,8); //定义显示屏接脚位 此语句的意思是液晶显示屏将使用10,9,7,6,5,8,这六个中断口,其中10号,9号,是控制线,也就是说传输“我要写”之类的握手信号。 7,6,5,8,是数据传输口。所以,接线的时候, LCD 1,GND 2,VCC,5V 3,电位器中 4,arduino 10 5,GND 6,arduino 9 7,D0,空 8,D1,空 9,D2,空 10,D3,空 11,D4 arduino 7 12,D5 arduino 6 13,D6 arduino 5 14,D7 arduino 8 15,A,VCC,5V 16,K,GND 电位器可选10K—47K的可调电阻,两端请接正负。 Dth11,有三根线,正负,信号线用4号口。 */++++++++++++++++++++++++++++++++++++++++ 最后贴上我的程序,祝大家玩得愉快。 #include <LiquidCrystal.h> LiquidCrystal lcd(10,9,7,6,5,8); //定义显示屏接脚位 #include <dht11.h> #include <Wire.h> dht11 DHT; #define DHT11_PIN 4 void setup() { lcd.begin(16,2); //设置LCD显示的数目。16 X 2:16格2行。 Serial.begin(9600);// 设置串口波特率9600 //串口输出”Type, status, Humidity(%), Temperature(C)” Serial.println("Type,\tHumidity(%),\tTemperature(C)"); } void loop() { int chk;//chk用于存储DHT11传感器的数据 Serial.print("DHT11 \t"); //读取DHT11传感器的数据 chk = DHT.read(DHT11_PIN); switch(chk) { caseDHTLIB_OK: Serial.print("OK,\t"); break; caseDHTLIB_ERROR_CHECKSUM: Serial.print("Checksum error,\t"); break; caseDHTLIB_ERROR_TIMEOUT: Serial.print("Time out error,\t"); break; Serial.print("Unknown error,\t"); break; } //串口显示温湿度值 Serial.print(DHT.humidity,1); Serial.print("\t"); Serial.println(DHT.temperature,1); // lcd.setCursor(0,1); //将闪烁的光标设置到column 0, line 1 (注释:从0开始数起,line 0是显示第一行,line 1是第二行。) // lcd.print(millis()/1000); //开机后屏幕现实以秒几时的时间 lcd.setCursor(0,0); lcd.print("Humidity(%)");//在lcd第一行显示"Humidity(%)" lcd.print(DHT.humidity,1); lcd.setCursor(0,1); lcd.print("Temperature(C)");//在lcd第二行显示"Temperature(C)" lcd.print(DHT.temperature,1); delay(1000); } ++++++++++++++++++ 最后,祝大家玩得愉快。 |
© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed