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

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

3天内不再提示

带有蜂鸣器和LED闪烁的Arduino光传感器

454398 来源:wv 2019-10-21 11:14 次阅读

步骤1:

带有蜂鸣器和LED闪烁的Arduino光传感器

从基础开始:将板连接到GND和5V引脚,并确保您有跨接器将正极和负极导轨连接到面包板的另一侧,使它们“活动”,并帮助您构建电路而不会过多地跨过面包板。

我们要创建一个独立运行的LED序列。

让我们连接第一个LED。 LED的正极连接到引脚13。LED的负极将连接一个220欧姆的电阻,然后将其连接到GND。

第2步:第2步-为其他4个LED接线

现在按照相同的方案为其他4个LED接线:正分别使用220欧姆电阻将每个引脚分别连接到引脚12、11、10和9,将负极分别接地。

LED就绪:您将能够通过单独的PIN单独控制它们。

第3步:第3步-连接压电

我们希望蜂鸣器响起。为此,我们将使用压电式蜂鸣器,因此进行接线。

负极线连接到GND,正极线首先连接到100欧姆电阻,而不是引脚7。正如我之前所说,我在网上找到的其他项目中建议使用100欧姆电阻。

步骤4:步骤4-为光伏电池接线

光伏电池是一个简单的电阻器,暴露后会导电点亮。因此,在零光下,它阻止了100%的电流,而在全光下,它允许电流流过。 Arduino“读取”的方式是零光返回值为0,全光返回值为1024。

光伏电池没有正负极。因此,您需要将一侧连接到电路板的正极。负极侧的接线有些复杂:您将使用500欧姆电阻和(b)将其两者(a)连接到负极轨,并直接连接到A0引脚。

电路已准备就绪。让我们看一下代码。

步骤5:步骤5-代码

您将在下面找到完整的代码,以进行剪切和粘贴。它具有//注释,因此您可以了解发生了什么。

这就是代码的作用:

1-传感器读取光水平,将其测量范围从0到1024

2-我们“翻译”

3-对于LED,我们将光的读数转换为闪烁的毫秒数。光线越少,闪烁的速度就越慢。进行一些测试,即使光线很强,它的读数也不会超过700或800(很难达到1024),因此我将700用作“最高”光线水平。由于MAP功能的工作方式,如果光线达到700以上,它将把闪烁时间变成一个负数-整个事情都崩溃了。因此,我创建了一个规则,即Blink_Time不能短于20毫秒。

4-LED依次点亮(即第一个LED点亮,然后关闭时,下一个点亮等等)

5-对于蜂鸣器,我们将光的读数(0-1024)转换为赫兹(120到1500),因此,光越多,音高就越高。

6-蜂鸣器在第一个,第三个和第五个LED同时发出蜂鸣声(并持续销售时间),然后随着LED暂停而暂停。这样可以以相同的节奏产生脉动效果,光和声音。

就是这样。好好享受!

代码:

///带有蜂鸣声和指示灯序列的光传感器,如机场

//用于闪烁的整数

int Blink_Time = 20;//创建此变量以用于眨眼和间隔时间

int Light_Level = 0;//创建此变量以用于光照级别

int light_Pin = A0;//引脚0将用于光电

//蜂鸣器的输入

int Buzz_Tone = 300;//为蜂鸣器的声音创建此变量

int Buzz_Tone_Max = 1500;//蜂鸣音的最大赫兹

int Buzz_Tone_Min = 120;//最小值为蜂鸣音

void setup(){

pinMode(9,OUTPUT);//将品脱9-13初始化为led的输出

pinMode(10,OUTPUT);

pinMode(11,OUTPUT);

pinMode(12,OUTPUT);

pinMode(13,OUTPUT);

pinMode(7,OUTPUT);//设置蜂鸣器-引脚7作为蜂鸣器的输出

Serial.begin(9600); Serial.println( “就绪”);//以9600波特打开串行端口以监视变量的行为

}

void loop(){

Light_Level = AnalogRead(Light_Pin);//读取灯光水平

Blink_Time =地图(Light_Level,0、700、300、1);//如果灯光强度(Blink_Time 《= 20){Blink_Time = 20;}//设置闪烁时间的下限,则根据灯光强度(更多灯光,更快速度)

//。因为光线水平可以超过700,所以映射功能可能导致闪烁时间变为负值,在这种情况下程序将冻结。

//根据灯光水平设置蜂鸣音(更多灯光,更多赫兹,更高音调)

Buzz_Tone =地图(Light_Level,0、700,Buzz_Tone_Min,Buzz_Tone_Max);

//在串行监视器中打印所有变量,以供您查看正在发生的情况

Serial.print(“ Light level =”);

Serial.print(Light_Level);

Serial.print(“闪烁时间=”);

Serial.print(Blink_Time);

Serial.print(“ Buzz_Tone =”);

Serial.print(Buzz_Tone);

Serial.println(“”);

//第一个LED

音(7,Buzz_Tone);////在第一个LED亮起的同时开始发出蜂鸣声

digitalWrite(9,HIGH);//打开LED(HIGH是电压电平)

delay(Blink_Time);//等待[blink time]

digitalWrite(9,LOW);//通过降低电压来关闭LED

noTone(7);//停止发出哔哔声

//在此不发出哔哔声

//在此不发出哔哔声,我只希望发出三声哔哔声,因此将它们放在第一,第三和第五个指示灯

digitalWrite(10,HIGH);//打开LED(HIGH是电压电平)

delay(Blink_Time);//等待[blink time]

digitalWrite(10,LOW);//通过降低电压来关闭LED

//第三个LED

tone(7,Buzz_Tone);//beep

digitalWrite(11,HIGH);//打开LED(HIGH是电压电平)

delay(Blink_Time);//等待[blink time]

digitalWrite(11,LOW);//通过降低电压来关闭LED

noTone(7);

//第四个LED

digitalWrite(12,HIGH);//打开LED(HIGH是电压电平)

delay(Blink_Time);//等待[blink time]

digitalWrite(12,LOW);//通过降低电压来关闭LED

//第五个LED

tone(7,Buzz_Tone);

digitalWrite(13,HIGH);//打开LED(HIGH是电压电平)

delay(Blink_Time);//等待[blink time]

digitalWrite(13,LOW);//通过降低电压来关闭LED

noTone(7);

延迟(5 * Blink_Time);//在一系列闪烁的LED +蜂鸣声之间暂停

}

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

    关注

    3

    文章

    169

    浏览量

    29908
  • 蜂鸣器
    +关注

    关注

    12

    文章

    889

    浏览量

    45849
  • Arduino
    +关注

    关注

    187

    文章

    6461

    浏览量

    186566
收藏 人收藏

    评论

    相关推荐

    美芯晟推出MT3211小尺寸闪烁传感器芯片

    近日,美芯晟针对手机摄像头拍照应用,推出了全新的小尺寸闪烁传感器芯片——MT3211。
    的头像 发表于 11-15 16:41 415次阅读

    传感器评估模块

    电子发烧友网站提供《传感器评估模块.pdf》资料免费下载
    发表于 10-29 09:33 0次下载
    <b class='flag-5'>光</b><b class='flag-5'>传感器</b>评估模块

    光电式传感器的工作原理是什么

    。 1. 的发射 光电式传感器的工作原理首先涉及到的发射。这通常通过发光二极管(LED)、激光二极管(LD)或其他光源实现。这些光源能够产生特定波长的
    的头像 发表于 09-23 09:07 327次阅读

    光电传感器的定义和应用

    光电传感器是一种将信号转换为电信号的传感器,它利用光学原理实现非接触式测量。光电传感器的工作原理基于的反射、折射、吸收或散射等现象,通过
    的头像 发表于 08-08 17:18 848次阅读

    英飞凌推出用于Arduino的XENSIVTM传感器扩展板

    全球功率系统和物联网领域的半导体巨头英飞凌科技股份公司,近日宣布推出一款专为Arduino用户打造的XENSIV™传感器扩展板。这款多功能工具,特别为智能家居和各类消费应用中的智能传感器系统评估而设计。
    的头像 发表于 05-10 10:50 600次阅读

    英飞凌推出用于Arduino的XENSIV传感器扩展板, 搭载英飞凌和Sensirion的智能家居应用传感器

    的XENSIVTM传感器扩展板,这是一款专为评估智能家居和各种消费应用中的智能传感器系统而设计的多功能工具。这款创新型扩展板将英飞凌丰富的传感器产品与Sensirion的SHT35湿度和温度
    发表于 05-07 16:35 808次阅读
    英飞凌推出用于<b class='flag-5'>Arduino</b>的XENSIV<b class='flag-5'>传感器</b>扩展板, 搭载英飞凌和Sensirion的智能家居应用<b class='flag-5'>传感器</b>

    英飞凌和盛思锐合作推出一款支持Arduino传感器扩展板

    据麦姆斯咨询报道,近期,英飞凌(Infineon)推出了一款支持Arduino传感器扩展板,用于评估智能家居和其它消费类应用中的智能传感器系统。
    的头像 发表于 04-10 09:05 2231次阅读

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

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

    如何连接Arduino声音传感器以控制带有声音的LED

    在本教程中,您将学习如何连接Arduino声音传感器以控制带有声音的LED。在本指南结束时,您将拥有一个可以正常工作的声控LED
    的头像 发表于 02-11 10:21 2712次阅读
    如何连接<b class='flag-5'>Arduino</b>声音<b class='flag-5'>传感器</b>以控制<b class='flag-5'>带有</b>声音的<b class='flag-5'>LED</b>

    如何设置Arduino霍尔效应传感器

    在本指南中,您将学习如何设置Arduino霍尔效应传感器,特别是US1881,以检测磁场。这对于需要查找电机的转速或机器中其他运动的项目非常有用。
    的头像 发表于 02-11 10:14 1324次阅读
    如何设置<b class='flag-5'>Arduino</b>霍尔效应<b class='flag-5'>传感器</b>

    VD6283TX环境传感器(2)----移植闪烁频率代码

    100 Hz或120 Hz的闪烁频率。为了消除这种可见闪烁并减少其对人体的潜在影响,许多LED灯采用了脉冲宽度调制(PWM)的调光方法,从而实现更高的闪烁频率。VD6283
    的头像 发表于 12-28 10:17 519次阅读
    VD6283TX环境<b class='flag-5'>光</b><b class='flag-5'>传感器</b>(2)----移植<b class='flag-5'>闪烁</b>频率代码

    LED闪烁的原因 LED闪烁故障解决方法

    LED闪烁的原因 LED闪烁故障解决方法 LED闪烁是指在正常使用过程中,
    的头像 发表于 12-11 15:31 7079次阅读

    追踪arduino原理

    追踪 (LDR) 是一种基于光敏电阻的测量器件,常用于测量光强度和控制感应。在 Arduino 上使用 LDR,可以实现对光线进行检
    的头像 发表于 12-08 10:22 1375次阅读

    VD6283TX环境传感器驱动开发(4)----移植闪烁频率代码

    光学闪烁被定义为人造光源的脉动或波动的现象。
    的头像 发表于 12-01 16:24 546次阅读
    VD6283TX环境<b class='flag-5'>光</b><b class='flag-5'>传感器</b>驱动开发(4)----移植<b class='flag-5'>闪烁</b>频率代码

    VD6283TX环境传感器驱动开发(1)----获取ID

    环境传感器是一种光电探测,能够将转换为电压或者电流,使用多光谱环境传感器为了测量光谱上特
    的头像 发表于 12-01 16:05 651次阅读
    VD6283TX环境<b class='flag-5'>光</b><b class='flag-5'>传感器</b>驱动开发(1)----获取ID