步驟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 +蜂鳴聲之間暫停
}
-
光傳感器
+關注
關注
3文章
173瀏覽量
30318 -
蜂鳴器
+關注
關注
12文章
893瀏覽量
46693 -
Arduino
+關注
關注
188文章
6491瀏覽量
190093
發布評論請先 登錄
超越視覺感知:解碼美芯晟閃爍光傳感器如何重構人光交互

Vishay Opto VEML6031X00汽車級環境光傳感器

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

光電式傳感器的功能有哪些
光電式傳感器的工作原理是什么
光電傳感器的定義和應用
雙光路NDIR紅外氣體傳感器的技術優勢與前景應用

評論