yaboPP电子
项目

读取传感器Arduino

2015年6月18日通过蒂姆血性小子

Arduino可以轻松获取传感器值,这是Arduino非常有用的特点之一。

Arduino可以轻松获取传感器值,这是Arduino非常有用的特点之一。

传感器是将一个物理量,如光强度或温度,转换成一个电量的设备。例如,热电偶输出与温度成比例的电压。有许多不同类型的传感器:

  • 光传感器
  • 运动传感器
  • 温度感应器
  • 磁场传感器
  • 重力传感器
  • 湿度传感器
  • 湿敏元件
  • 振动传感器
  • 压力传感器
  • 电场传感器
  • 声音传感器
  • 位置传感器

这些传感器被用于数千种不同的应用领域,包括制造业、机械、航空航天、汽车、医药和机器人。

实验1:距离传感器

在该实验中,我们将使用夏普GP2Y0A21YK接近传感器来控制LED的亮度。

锋利的红外传感器
锋利的红外传感器

需要硬件

  • 1 x Arduino Mega2560
  • 1 x电路试验板
  • 1 x领导
  • 5 x跳线
  • 1 × 470欧姆电阻
  • 1 X夏普GP2Y0A21YK接近传感器


接线图

线路图
线路图

尖锐的接近传感器可以检测到10厘米的物体,远离80厘米。它发出红外光的脉冲,然后检测光反射光的角度。对象越远,输出电压越低。如果传感器接收到反射,则传感器的输出电压将为0 V。如果物体为10厘米或更近,则输出电压将等于5 V.(在该实验中,我们为传感器提供5V。)

传感器的输出连接到Arduino模拟输入。然后,Arduino的模数转换器(ADC)将该值转换为0到1023之间的值。然后将该值映射到0到25​​5之间的值,并且该数字用于设置脉冲的占空比 -宽度调制输出,控制LED的亮度。结果是,对象越靠近接近传感器,LED亮刻将闪耀。

实验代码1

Const Int PWM = 2;// PWM Const int ADC = A0的初始化引脚;// ADC void Setup()初始化引脚(){Pinmode(PWM,输出);//更改LED亮度} void循环(){int sensor_val = Analogread(ADC);Sensor_Val = Map(Sensor_Val,0,1023,0,255);/ * -----------地图功能------------上面的Funtion缩放ADC的输出,即10位,并为值提供值BTW 0到1023,以值为值BTW 0至255表格模拟杂乱功能,只能在此范围内接收值。* / Anvalwwrite(PWM,SENSOR_VAL);//将传感器值设置为PWM}

Reading_Sensors_With_Arduino.zip

实验二:热传感器

在这个实验中,Arduino将使用LM35传感器IC测量温度。LM35是一个低电压IC,需要+4 VDC到+20 VDC的电源。这是理想的,因为我们可以通过Arduino的+ 5v输出为传感器供电。LM35只有3个引脚,2个用于电源,1个用于模拟输出。输出引脚提供模拟电压输出,与温度成线性比例,在摄氏度。输出范围从0v - 1.5 V,当与单一电源供电。0v的输出对应于0℃的温度,温度每升高一度,输出就增加10mv。要将输出电压转换为温度,只需将输出电压除以10(单位为mV)。例如输出315mv (0.315v),则温度为31.5℃。


LM35 IC引脚配置:

引脚配置


引脚配置

需要硬件

  • 1 × LM35温度传感器
  • 2 x发光二极管
  • 1 x Mivelbox.
  • 2个470欧姆电阻
  • 1 x Arduino Mega2560
  • 1 x电路试验板
  • 10 ×跳线


接线图

线路图
线路图

实验代码2

LM35的输出引脚(引脚2)连接到Arduino的A0。代码使用函数analogRead()将输出电压转换为0到1023之间的数字。将这个数字乘以0.48828125,将该值转换为C度,然后显示在串行监视器上:

Const int adc = 0;//模拟输入端命名引脚0为adc const int high = 8;//用于打开和关闭黄色LED const int low = 9;//用于打开和关闭绿色LED void setup() {Serial.begin(9600);//启动串口通信,波特率9600 pinMode(高,输出);//声明LED引脚为OUTPUT pinMode(low,OUTPUT);} void loop() {int adc = analogRead(0);//读取模拟电压并存储在一个整数adc = adc * 0.48828125;//将读数转换为摄氏度串行。打印("温度= ");//在串行监视器上显示 //Temperature reading Serial.print("*C"); //TEMPRATURE = 27*C ETC Serial.println(); //To end the line delay(1000); //1 Sec delay /* LOGIC: if (temperature (adc) > 70 ° C ) turn on Yellow Leds turn off Green Leds else turn off Yellow Leds turn on Green Led */ if(adc>70) // This is the control statement { digitalWrite(high,HIGH) ; digitalWrite(low,LOW) ; } else { digitalWrite(high,LOW) ; digitalWrite(low,HIGH) ; }

ready_sensors_with_arduino2.zip.

视频

为自己提供这个项目!BOM。