步驟1:
從基礎(chǔ)開始:將板連接到GND和5V引腳,并確保您有跨接器將正極和負(fù)極導(dǎo)軌連接到面包板的另一側(cè),使它們“活動”,并幫助您構(gòu)建電路而不會過多地跨過面包板。
我們要創(chuàng)建一個獨立運行的LED序列。
讓我們連接第一個LED。 LED的正極連接到引腳13。LED的負(fù)極將連接一個220歐姆的電阻,然后將其連接到GND。
第2步:第2步-為其他4個LED接線
現(xiàn)在按照相同的方案為其他4個LED接線:正分別使用220歐姆電阻將每個引腳分別連接到引腳12、11、10和9,將負(fù)極分別接地。
LED就緒:您將能夠通過單獨的PIN單獨控制它們。
第3步:第3步-連接壓電
我們希望蜂鳴器響起。為此,我們將使用壓電式蜂鳴器,因此進(jìn)行接線。
負(fù)極線連接到GND,正極線首先連接到100歐姆電阻,而不是引腳7。正如我之前所說,我在網(wǎng)上找到的其他項目中建議使用100歐姆電阻。
步驟4:步驟4-為光伏電池接線
光伏電池是一個簡單的電阻器,暴露后會導(dǎo)電點亮。因此,在零光下,它阻止了100%的電流,而在全光下,它允許電流流過。 Arduino“讀取”的方式是零光返回值為0,全光返回值為1024。
光伏電池沒有正負(fù)極。因此,您需要將一側(cè)連接到電路板的正極。負(fù)極側(cè)的接線有些復(fù)雜:您將使用500歐姆電阻和(b)將其兩者(a)連接到負(fù)極軌,并直接連接到A0引腳。
電路已準(zhǔn)備就緒。讓我們看一下代碼。
步驟5:步驟5-代碼
您將在下面找到完整的代碼,以進(jìn)行剪切和粘貼。它具有//注釋,因此您可以了解發(fā)生了什么。
這就是代碼的作用:
1-傳感器讀取光水平,將其測量范圍從0到1024
2-我們“翻譯”
3-對于LED,我們將光的讀數(shù)轉(zhuǎn)換為閃爍的毫秒數(shù)。光線越少,閃爍的速度就越慢。進(jìn)行一些測試,即使光線很強(qiáng),它的讀數(shù)也不會超過700或800(很難達(dá)到1024),因此我將700用作“最高”光線水平。由于MAP功能的工作方式,如果光線達(dá)到700以上,它將把閃爍時間變成一個負(fù)數(shù)-整個事情都崩潰了。因此,我創(chuàng)建了一個規(guī)則,即Blink_Time不能短于20毫秒。
4-LED依次點亮(即第一個LED點亮,然后關(guān)閉時,下一個點亮等等)
5-對于蜂鳴器,我們將光的讀數(shù)(0-1024)轉(zhuǎn)換為赫茲(120到1500),因此,光越多,音高就越高。
6-蜂鳴器在第一個,第三個和第五個LED同時發(fā)出蜂鳴聲(并持續(xù)銷售時間),然后隨著LED暫停而暫停。這樣可以以相同的節(jié)奏產(chǎn)生脈動效果,光和聲音。
就是這樣。好好享受!
代碼:
///帶有蜂鳴聲和指示燈序列的光傳感器,如機(jī)場
//用于閃爍的整數(shù)
int Blink_Time = 20;//創(chuàng)建此變量以用于眨眼和間隔時間
int Light_Level = 0;//創(chuàng)建此變量以用于光照級別
int light_Pin = A0;//引腳0將用于光電管
//蜂鳴器的輸入
int Buzz_Tone = 300;//為蜂鳴器的聲音創(chuàng)建此變量
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);//設(shè)置蜂鳴器-引腳7作為蜂鳴器的輸出
Serial.begin(9600); Serial.println( “就緒”);//以9600波特打開串行端口以監(jiān)視變量的行為
}
void loop(){
Light_Level = AnalogRead(Light_Pin);//讀取燈光水平
Blink_Time =地圖(Light_Level,0、700、300、1);//如果燈光強(qiáng)度(Blink_Time 《= 20){Blink_Time = 20;}//設(shè)置閃爍時間的下限,則根據(jù)燈光強(qiáng)度(更多燈光,更快速度)
//。因為光線水平可以超過700,所以映射功能可能導(dǎo)致閃爍時間變?yōu)樨?fù)值,在這種情況下程序?qū)鼋Y(jié)。
//根據(jù)燈光水平設(shè)置蜂鳴音(更多燈光,更多赫茲,更高音調(diào))
Buzz_Tone =地圖(Light_Level,0、700,Buzz_Tone_Min,Buzz_Tone_Max);
//在串行監(jiān)視器中打印所有變量,以供您查看正在發(fā)生的情況
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亮起的同時開始發(fā)出蜂鳴聲
digitalWrite(9,HIGH);//打開LED(HIGH是電壓電平)
delay(Blink_Time);//等待[blink time]
digitalWrite(9,LOW);//通過降低電壓來關(guān)閉LED
noTone(7);//停止發(fā)出嗶嗶聲
//在此不發(fā)出嗶嗶聲
//在此不發(fā)出嗶嗶聲,我只希望發(fā)出三聲嗶嗶聲,因此將它們放在第一,第三和第五個指示燈
digitalWrite(10,HIGH);//打開LED(HIGH是電壓電平)
delay(Blink_Time);//等待[blink time]
digitalWrite(10,LOW);//通過降低電壓來關(guān)閉LED
//第三個LED
tone(7,Buzz_Tone);//beep
digitalWrite(11,HIGH);//打開LED(HIGH是電壓電平)
delay(Blink_Time);//等待[blink time]
digitalWrite(11,LOW);//通過降低電壓來關(guān)閉LED
noTone(7);
//第四個LED
digitalWrite(12,HIGH);//打開LED(HIGH是電壓電平)
delay(Blink_Time);//等待[blink time]
digitalWrite(12,LOW);//通過降低電壓來關(guān)閉LED
//第五個LED
tone(7,Buzz_Tone);
digitalWrite(13,HIGH);//打開LED(HIGH是電壓電平)
delay(Blink_Time);//等待[blink time]
digitalWrite(13,LOW);//通過降低電壓來關(guān)閉LED
noTone(7);
延遲(5 * Blink_Time);//在一系列閃爍的LED +蜂鳴聲之間暫停
}
-
光傳感器
+關(guān)注
關(guān)注
3文章
173瀏覽量
30265 -
蜂鳴器
+關(guān)注
關(guān)注
12文章
893瀏覽量
46548 -
Arduino
+關(guān)注
關(guān)注
188文章
6485瀏覽量
189774
發(fā)布評論請先 登錄
Vishay Opto VEML6031X00汽車級環(huán)境光傳感器

光電傳感器與激光傳感器的對比
LED智能照明常用的六種傳感器
如何選擇適合的光傳感器

美芯晟推出MT3211小尺寸閃爍光傳感器芯片
光電式傳感器的功能有哪些
光電式傳感器的工作原理是什么
光電傳感器的定義和應(yīng)用
雙光路NDIR紅外氣體傳感器的技術(shù)優(yōu)勢與前景應(yīng)用

評論