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