行李機器人
指導教授:黃慶祥教授 執行單位:世界科技公司 組員: 甘志安 4960E020
曾家昱 4960E023 吳俊輝 4960E037 陳盈任 4960E038
• 繼上次LED測試後,這次用按鍵接收與傳輸 HIGH/LOW訊號會使用
BASIC Stamp• 的I/O 點作為輸入端。當I/O 點作為輸入端時,只會接收HIGH/LOW訊 號而不是輸出它們;學會使用按鍵電路傳送指令到BASIC Stamp,並且 編寫程式去辨別按鍵是否被壓下。當按鍵被壓下與否 BASIC Stamp 所 看到的內容。這物使用元件有常開按鍵 *1、電阻220 Ω*1、10k *1Ω、
麵包板一塊
• 當按鍵被壓下 BASIC Stamp 能察覺Vdd 與P3 相連接。在BASIC Stamp
中會將此時I/O 點-P3 的訊息以數字1 的型態儲存至記憶體中。當按鍵
未被壓下時,BASIC Stamp 無法感應到Vdd,但它能介由10kΩ 和220Ω
感應到Vss,並將此時I/O 點-P3 的訊息以數字0 的型態儲存至相同記憶
體中。以下為簡單示意圖
BASIC Stamp 將在I/O 點-P3 感應到的1 或0,
儲存在記憶體中IN3 的位置。然運行Debug,會出現該圖示:
在確認當按鍵未被壓下時,除錯視窗會顯示出數字0。在確認當按鍵被壓下時,
除錯視窗會顯示出數字1並在除錯視窗裡面顯示按鍵狀態INT=0、INT=0、
INT=1、INT=1、INT=0…….以下為該程式 ' What's a Microcontroller – test1.bs2
' Check and send pushbutton state to Debug Terminal every 1/4 second.
' {$STAMP BS2}
' {$PBASIC 2.5}
DO
DEBUG ? IN3 PAUSE 250 LOOP
再來我在測試按鍵與LED,該有材料為常開按鍵 *1、電阻220 Ω*1、10k *1Ω
、470Ω、麵包板一塊、LED一顆、跳線。並按照以下電路圖接線並測試:
• 使用IF…THEN…ELSE 讓BASIC Stamp 做判斷,當按下按鍵時將使 LED 閃爍。
• 所以每次執行Do…LOOP,IF…THEN…ELSE 敘述就會確認按鍵的狀 態並判斷
• 是否閃爍LED。以下為測試電路的程式:
• ' What's a Microcontroller – test1.bs2
• ' Check pushbutton state 10 times per second and blink LED when pressed.
• ' {$STAMP BS2}
• ' {$PBASIC 2.5}
• DO
• DEBUG ? IN3
• IF (IN3 = 1) THEN
• HIGH 14
• PAUSE 50
• LOW 14
• PAUSE 50
• ELSE
• PAUSE 100
• ENDIF
• LOOP
測試結果: 當按鍵被壓下時,
確認LED 開始閃爍。當按鍵
未被壓下,確認LED 停止閃
爍
接下來測試加快與減慢所用材料為:常開按鍵 *2、電阻220 Ω*2、10k *2Ω、
470Ω*2、麵包板一塊、LED2顆。要增加另一顆案件與LED並須修改修正TEST1.bs2 讓它讀取IN4而不是讀取IN3,然後測試第二個按鍵迴路。按照以下電路圖接線並
測試:
• 輸入測試程式:
• ' What's a Microcontroller – TEST2.bs2
• ' Blink P14 LED if P3 pushbutton is pressed, and blink P15 LED if
• ' P4 pushbutton is pressed.
• ' {$STAMP BS2}
• ' {$PBASIC 2.5}
• DO
• DEBUG HOME” 每次經過DO…LOOP時,傳送游標到除錯視窗中左上方指令”
• DEBUG ? IN4” 每次都將IN4和IN3展現到除錯視窗的相同地方”
• DEBUG ? IN3
• IF (IN3 = 1) THEN”在IN3是1的情況,將連接到P14的LED發光”
• HIGH 14
• PAUSE 50
• ELSEIF (IN4 = 1) THEN”在IN3不是1而IN4是1的情況,將連接到P15的LED發光而非連
• HIGH 15 連接到P14的LED發光”
• PAUSE 50
• ELSE ”若兩敘述皆不成立時,在不改變LED電路的狀態下,利用PAUSE指令
• PAUSE 50持續50m”
• ENDIF
• LOW 14
• LOW 15
• PAUSE 50
• LOOP