洪嵐峰 發表於 2023-4-28 20:25:52

微型點焊機30檔功率調節

製作微型點焊機所需零件:

PIC32MZ2048EFM124 微控制器
雙向三極管(例如:IRF3205)
電感線圈(例如:10μH)
電容(例如:1000μF,25V)
MOSFET驅動模塊(例如:IR2104)
電子腳開關
OLED顯示屏
18650電池座


以下是微型點焊機30檔功率調節的示例程式碼:


// 引用頭文件
#include <p32xxxx.h>
#include <plib.h>
#include <stdint.h>

// 定義延時函數
void delay_ms(int count)
{
    while(count--)
    {
        int c1 = 2400, c2 = 1000;
        while(c1--)
        {
            while(c2--);
        }
    }
}

// 主函數
int main(void)
{
    // 初始化端口和變量
    TRISBbits.TRISB4 = 0; // 設置端口為輸出
    LATBbits.LATB4 = 0;   // 設置輸出為低電平
    uint8_t power = 0;     // 設置功率為0
   
    // 主循環
    while(1)
    {
        // 檢測電源開關是否打開
        if(PORTDbits.RD6 == 0)
        {
            // 顯示當前功率和電壓
            // 這裡使用了OLED顯示屏
            // 根據具體的OLED顯示屏型號,可選擇使用相應的驅動程序
            // 以下僅作示例
            OLED_clear();
            OLED_ShowString(0,0,"Power:");
            OLED_ShowNum(0,2,power,3,16);
            OLED_ShowString(0,4,"Voltage:");
            OLED_ShowNum(0,6,ADC_Read(0),4,16);
            
            // 獲取按鍵狀態
            if(PORTDbits.RD7 == 0)
            {
                // 按下S1,功率增加
                if(power < 30)
                    power++;
            }
            else if(PORTDbits.RD13 == 0)
            {
                // 按下S2,功率減少
                if(power > 0)
                    power--;
            }
            
            // 控制電源輸出
            if(power > 0)
            {
                LATBbits.LATB4 = 1;
                delay_ms(power * 10);
                LATBbits.LATB4 = 0;
                delay_ms(50 - power);
            }
        }
        else
        {
            // 如果電源開關未打開,等待一段時間後重新檢測
            delay_ms(100);
        }
    }
}
頁: [1]
查看完整版本: 微型點焊機30檔功率調節