@FLAYhhh
2016-07-06T09:12:52.000000Z
字数 5682
阅读 3134
传感器名称 | 简介 | 使用方法 | 图片 |
---|---|---|---|
三轴加速度传感器 | 三轴加速度传感器是一种可以对物体运动过程中的加速度进行测量的电子设备,典型互动应用中的加速度传感器可以用来对物体的姿态或者运动方向进行检测,比如WII游戏机和iPhone手机中的经典应用。 | 分線板的Vin接Arduino的5V腳位。分線板的3Vo接Arduino的AREF腳位。分線板的GND接Arduino的GND腳位。分線板的Xout接Arduino的A0腳位。分線板的Yout接Arduino的A1腳位。分線板的Zout接Arduino的A2腳位。 | ![]() |
红外热释电运动传感器 | 热释电红外运动传感器能检测运动的人或动物身上发出的红外线,输出开关信号,可以应用于各种需要检测运动人体的场合。 | data-数字口,Vcc-Vcc,GND-GND | ![]() |
声音传感器 | MIC声音传感器是一款基于麦克风为声音检测的传感器,可用来对周围环境中的声音强度进行检测,具有300倍的放大器,输出模拟信号能使用3.3V和5V为基准AD采集,可以用来实现根据声音大小进行互动的效果、制作声控机器人、声控开关、声控报警等。 | data-模拟口,Vcc-Vcc,GND-GND | |
LM35线性模拟温度传感器 | 基于LM35半导体的温度传感器,可以用来对环境温度进行定性的检测。其测温范围是-40℃到150℃,灵敏度为10mV/℃,输出电压与温度成正比。 | data -模拟口,Vcc-Vcc,GND-GND | ![]() |
压力传感器 | 施加在传感器薄膜区域的压力能够转换成电阻值的变化,压力越大,电阻越低。 | Data-模拟口,Vcc-Vcc,GND-GND | ![]() |
土壤湿度传感器 | 可用于检测土壤的水分,当土壤缺水时,传感器输出值将减小,反之将增大。 | data -模拟口,Vcc-Vcc,GND-GND | ![]() |
光传感器 | 基于PT550环保型光敏二极管的光线传感器,可以用来对环境光线的强度进行检测。 | data-模拟口,Vcc-Vcc,GND-GND | |
超声波传感器 | 测距 | Trig-数字口,Echo-数字口,Vcc-Vcc,GND-GND | ![]() |
陀螺仪 | |||
电子罗盘 | 可以检测机器人与地球南北极之间的角度,从而获得机器人的朝向。但是精度很低。而且任何磁性物体都会造成罗盘失灵,比如扬声器。所以要配合其他的传感器,比如编码器一起使用才能获得比较好的定位效果。 | ||
编码器 | 主要用于测量电机的旋转角度和速度。任何用电机的地方,都可以用编码器来作为传感器来获得电机的输出。 | ||
数字触摸传感器 | 这是一个基于电容感应的触摸开关模块。人体或金属在传感器金属面上的直接触碰会被感应到。除了与金属面的直接触摸,隔着一定厚度的塑料、玻璃等材料的接触也可以被感应到,感应灵敏度随接触面的大小和覆盖材料的厚度有关。 | data-数字口,Vcc-Vcc,GND-GND | ![]() |
数字蜂鸣器模块 | 通过Arduino或者其他控制器就能轻松的控制蜂鸣器发出声音甚至MID音乐。 该模块与Arduino其他传感器结合使用,能够实现酷炫的声光互动作品。 | data-数字口,VCC-VCC,GND-GND | ![]() |
- 触发方式:在检测范围内,当探头接收到的热释电红外信号超过探头内部的触发阈值之后,内部会产生一个计数脉冲。当探头再次接收到这样的信号,它会认为是接收到了第二个脉冲,一旦在4 秒钟之内接收到2 个脉冲以后,探头就会产生报警信号,同时输出引脚输出高电平。另外,只要接收到的信号幅值超过触发阈值的5 倍以上,那么只需要一个脉冲就能触发输出端的高电平输出。下图为触发逻辑图示例。对于多次触发情况,输出高电平的维持时间从最后一次有效脉冲开始计时。
- 引脚连接:
/*当红外热释电运动传感器在检测范围内检测到运动的生命体时,在输出引脚会输出高电平,电压为3V,同时输出指示灯点亮,当检测到红外热释电信号消失时,延迟2.3~3秒后,输出低电平,电压为0V,输出指示灯熄灭。因此我们可以根据这个特点来快速的建立一个运动人体检测的应用。*/
byte sensorPin = 2;
byte indicator = 13;
void setup()
{
pinMode(sensorPin,INPUT);
pinMode(indicator,OUTPUT);
Serial.begin(9600);
}
void loop()
{
byte state = digitalRead(sensorPin);
digitalWrite(indicator,state);
if(state == 1)Serial.println("Somebody is in this area!");
else if(state == 0)Serial.println("No one!");
delay(500);
}
- 蓝色:模拟信号输出
- 红色:电源正
- 灰色:电源地
void setup()
{
Serial.begin(9600); // 打开串口,设置波特率为9600 bps
}
void loop()
{
int val;
val=analogRead(0); //传感器接于模拟口0
Serial.println(val,DEC);//从串口发送数据并换行
delay(100);
}
传感器引脚的定义是
1. 输出信号
2. 地
3. 电源
void setup()
{
Serial.begin(9600);//Set Baud Rate to 9600 bps
}
void loop()
{
uint16_t val;
double dat;
val=analogRead(0);//Connect LM35 on Analog 0
dat = (double) val * (5/10.24);
Serial.print("Tep:"); //Display the temperature on Serial monitor
Serial.print(dat);
Serial.println("C");
delay(500);
}
压力感应电阻是弯曲压力传感器的一种,简称FSR,FSR是一种随着有效表面上压力增大而输出阻值减小的高分子薄膜,FSR并不是测压元件或形变测量仪,尽管他们有着相似的性能。而且这类压力感测电阻不适用于精密测量,但是FSR却是一款灵敏度较高的传感器。
这是它的性能曲线
将FSR接入电路,有以下两种接法:
用Arduino读出它的模拟值,模拟值范围方案一是0~1024,方案二是1024-0。
/*用力按FSR有效表面时,LED在发光,而且LED会随着用力的大小而改变亮度。*/
int ledpin=11;
int potpin=0;
int val;
int i;
void setup()
{
pinMode(ledpin,OUTPUT);
pinMode(potpin,INPUT);
Serial.begin(9600);
}
void loop()
{
val=analogRead(potpin);
analogWrite(ledpin,val);
Serial.println(val);
}
1. 使用Arduino采用数字引脚给SR04的Trig引脚至少10μs的高电平信号,触发SR04模块测距功能;
2. 触发后,模块会自动发送8个40KHz的超声波脉冲,并自动检测是否有信号返回。这步会由模块内部自动完成。
3. 如有信号返回,Echo引脚会输出高电平,高电平持续的时间就是超声波从发射到返回的时间。此时,我们能使用pulseIn()函数获取到测距的结果,并计算出距被测物的实际距离。
/*
利用SR04超声波传感器进行测距,并用串口显示测出的距离值
*/
// 设定SR04连接的Arduino引脚
const int TrigPin = 2;
const int EchoPin = 3;
float distance;
void setup()
{ // 初始化串口通信及连接SR04的引脚
Serial.begin(9600);
pinMode(TrigPin, OUTPUT);
// 要检测引脚上输入的脉冲宽度,需要先设置为输入状态
pinMode(EchoPin, INPUT);
Serial.println("Ultrasonic sensor:");
}
void loop()
{
// 产生一个10us的高脉冲去触发TrigPin
digitalWrite(TrigPin, LOW);
delayMicroseconds(2);
digitalWrite(TrigPin, HIGH);
delayMicroseconds(10);
digitalWrite(TrigPin, LOW);
// 检测脉冲宽度,并计算出距离
distance = pulseIn(EchoPin, HIGH) / 58.00;
Serial.print(distance);
Serial.print("cm");
Serial.println();
delay(1000);
}
连接示意图:
void setup()
{
Serial.begin(9600); // open serial port, set the baud rate to 9600 bps
}
void loop()
{
int val;
val=analogRead(0); //connect grayscale sensor to Analog 0
Serial.println(val,DEC);//print the value to serial
delay(100);
}
- 电源电压: 3.3v or 5v
- 输出电压: 0~2.3v
- 工作电流: 最大20mA
- 接口定义:1脚信号,2脚地,3脚电源正
- 使用寿命:1年左右
- 模块尺寸: 60x20x5mm
典型电压值(测试平台:10位AD,基准电压5V):
- 0 ~300 : 干燥土壤
- 300~700 : 湿润土壤
- 700~950 : 放到水中
土壤湿度传感器是判断土壤中水分含量的多少来判定土壤的湿度大小。如图所示,当土壤湿度传感器探头悬空时,三极管基极处于开路状态,三极管截止输出为0;
当插入土壤中时由于土壤中水分含量不同,土壤的电阻值就不同,三极管的基极就提供了大小变化的导通电流,三极管集电极到发射极的导通电流受到基极控制,经过发射极的下拉电阻后转换成电压。
/* # Example code for the moisture sensor
# Editor : Lauren
# Date : 13.01.2012
# Version : 1.0
# Connect the sensor to the A0(Analog 0) pin on the Arduino board
# the sensor value description
# 0 ~300 dry soil
# 300~700 humid soil
# 700~950 in water
*/
void setup(){
Serial.begin(57600);
}
void loop(){
Serial.print("Moisture Sensor Value:");
Serial.println(analogRead(0));
delay(100);
}
/*如果有手指或金属物体触碰传感器的金属面,Uno板上的红色LED灯点亮。*/
int ledPin = 13; // Connect LED on pin 13, or use the onboard one
int KEY = 2; // Connect Touch sensor on Digital Pin 2
void setup(){
pinMode(ledPin, OUTPUT); // Set ledPin to output mode
pinMode(KEY, INPUT); //Set touch sensor pin to input mode
}
void loop(){
if(digitalRead(KEY)==HIGH){ //Read Touch sensor signal
digitalWrite(ledPin, HIGH); // if Touch sensor is HIGH, then turn on
}else{
digitalWrite(ledPin, LOW); // if Touch sensor is LOW, then turn off the led
}
}
int buzzPin = 3; //Connect Buzzer on Digital Pin3
void setup()
{
pinMode(buzzPin, OUTPUT);
}
void loop()
{
digitalWrite(buzzPin, HIGH);
delay(1);
digitalWrite(buzzPin, LOW);
delay(1);
}