Arduino 传感器介绍
Arduino DHT11 温度传感器 湿度传感器 数字温湿度模块
DHT11数字温度传感器是一款含有已校准数字信号输出的温湿度符合传感器。传感器包括一个电阻式感湿元件和一个NTC测温元件,并且与一个8位单片机连接,因此产品有响应快、性价比高的特点。产品使用单线制串行接口,使系统集成简单,体积小,功耗低。使用防插反3P接头,避免由于插接错误造成的传感器损坏。超小的体积、极低的功耗,信号传输距离可达20米以上。
DHT11数字温湿度传感器介绍:http://www.alsrobot.cn/wiki/index.php?title=(SKU:RB-02S014A)DHT11%E6%B8%A9%E6%B9%BF%E5%BA%A6%E4%BC%A0%E6%84%9F%E5%99%A8
int dht11 = 8;//定义DHT11连接到数字引脚8
byte dat [5];//设置5个字节的数组
byte read_data()
{
byte data;
for (int i=0;i<8;i++)
{
if(digitalRead(dht11) == LOW)
{
while(digitalRead(dht11) == LOW);//等待50us
delayMicroseconds(30);//判断高电平的持续时间,以判断数据是0还是1
if(digitalRead(dht11) == HIGH)
data |=(1<<(7-i));//高位在前,低位在后
while(digitalRead(dht11) == HIGH);//如果数据是1,等待下一位的接收
}
}
return data;
}
void start_test()
{
digitalWrite(dht11,LOW);//拉低总线,发开始信号
delay(30);//延时需要大于18ms
digitalWrite(dht11,HIGH);//开始信号
delayMicroseconds(40);//等待DHT11响应
pinMode(dht11,INPUT);//改为输入模式
while(digitalRead(dht11) == HIGH);
delayMicroseconds(80);//DHT11发出响应,拉高总线80us
if(digitalRead(dht11) == LOW);
delayMicroseconds(80);//拉低总线80us后开始发送数据
for(int i=0;i<4;i++)//接收温湿度数据,校验位不考虑
dat[i] = read_data();
pinMode(dht11,OUTPUT);//改为输出模式
digitalWrite(dht11,HIGH);//发送完一次数据后释放总线,等待主机
//下一次的信号开始
}
void setup()
{
Serial.begin(9600);
pinMode(dht11,OUTPUT);
}
void loop()
{
start_test();
Serial.print("Current humdity = ");
Serial.print(dat[0],DEC);//显示湿度的整数位
Serial.print('.');
Serial.print(dat[1],DEC);//显示湿度的小数位
Serial.println('%');
Serial.print("Current temperature = ");
Serial.print(dat[2],DEC);//显示温度的整数位
Serial.print('.');
Serial.print(dat[3],DEC);//显示温度的小数位
Serial.println('C');
delay(700);
Arduino LM35线性温度传感器 模拟线性温度传感器
温度传感器是用于检测环境温度,使用它可以制作一个温度计。LM35温度传感器利用温度和电压的关系测试温度,温度变化时,输出的电压值变化,通过Arduino控制器模拟接口读取此量,可以知道当前的温度,测试的是摄氏度,可以通过程序的修改,将测试温度修改为华氏度。
LM35线性温度传感器说明介绍:http://www.alsrobot.cn/wiki/index.php/(SKU:RB-02S019A)LM35线性温度传感器
const int inpin = A0;
void setup() {
Serial.begin(9600);
}
void loop() {
int value = analogRead(inpin);
Serial.print(value);
Serial.print(">");
float celsius = value *(5.0/1023*100);
Serial.print(celsius);
Serial.print(" degrees Celsius, ");
Serial.print((celsius * 9)/5 + 32);//转换成华氏温度
Serial.println(" degress Fahrenheit ");
delay(1000);
}
PCF8591T AD/DA模块 PCF8591T模块 集成热敏电阻 光敏电阻 电位器模拟输入
PCF8591是一个单片集成、单独供电、低功耗、8-bit CMOS数据获取器件。PCF8591具有4个模拟输入、1个模拟输出和1个串行I2C总线接口。PCF8591的3个地址引脚A0, A1和A2可用于硬件地址编程,允许在同个I2C总线上接入8个PCF8591器件,而无需额外的硬件。在PCF8591器件上输入输出的地址、控制和数 据信号都是通过双线双向I2C总线以串行的方式进行传输。