Arduino 入门教程GO 第十五章 光敏电阻与热敏电阻的应用-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 827|回复: 0

Arduino 入门教程GO 第十五章 光敏电阻与热敏电阻的应用

[复制链接]
发表于 2022-1-17 16:48 | 显示全部楼层 |阅读模式
本帖最后由 OpenJumper 于 2022-1-17 16:49 编辑

[md]## 一、光敏电阻与热敏电阻的应用

有时候,探测周围的环境并不需要太复杂的模块,一些简单的电子元件就可以当做传感器使用,例如我们今天要用到的光明电阻和热敏电阻就是这样一种元器件。

## 二、实验器材

+ UNO控制板:1块

+ 光敏电阻:1个

+ 热敏电阻:1个

+ 220Ω电阻:2个

+ LED灯:1个

+ 面包板:1块

## 三、连线示意图

01.jpg
图15-1


## 四、硬件连接图

02.jpg
图15-2



## 五、硬件知识要点

光敏电阻又称光导管,常用的制作材料为硫化镉,另外还有硒、硫化铝、硫化铅和硫化铋等材料。这些制作材料具有在特定波长的光照射下,其阻值迅速减小的特性。这是由于光照产生的载流子都参与导电,在外加电场的作用下作漂移运动,电子奔向电源的正极,空穴奔向电源的负极,从而使光敏电阻器的阻值迅速下降。通常,光敏电阻器都制成薄片结构,以便吸收更多的光能。当它受到光的照射时,半导体片(光敏层)内就激发出电子—空穴对,参与导电,使电路中电流增强。为了获得高的灵敏度,光敏电阻的电极常采用梳状图案,它是在一定的掩膜下向光电导薄膜上蒸镀金或铟等金属形成的。光敏电阻器通常由光敏层、玻璃基片(或树脂防潮膜)和电极等组成。光敏电阻器在电路中用字母“R”或“RL”、“RG”表示。

**主要参数与特性:**

**光电流、亮电阻:**

光敏电阻器在一定的外加电压下,当有光照射时,流过的电流称为光电流,外加电压与光电流之比称为亮电阻,常用“100LX”表示。


**暗电流、暗电阻:**

光敏电阻在一定的外加电压下,当没有光照射的时候,流过的电流称为暗电流。外加电压与暗电流之比称为暗电阻,常用“0LX”表示。


**灵敏度:**

灵敏度是指光敏电阻不受光照射时的电阻值(暗电阻)与受光照射时的电阻值(亮电阻)的相对变化值。


**光谱响应:**

光谱响应又称光谱灵敏度,是指光敏电阻在不同波长的单色光照射下的灵敏度。若将不同波长下的灵敏度画成曲线,就可以得到光谱响应的曲线。


**光照特性:**

光照特性指光敏电阻输出的电信号随光照度而变化的特性。从光敏电阻的光照特性曲线可以看出,随着的光照强度的增加,光敏电阻的阻值开始迅速下降。若进一步增大光照强度,则电阻值变化减小,然后逐渐趋向平缓。在大多数情况下,该特性为非线性。


**伏安特性曲线:**

伏安特性曲线用来描述光敏电阻的外加电压与光电流的关系,对于光敏器件来说,其光电流随外加电压的增大而增大。


**温度系数:**

光敏电阻的光电效应受温度影响较大,部分光敏电阻在低温下的光电灵敏较高,而在高温下的灵敏度则较低。


**额定功率:**

额定功率是指光敏电阻用于某种线路中所允许消耗的功率,当温度升高时,其消耗的功率就降低。


## 六、程序编写[/md]
  1. int sensorPin = A0; // 模拟输入引脚
  2. int ledPin = 13; // led 指示灯引脚
  3. int sensorValue = 0; // 模拟输入数值变量
  4. void setup()
  5. {
  6. pinMode(ledPin, OUTPUT);
  7. }
  8. void loop()
  9. {
  10. sensorValue = analogRead(sensorPin); // 读取电位器电压值
  11. digitalWrite(ledPin, HIGH); // 点亮 led
  12. delay(sensorValue); // 使用读取的这个模拟量值作为演示时间,单位 ms,范围 0-
  13. 1023;
  14. digitalWrite(ledPin, LOW); // 熄灭 led
  15. delay(sensorValue); // 使用读取的这个模拟量值作为演示时间,单位 ms,范围 0-
  16. 1023;
  17. }
复制代码

[md]
## 七、程序知识要点

loop()

在 setup() 函数中初始化和定义了变量,然后执行 loop() 函数。顾名思义,该函数在程序运行过程中不断的循环,根据一些反馈,相应改变执行情况。通过该函数动态控制控制器的各项操作。

示例[/md]
  1. int buttonPin = 3;
  2. // setup 中初始化串口和按键针脚.
  3. void setup()
  4. {
  5.   beginSerial(9600);
  6.   pinMode(buttonPin, INPUT);
  7. }

  8. // loop 中每次都检查按钮,如果按钮被按下,就发送信息到串口
  9. void loop()
  10. {
  11.   if (digitalRead(buttonPin) == HIGH)
  12.     serialWrite('H');
  13.   else
  14.     serialWrite('L');

  15.   delay(1000);
  16. }
复制代码

[md]
## 八、拓展阅读

同光敏电阻相似的还有我们的热敏电阻

03.jpg


上图是一种测温型NTC热敏电阻,由于热敏电阻应用广泛,种类繁多,这里进针一种进行讲解,NTC(Negative Temperature Coeff1Cient)是指随温度上升电阻呈指数关系减小、具有负温度系数的热敏电阻现象和材料。该材料是利用锰、铜、硅、钴、铁、镍、锌等两种或两种以上的金属氧化物进行充分混合、成型、烧结等工艺而成的半导体陶瓷,可制成具有负温度系数(NTC)的热敏电阻.其电阻率和材料常数随材料成分比例、烧结气氛、烧结温度和结构状态不同而变化。现在还出现了以碳化硅、硒化锡、氮化钽等为代表的非氧化物系NTC 热敏电阻材料。由于热敏电阻与温度的变化曲线是非线性的,而 8位单片机的计算能力有限,所以为了简单实用,摒弃了复杂的计算公式,采用查表法算取温度值。温度精度值取决于 AD 采样精度、温度表格精度和热敏电阻精度。

硬件链接的方法与光敏电阻相同,在这里不单独示图

具体程序如下:
[/md]
  1. int sensorPin = A0; // 模拟输入引脚
  2. int ledPin = 13; // led 指示灯引脚
  3. int sensorValue = 0; // 模拟输入数值变量
  4. void setup() {
  5. // 声明引脚为输出模式
  6. pinMode(ledPin, OUTPUT);
  7. }
  8. void loop() {
  9. // 读取电位器电压值
  10. sensorValue = analogRead(sensorPin);
  11. digitalWrite(ledPin, HIGH);
  12. // 使用读取的这个模拟量值作为演示时间,单位 ms,范围 0-1023
  13. delay(sensorValue);
  14. digitalWrite(ledPin, LOW);
  15. // 使用读取的这个模拟量值作为演示时间,单位 ms,范围 0-1023
  16. delay(sensorValue);
  17. }
复制代码
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-12-28 08:32 , Processed in 0.081600 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表