![Rank: 4](static/image/common/star_level3.gif)
- UID
- 373967
- 帖子
- 8398
- 主題
- 2609
- 精華
- 0
- 積分
- 979
- 楓幣
- 49
- 威望
- 957
- 存款
- 32101
- 贊助金額
- 0
- 推廣
- 0
- GP
- 1205
- 閱讀權限
- 50
- 在線時間
- 439 小時
- 註冊時間
- 2023-1-12
- 最後登入
- 2024-9-10
|
製作12V水流方向燈的步驟、所需零件、連接腳位以及程式碼:
步驟:
準備一個空白的麵包板,並按照下列的連接腳位將 PIC12F683 微控制器和其他元件連接起來。
將電源接上麵包板,並使用 MPLAB X IDE 等開發軟體燒錄程式碼到 PIC12F683 微控制器中。
斷開電源,將開發板從電腦上拔下來,接上水流方向燈,即可使用。
所需零件:
PIC12F683 微控制器
10個 LED 燈
10個 220歐姆電阻
1個 12V 直流電源
1個 麵包板
導線等
連接腳位:
PIC12F683 VDD 腳位 -> 正電源輸入
PIC12F683 VSS 腳位 -> 負電源輸入及所有 LED 燈的負極
PIC12F683 RA0-RB7 腳位 -> 每個 LED 燈的正極,並接上對應的 220歐姆電阻
PIC12F683 RA5 腳位 -> 一個開關的接線腳位,可用來控制燈的開關
程式碼:
#include <xc.h>
#include <stdint.h>
// 設定 LED 燈的數量
#define NUM_OF_LEDS 10
// 設定 LED 燈閃爍的時間間隔(ms)
#define INTERVAL 500
void main() {
// 設定 RA0-RA7 為數位輸出
TRISA = 0x00;
// 設定 RB0-RB7 為數位輸出
TRISB = 0x00;
// 設定 RA5 為數位輸入
TRISA5 = 1;
while (1) {
// 檢測 RA5 是否為低電位,如果是則開啟所有 LED 燈
if (RA5 == 0) {
for (uint8_t i = 0; i < NUM_OF_LEDS; i++) {
// 將對應的 LED 燈腳位設為高電位,即開啟 LED 燈
if (i < 8) {
RA0 = 1 << i;
} else {
RB0 = 1 << (i - 8);
}
}
__delay_ms(INTERVAL);
} else {
// 如果 RA5 為高電位,則
// 關閉所有 LED 燈
for (uint8_t i = 0; i < NUM_OF_LEDS; i++) {
// 將對應的 LED 燈腳位設為低電位,即關閉 LED 燈
if (i < 8) {
RA0 = ~(1 << i);
} else {
RB0 = ~(1 << (i - 8));
}
}
__delay_ms(INTERVAL);
}
}
}
注意事項:
- 請注意電源的正負極是否正確,否則可能會損壞電路或元件。
- 在連接元件時,請確保將正確的電阻連接到正確的 LED 燈上,否則可能會導致 LED 燈燒毀。
- 程式碼中的 `__delay_ms` 函數是一個用於延遲的內建函數,可以在 `xc.h` 中找到。 |
|