2013年4月5日 星期五

Arduino 光線控制聲音


本程序應用前面讀取類比端口電壓值的方法,直接將光敏電阻接在數位口。


光敏電阻器的特性 常用的光敏電阻器是硫化鎘光敏電阻器,它是由半導體材料製成的。光敏電阻器的阻值隨入射光線(可見光)的強弱變化而變化,在黑暗條件下,它的阻值(暗阻)可達1~10MΩ;在強光條件(100LX)下,它阻值(亮阻)僅有幾百至數千歐姆。

光敏電阻器對光的敏感性(即光譜特性)與人眼對可見光(0.4~0.76)μm的響應很接近,隻要人眼可感受的光,都會引起它的阻值變化。所以設計光控電路時,都用白熾燈泡光線或自然光線作控製光源,使設計大為簡化。

光敏電阻隨入射光線的強弱其對應的阻值變化不是線性的,也就不能用它作光電的線性變換,這是使用者應注意的地方。初學者可購置一隻光敏電阻器,在夜間點一盞60~ 100 W 的白熾燈,用三用表直接測量光敏電阻器的阻值。測量時,應把光敏電阻對著白熾燈的光,再逐漸拉開與燈的距離(由近到遠),觀察三用表指示的阻值變化,可以直觀驗證光敏電阻的特牲,以加深對它的特性認識。常用的光敏電阻器型號有密封型的MG41、MG42、MG43和非密封型的MG45(售價便宜)。它們的額定功率均在200mW以下。






光敏電阻的一端接在數字6口,另一端與蜂名起正極相連,蜂明器的負極和GND相連。



程式類似蜂鳴器發聲的程序,沒有光照時,正常發出聲音,但聲音特別的小;當有光照時,光敏電阻的阻值減小,所以蜂鳴器兩端的電壓就會增大,蜂鳴器聲音發大。光照越強,電阻越小,蜂鳴器越響。



void setup()
{
 pinMode(6,OUTPUT);
}

void loop()
{
  while(1)
  {   char i,j;
       while(1) {
                         for(i=0;i<80;i++) //輸出一個頻率聲音
                        {   
                            digitalWrite(6,HIGH);
                            delay(1);
                            digitalWrite(6,LOW);
                            delay(1);                      //Hi+Lo=2ms   Freq=500Hz
                         }

                         for(i=0;i<100;i++) //輸出另一個頻率聲音
                        {
                          digitalWrite(6,HIGH);
                          delay(2);
                         digitalWrite(6,LOW);
                         delay(2);                                //Hi+Lo=4 ms  Freq=250Hz
                         }
                 }   
         }
 }


 將程序下載到實驗板後,可以用手電筒或其他發光物體照射光敏電阻,可以聽到
有光照時蜂鳴器聲音更大。

掌握本程序後,大家可以自己動手設計實驗,也可以用光敏電阻控制led燈亮度。



沒有留言:

張貼留言

Messaging API作為替代方案

  LINE超好用功能要沒了!LINE Notify明年3月底終止服務,有什麼替代方案? LINE Notify將於2025年3月31日結束服務,官方建議改用Messaging API作為替代方案。 //CHANNEL_ACCESS_TOKEN = 'Messaging ...