0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何将光敏电阻连接到Arduino板并读取电压

科技观察员 来源:electroschematics 作者:electroschematics 2024-02-11 10:45 次阅读

在本快速入门指南中,您将学习如何将光敏电阻连接到Arduino板并读取电压。您将首先使用串行监视器来了解光传感器的行为方式,然后构建一个电路,在天黑时自动打开灯。

当您学习Arduino时,这是一个很好的练习电路。代码简单明了,光传感器连接也很简单。

所需零件

Arduino Uno的

面包板(和一些面包板电线)

光敏电阻 – 也称为光敏电阻 (LDR) *

电阻 10 kΩ

电线

将光传感器连接到Arduino

要将光传感器连接到Arduino,请将光传感器与5V和GND之间的电阻串联。然后将电阻器和光传感器之间的中间点连接到Arduino上的模拟输入引脚。

此设置适用于光敏电阻、光电二极管和光电晶体管

使用光敏电阻的Arduino光传感器电路示例

在面包板上连接Arduino光传感器

以下是使用面包板和一些电缆将此电路连接到Arduino的方法:

Arduino光传感器电路连接图

Arduino光传感器代码

此Arduino代码是读取电压tage 从光传感器(连接到模拟引脚 A0)然后将模拟读数值打印到串行监视器的示例。

还有一些代码会尝试确定它是黑暗的、昏暗的、明亮的、明亮的还是非常明亮的。您必须调整阈值才能使其与您的传感器一起使用。

模拟引脚将为您提供一个介于 0 和 1023 之间的值,其中 0 表示 0V,1023 表示可能的最大电压(通常为 5V)。

与所有Arduino代码一样,您有两个主要函数setup()和loop():

在 setup() 中,您需要配置串行端口,以便可以读出值。

在 loop() 中,您需要读取模拟输入并在串行端口上打印此值。

void setup() {
  // Setup serial communication at baudrate 9600 for reading the light sensor
  Serial.begin(9600);
}

void loop() {
  // reads the input on analog pin A0
  int lightValue = analogRead(A0);

  // Print out the values to read in the Serial Monitor
  Serial.print("Analog reading (0-1023): ");
  Serial.print(lightValue);

  // Use the value to determine how dark it is 
  // (Try tweaking these to make it more accurate)
  if (lightValue < 10) {
    Serial.println(" - Dark");
  } else if (lightValue < 200) {
    Serial.println(" - Dim");
  } else if (lightValue < 500) {
    Serial.println(" - Light");
  } else if (lightValue < 800) {
    Serial.println(" - Bright");
  } else {
    Serial.println(" - Very bright");
  }

  delay(500);
}

代码的工作原理

在setup()函数中,只有一行:这一行设置了Arduino的串行端口,以便可以将数据从Arduino发送到您的计算机中。Serial.begin(9600);

在 loop() 函数中,有四个部分:

int lightValue = analogRead(A0);:此行读取模拟引脚 A0 上的模拟电压。它返回一个介于 0 和 1023
之间的值,表示引脚上相对于参考电压的电压电平(大多数 Arduino 板通常为 5V)。该值存储在变量 中。lightValue

Serial.println(lightValue);:此行将 lightValue 的值打印到串行监视器,以便您可以读取它。

if (lightValue 《 10) {
。..这些线将使用预先确定的阈值来确定它是暗的、暗的、亮的、亮的还是非常亮的。您必须调整阈值以使其适用于您的传感器。

delay(500);:此行在每次读取和打印之间增加 500 毫秒的小延迟。此延迟可防止代码运行过快。这样可以更轻松地读取串行监视器上的读数。

此代码的最终结果是,它连续读取引脚 A0 处的模拟电压,将读数(0 到 1023
之间的数字)和亮度值(暗、暗、亮、亮或非常亮)打印到串行监视器,并在循环中重复该过程。

当您将手放在传感器上时,它检测到的光量会发生变化,您可以在串行监视器中观察变化的值。这是可视化数据并在事情未按预期工作时进行调试的有用方法。

使用串行监视器

若要使用串行监视器检查上述代码的结果,请按照下列步骤操作:

使用USB电缆将Arduino板连接到计算机。

使用Arduino IDE将提供的代码上传到Arduino板。

通过单击放大镜图标或使用键盘快捷键 (Windows/Linux) 或 (Mac) 打开串行监视器。Ctrl + Shift + MCmd +
Shift + M

将串行监视器中的波特率设置为 9600(或与代码中的函数中的值相同)。Serial.begin()

读取串行监视器中的输出。

将手放在光传感器上,查看读数如何实时变化。

Arduino串口监视器

示例:暗激活 LED

下面是一个示例电路,其中发光二极管 (LED) 在天黑时打开。如果您想控制户外灯,您可以轻松地用更强大的 LED 替换
LED。您可以在我们的晶体管教程中了解有关如何做到这一点的更多信息

以下是在试验板上连接电路的方法:

Arduino光传感器电路,在面包板上带有LED输出

// Definition of constants - values that will never change
const int LIGHT_SENSOR = A0;
const int LED          = 3;

// Definition of variables - values that can change
int analogValue;

void setup() {
  // Set the LED pin as an output
  pinMode(LED, OUTPUT);
}

void loop() {
  // read the input from the analog pin
  analogValue = analogRead(LIGHT_SENSOR);
  
  // Check if it's above a specific threshold and turn the LED on or off
  if(analogValue < 700)
    digitalWrite(LED, HIGH); // turn on LED
  else
    digitalWrite(LED, LOW);  // turn off LED
}

审核编辑:陈陈

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 光敏电阻
    +关注

    关注

    4

    文章

    293

    浏览量

    48906
  • Arduino
    +关注

    关注

    187

    文章

    6464

    浏览量

    186637
收藏 人收藏

    评论

    相关推荐

    光敏电阻工作原理

    的金属电极之间加上电压,其中便有电流通过,受到适当波长的光线照射时,电流就会随光强的增加而变大,从而实现光电转换。光敏电阻没有极性,纯粹是一个电阻器件,使用时既可加直流电压,也可以加交
    发表于 02-22 15:59

    arduino读取光敏电阻数值

    **arduino读取光敏电阻数值**无奈的吐槽这几天不知道咋回事,我总觉得有很多事情想干,却不知道从哪里下手,每天一紧张就过去了,不得不感慨一下时间之快,果然时间就是最公平的,不论你身处何地,都会
    发表于 01-17 07:45

    如何将模块连接到互联网和Arduino

    如何将模块连接到互联网和 Arduino
    发表于 06-12 06:12

    光敏电阻的特性和光敏电阻的应用

    光敏电阻
    发表于 08-13 18:33 198次下载

    光敏电阻的种类

    光敏电阻器按制作材料不同,可分为多晶光敏电阻器和单晶光敏电阻器两大类。按材料名称还可分为硫化镉( CdS)、硒化镉(CdSe)、硫化铅(PbS)、硒化铅(PbSe)、锑化铟( InSb)光敏电
    的头像 发表于 07-10 14:08 1.1w次阅读

    光敏电阻特性

    光敏电阻两端所加电压和其内部通过的电流的关系曲线,称为光敏电阻的伏安特性。 一般光敏电阻如硫化铅、硫化铊的伏安特性曲线如图9‐3所示。当光照一定时,其阻值与外加
    的头像 发表于 07-10 14:23 4.1w次阅读
    <b class='flag-5'>光敏电阻</b>特性

    光敏电阻的分类_光敏电阻首要特性

    按半导体资料分:本征型光敏电阻、掺杂型光敏电阻。后者功用安稳,特性较好,故如今大都选用它。
    的头像 发表于 03-22 16:28 1.1w次阅读

    使用Arduino实现光敏电阻实验的例程免费下载

    本文档的主要内容详细介绍的是使用Arduino实现光敏电阻实验的例程免费下载。
    发表于 12-03 16:30 18次下载

    光敏电阻数值arduino读取

    **arduino读取光敏电阻数值**无奈的吐槽这几天不知道咋回事,我总觉得有很多事情想干,却不知道从哪里下手,每天一紧张就过去了,不得不感慨一下时间之快,果然时间就是最公平的,不论你身处何地,都会
    发表于 01-17 11:47 1次下载
    <b class='flag-5'>光敏电阻</b>数值<b class='flag-5'>arduino</b><b class='flag-5'>读取</b>

    使用MKR1000/ADAFRUIT模拟GPS读取光敏电阻

    电子发烧友网站提供《使用MKR1000/ADAFRUIT模拟GPS读取光敏电阻.zip》资料免费下载
    发表于 12-26 10:33 0次下载
    使用MKR1000/ADAFRUIT模拟GPS<b class='flag-5'>读取</b><b class='flag-5'>光敏电阻</b>

    Snap:bit:光敏电阻连接到Micro:bit

    电子发烧友网站提供《Snap:bit:光敏电阻连接到Micro:bit.zip》资料免费下载
    发表于 06-19 10:15 0次下载
    Snap:bit:<b class='flag-5'>将</b><b class='flag-5'>光敏电阻</b><b class='flag-5'>连接到</b>Micro:bit

    Arduino光敏电阻示例KY-018

    电子发烧友网站提供《Arduino光敏电阻示例KY-018.zip》资料免费下载
    发表于 07-10 11:17 2次下载
    <b class='flag-5'>Arduino</b><b class='flag-5'>光敏电阻</b>示例KY-018

    如何将按钮连接到Arduino

    在本快速入门指南中,您将学习如何将按钮连接到Arduino根据按钮是否被按下来读取HIGH
    的头像 发表于 02-11 10:52 3463次阅读
    <b class='flag-5'>如何将</b>按钮<b class='flag-5'>连接到</b><b class='flag-5'>Arduino</b><b class='flag-5'>板</b>

    如何将LED连接到Arduino使其闪烁

     在本快速入门指南中,您将学习如何将 LED 连接到 Arduino 使其闪烁。
    的头像 发表于 02-11 10:53 2056次阅读
    <b class='flag-5'>如何将</b>LED<b class='flag-5'>连接到</b><b class='flag-5'>Arduino</b><b class='flag-5'>板</b><b class='flag-5'>并</b>使其闪烁

    如何选择光敏电阻型号 光敏电阻5506与5516的区别

    不同型号的光敏电阻在不同波长范围内的光照响应特性可能会有差异,了解所需的光照响应波长范围,选择对应的光敏电阻型号。
    的头像 发表于 01-30 15:17 7702次阅读