冰楓論壇

標題: 製作12V水流方向燈 [打印本頁]

作者: 洪嵐峰    時間: 2023-4-16 16:35
標題: 製作12V水流方向燈

製作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` 中找到。




歡迎光臨 冰楓論壇 (https://bingfong.com/) Powered by 冰楓