<u id="blkba"></u>

        <acronym id="blkba"></acronym><font id="blkba"><tbody id="blkba"></tbody></font>
      1. 專注電子技術學習與研究
        當前位置:單片機教程網 >> Arduino >> 瀏覽文章

        光電門與電壓放大器做電磁感應定律驗證實驗

        作者:未知   來源:互聯網   點擊數:  更新時間:2014年07月31日   【字體:

        根據上述原理可知,實驗需要測量的量有兩個:擋光時間間隔和擋光時的電壓平均值。擋光時間可通過Arduino的數字輸入端口采集光電門信號并計算得到,電壓值可以通過Arduino的模擬信號輸入端口采集。但是由于Arduino的模擬信號輸入端只能精確到5mV,而本實驗中感應電動勢大概為100mV左右,誤差太大。所以需要將采集到的感應電動勢的值線性放大后再輸入Arduino。

        放大電路使用Lm358P集成運放,加上電阻構建一個電壓線性放大模塊,原理圖如圖2,自制電壓放大模塊實物圖如圖3所示。

         

         
        電壓放大模塊中的R11千歐姆電阻,R210千歐姆電阻,這樣放大倍數為11。因為輸入的感應電動勢大概為100mV,經過放大后達到1000mV,用精度為5mVArduino模擬信號輸入端來采集,誤差大概0.5%,達到實驗要求。
        以下為Arduino端的主要代碼,通過這些代碼可以看到具體的數據采集過程。
        ……省略變量定義部分,以下主程序循環執行,大概10微秒執行一遍。
        void loop () {
        if(digitalRead(inputPin1) ==HIGH)//如果光電門輸入信號為1,即擋光時
         if(i1==0)                     //如果同時i1變量等于0
           t1=micros();                //令變量t1等于此刻時間,精確到1微秒
          i1=1;    }                     //令變量i1等于1,下次循環不再執行上面程序
           if(i1==1)                       //如果變量i1等于1,即擋光的過程中
          {  v1=analogRead(A0);    //每執行一次程序采集一個電壓值,大概每10微秒采集一次
          vv+=v1;                   //變量vv為對電壓進行累加的值
          i++;    }}                  //令變量i每執行一次增加1
        if(digitalRead(inputPin1) ==LOW&&i1==1) 
        //如果光電門輸入信號為0并且i1等于1,即擋光剛結束時
        { tt1=micros();              //令變量tt1等于此刻時間,精確到1微秒
          t1=tt1-t1;                 //通過tt1與t1想減計算得到時間間隔
          i1=0;                      //令變量i1等于0,即此次擋光計算結束
          v1=vv/i;                   //累加的電壓除于累加次數得到平均電壓值
          vv=0;
          i=0;
           Serial.print(t1);         //發送時間間隔
           Serial.print("t ");       //發送分割字母
           Serial.print(v1);         //發送平均電壓值
           Serial.print(0,BYTE);     //發送結束字符
           delay(100);}   }
        通過以上代碼可以計算得到光電門擋光時間,以及對擋光時間內大概每10微秒采集一次的電壓求平均得到的平均電壓。因為程序每執行一遍會有100微秒左右的延時,所以計算得到的擋光時間間隔也會有約20微秒的誤差。由于每次擋光時間大概有幾十毫秒,所以擋光時間間隔的誤差大概有0.5%左右,達到實驗精度。圖4為實驗裝置實物圖。
         
        軟件部分利用Adobe Flash來開發,最后生成swf動畫課件。因為具體代碼較多,這里不再列出。圖為課件界面。

         
        當移動小車正向通過光電門時,課件中的小車也會移動。當Arduino端發送數據時,課件中會實時顯示在對應的方框內。點擊記錄數據按鈕,可以將此次數據記錄在表格中。當移動小車反向通過光電門時,課件中的小車也會回到原來位置,并且方框中的數據同時清零。移動小車反復經過光電門,就可以記錄多組時間間隔和感應電動勢的數據。
        記錄完后,將表格中的數據復制,并粘貼到Excel表格中,利用Excel來進行數據處理,圖6為某此實驗數據。


        從實驗數據中可以看到,在同樣匝數下,感應電動勢和擋光時間的乘積為一定值。如果將線圈匝數增大一倍,感應電動勢和擋光時間的乘積也增大一倍。由此可以得到法拉第電磁感應定律。
        關閉窗口

        相關文章

        特黄级国产片aaa,日本免费啪啪漫画无遮拦,欧美最厉害的rapper潮水
              <u id="blkba"></u>

              <acronym id="blkba"></acronym><font id="blkba"><tbody id="blkba"></tbody></font>