电子说
步骤1:
从基础开始:将板连接到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 +蜂鸣声之间暂停
}
全部0条评论
快来发表一下你的评论吧 !