|
1、MEGA 2560 能不能接2个DTH11?
2、MEGA 2560 能不能接串口触摸屏?
稍微谢了一下 ,感觉还是不行。
//调用DHT11扩展库
#include <dht11.h>
//dht11 DHT11_1;
//dht11 DHT11_2;
#define DHT11PIN1 A1
#define DHT11PIN2 A2
int N1Sensor = A3;
int H_Led = 2; //定义数字口2为湿度指示灯
int H_Led2 = H_Led+1; //定义数字口4为湿度指示灯
int T_Led = 4; //定义数字口3为温度指示灯
int T_Led2 = T_Led+1; //定义数字口5为温度指示灯
double NH3; //定义氨气浓度变量
void setup()
{
pinMode(H_Led,OUTPUT); //定义数字口H_Led为输出模式
pinMode(T_Led,OUTPUT); //定义数字口T_Led为输出模式
// pinMode(H_Led2,OUTPUT); //定义数字口H_Led为输出模式
// pinMode(T_Led2,OUTPUT); //定义数字口T_Led为输出模式
Serial.begin(9600);
Serial.println("DHT11 Monitoring");
Serial.print("\n");
}
void loop()
{
int i = 0;
for (i=0; i<=1; i++)
{
Serial.print("di");
Serial.print(i);
Serial.print("ci");
dht11 DHT11;
int val = DHTLIB_ERROR_TIMEOUT;
if (i==0)
val = DHT11.read(DHT11PIN1);
val = DHT11.read(DHT11PIN2);
Serial.print("Read sensor: ");
switch (val)
{
case DHTLIB_OK:
Serial.println("OK");
break;
case DHTLIB_ERROR_CHECKSUM:
Serial.println("Checksum error");
break;
case DHTLIB_ERROR_TIMEOUT:
Serial.println("Time out error");
break;
default:
Serial.println("Unknown error");
break;
}
//输出温度值,并判断是否适合室内温度,如不适则亮灯提醒
Serial.print("Temperature (oC): ");
Serial.println((float)DHT11.temperature);
Serial.print("Temperature (oC): ");
Serial.println((float)DHT11.temperature);
if (0 == i)
{
if((DHT11.temperature<=16)||(DHT11.temperature>=25))
digitalWrite(T_Led+i,HIGH);
else
digitalWrite(T_Led+i,LOW);
}
//输出湿度值,并判断是否适合室内湿度,如不适则亮灯提醒
if (0 == i)
{
Serial.print("Humidity (%): ");
Serial.println((float)DHT11.humidity);
Serial.print("Humidity (%): ");
Serial.println((float)DHT11.humidity);
if((DHT11.humidity<=40)||(DHT11.humidity>=75))
digitalWrite(H_Led+i,HIGH);
else
digitalWrite(H_Led+i,LOW);
}
int valueN1 = 0;
valueN1=analogRead(N1Sensor);
NH3 =(0.1/valueN1);
Serial.print("NH3= " );
Serial.print(NH3);
Serial.println("PPM");
delay(6000);
}
} |
|