Arduino 溫度感測器(LM35、18b20、DH11)
阿新 • • 發佈:2018-12-24
硬體:
Arduino UNO板
LM35溫度感測器
18b20溫度感測器
DH11溫溼度感測器
LM35溫度感測器
18b20溫度感測器
DH11溫溼度感測器
軟體
Arduino IDE
接線
Arduino | 感測器 |
---|---|
5V | VCC |
GND | GND |
訊號引腳 | S |
程式
LM35溫度感測器
float temp = 0; void setup() { Serial.begin(9600); Serial.println(F("reading LM35 begin. \n")); } void loop() { static unsigned long sensortStamp = 0; //設定每100ms讀取一次LM35感測器資料 if(millis() - sensortStamp > 100){ sensortStamp = millis(); int reading = analogRead(2); //注意到我們是把LM35的輸出端連線到了A2,所以這裡是analogRead(2) temp = reading *0.0048828125*100; Serial.print(F("Real Time Temp: ")); Serial.println(temp); } }
18b20溫度感測器
#include <DallasTemperature.h> #define ONE_WIRE_BUS A2 //溫度 使用A2埠 OneWire oneWire(ONE_WIRE_BUS);//溫度 DallasTemperature sensors(&oneWire);//溫度 float temp; void setup() { sensors.begin(); Serial.begin(9600); Serial.println(F("reading 18b20 begin. \n")); } void loop() { static unsigned long sensortStamp = 0; //設定每100ms讀取一次18b20感測器資料 if(millis() - sensortStamp > 100){ sensortStamp = millis(); sensors.requestTemperatures(); temp=sensors.getTempCByIndex(0); Serial.print(F("Real Time Temp: ")); Serial.println(temp); } }
DH11溫溼度感測器
#include <dht11.h> //引用dht11庫檔案 #define DHT11PIN 9 //定義溫溼度針腳號為9號引腳 dht11 DHT11; float tem; float hum; void setup() { Serial.begin(9600); //設定波特率引數 pinMode(DHT11PIN,INPUT); Serial.println(F("reading Dh11 begin. \n")); } void loop() { static unsigned long sensortStamp = 0; if(millis()-sensortStamp>1000){ sensortStamp=millis(); int chk = DHT11.read(DHT11PIN); //將讀取到的值賦給chk tem=(float)DHT11.temperature; //將溫度值賦值給tem hum=(float)DHT11.humidity; //將溼度值賦給hum Serial.print(F("Real Time tem: ")); Serial.println(tem); Serial.print(F("Real Time hum: ")); Serial.println(hum); } }