|
|
|
|
光電感應器原理及偵測 |
|
|
|
|
|
|
|
|
光電感應器 |
|
|
|
|
|
|
光電感應器的原理 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
TCRT5000 IR 光電感應器介紹 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
調整TCRT5000 IR光電感應器的強度 |
|
|
|
|
|
|
|
|
|
|
|
|
請根據下列左圖的操作說明,依照右圖之示意調整適當的感應強度。 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
TCRT5000 IR光電感應器測試線路 |
|
|
|
|
|
|
|
|
線路圖 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
測試線路組裝 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
光電感應器測試程式 |
|
|
|
|
|
|
|
|
|
|
Sensor Test偵測感應器程式說明 |
|
|
|
|
範例程式 : Program\sensor_test.py |
|
|
|
|
|
|
|
|
|
|
|
以DI腳位偵測光電感應器。 |
|
|
|
|
若是感應器發生感應,則顯示HAPPY圖形,若未發生感應,則顯示ANGRY圖形 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Sensor Detect連續偵測感應器程式說明 |
|
|
|
|
範例程式 : Program\sensor_detect.py |
|
|
|
|
|
|
|
|
|
|
|
|
|
以DI腳位偵測光電感應器。 |
|
|
|
|
若是感應器發生感應,則累加計數器,以計算每次感應發生的時間內共發生多少次偵測動作。 |
|
|
|
|
若是Button A被按下,將計數器歸零,重新計算感應器發生感應偵測次數。 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
正負緣觸發 |
|
|
|
|
|
|
|
|
程式會發生多次偵測的問題 |
|
|
|
|
|
|
|
|
|
|
|
|
當信號發生時間較長時,由於程式連續偵測信號,會造成多次偵測的問題。如彈珠台的光電感應器多次偵測到同一次進球時的信號,將會重複多次累計分數,使遊戲無法正確偵測及記錄分數。 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
正負緣觸發 |
|
|
|
|
|
|
|
|
|
|
|
|
信號由低電位改變為高電位時,稱為正緣觸發。由高電位改變為低電位時,稱為負緣觸發。 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
利用正緣觸發的技巧解決多次偵測的問題 |
|
|
|
|
|
|
|
|
|
|
|
|
我們可以利用正緣觸發的方式,經由比較前一次偵測是否有動作,來判斷是否有重複偵測的狀況,我們就能夠避免重複偵測的問題。彈珠台遊戲就不會重複偵測並且計分了。 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
在工程的領域中,經常使用正負緣觸發的技巧,來解決許多偵測的問題。 |
|
|
|
|
|
|
|
|
|
|
|
|
Edge Detect正負緣偵測程式說明 |
|
|
|
|
範例程式 : Program\edge_detect.py |
|
|
|
|
|
|
|
|
|
|
|
|
以DI腳位偵測光電感應器。 |
|
|
|
|
|
|
製作一個正負緣判斷程式,當感應器目前感應狀態與上一次的感應狀態不同時,才承認感應器發生感應。 |
|
|
|
|
|
|
若是感應器發生感應,則累加計數器,以計算每次感應發生的時間內共發生多少次偵測動作。 |
|
|
|
|
|
|
若是Button A被按下,將計數器歸零,重新計算感應器發生感應偵測次數。 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|