本實驗所需器件與第二個實驗相同。但是連線方式有所區別,先將Arduino的電源輸出接到兩個光電門,然后再將光電門1的信號輸出線接到Arduino的第10個端口,光電門2的信號輸出線接到Arduino的第11個端口。對Arduino寫入下列程序(只有主要程序段):
……
void loop () {
if(digitalRead(inputPin1) ==HIGH&&i1==0) //如果光電門1被擋光,則運行
{ t1=micros(); //將當前系統的時間賦值給t1,精確到1微秒
if(digitalRead(inputPin2)==HIGH&&i2==0) /如果光電門2被擋光,則運行
{ t2=micros();//將當前系統的時間賦值給t2,精確到1微秒
if(digitalRead(inputPin1) ==LOW&&i1==1)//如果光電門1擋光結束,則運行
{ tt1=micros(); //將當前系統的時間賦值給tt1
if(digitalRead(inputPin2)==LOW&&i2==1)
{ ……與光電門1的代碼類似,此處省略…… }
……
可以看到Arduino端程序的作用是發送兩個光電門各自被擋光的時間間隔,利用字符“l”和“r”來區分兩個光電門。這段程序能夠識別發送的時間間隔是哪個光電門的。所以在Flash端可以實現更多的功能。下面筆者介紹用此傳感器進行《探究碰撞中的不變量》課件的制作。
本實驗需要測量的有質量和速度,需要計算的有mv、mv2、v/m等。質量用天平測完后直接填入課件中,速度由光電門測得的數據計算得到。
因為是探究課,所以需要計算的一些量不能全部都顯示在課件上,只有當學生猜想到某個量時,才可以將這個量的計算值顯示出來,而這是普通的商用傳感器軟件所沒法完成的。除了這個功能外,還需要在課件上實時的顯示滑塊的位置,以便使學生能更直觀的了解到滑塊的運動。
筆者根據上訴想法,制作了《探究碰撞中的不變量》這堂課的實驗部分課件。以下就是一些課件界面的截圖,有關代碼部分因為字數過多省去。
|
首先顯示的界面很簡單,只有一些最基本的測速部分。導軌上也只有一個滑塊?梢酝ㄟ^這個來講解測速原理。在實際實驗時課件上滑塊的位置會隨著真實滑塊的運動而改變位置,兩個速度框里會實時顯示滑塊通過光電門時的速度。在課件的右下角有一些有圖案的按鈕,通過點擊這些按鈕可以實現不同情況的碰撞探究。以下是探究兩個物體相對運動發生碰撞的情況?梢钥吹近c擊按鈕后會出現一個用來記錄實驗數據的表格。此時只要填入兩個物體的質量和擋光片的寬度,然后使兩個滑塊相對運動發生碰撞,課件便會自動計算出兩個滑塊碰前和碰后的速度,并可以通過點擊填入速度按鈕來選擇是否采用這組數據。
|
當采集到了三組數據后,可以讓學生通過這些數據進行猜想,然后通過學生的猜想來進行具體數據的計算。這些可以通過課件右下角的幾個彩色圓點按鈕來實現,當然我們在之前必須設計足夠多的猜想結果。點擊原點按鈕后顯示的情況如下圖所示:
|
通過點擊計算按鈕,課件便會計算出我們想要計算的結果。通過觀察這些結果來驗證學生的猜想是否正確。