2021-11-01 12:30:51 索煒達電子 661
項目編號:E2053
文件大小:5K
源碼說明:帶中文注釋
開發(fā)環(huán)境:C編譯器
簡要概述:
可控硅也稱晶閘管,具有體積小、效率高、壽命長等優(yōu)點,一般用在大功率器件上,實現小功率控制大功率的作用。 具體工作原理不多做闡述,這里要實現控制雙向可控硅只需知道以下幾點。
可控硅在市電過零后即關斷。
對控制極施加電壓,使其電流達到觸發(fā)電流即可導通。
因此只需要在接收到過零信號后開始計時,達到自己期望的占空比后給一段時間的電壓即可導通。 注意:
可控硅電平不能一直施加,防止過零信號延遲帶來的可控硅一直導通,即已經過零,由于過零信號有延遲,如果在接收到過零信號才關斷輸出電壓的話,可能造成延時時間內施加的電壓已經使可控硅導通。
文中使用pin_write(unsigned char port,unsigned char level)
控制 GPIO 電平,具體實現未給出,用戶可根據使用的芯片更改代碼。
將zero_detection()
函數放入過零信號端口的外部中斷中。
將f_SCR_control_tick()
函數放入 100us 的定時器中斷中(為了時間的準確,務必在中斷中處理)
在 SCR_Control.h 中設置
#define SCR_NUM 1 /// 可控硅數量#define SCR_HOLD_TICK 5 /// 可控硅使能電平持續(xù)時間#define SCR_LOWSTART_ENABLE /// 可控硅緩啟動使能,無需該功能則注釋#define SCR_TRANSITION_ENABLE /// 占空比改變時根據緩啟動的速度過度,需先開啟緩啟動
使用f_SCR_init(unsigned char id, unsigned char port, unsigned char openLevel)
對可控硅進行初始化,其中 id 編號為 0 ~ (SCR_NUM-1), port為可控硅輸出端口,level 為可控硅輸出電平。
使用f_SCR_enable(unsigned char id, unsigned char enable)
使能可控硅。
使用f_set_SCR_duty(unsigned char id, unsigned char duty)
設置可控硅輸出占空比。默認占空比為 50% 。
如果使能了緩啟動,則可以使用void f_SCR_SetLowStartEnable(unsigned char id, unsigned char startDuty,unsigned char perDuty, unsigned char perCycle)
函數進行緩啟動,startDuty 為起始占空比, perDuty 為每次增加的占空比, perCycle 為沒過多少個半周期增加一次占空比。然后使用f_SCR_SetLowStartDisable(unsigned char id)
使能緩啟動。緩啟動結束標志為增加的占空比達到了設定的占空比。
SCR_NUM
可控硅個數,該個數必須準確,否則可能因為初始化數值的問題導致程序陷入死循環(huán)。
SCR_HOLD_TICK
可控硅導通時間,單位100us,根據不同可控硅,該值不同,需確??煽毓杩梢詫?,但又不會進入下一個過零周期。
SCR_LOWSTART_ENABLE
該語句控制可控硅緩啟動,無需該功能則注釋,緩啟動參數可配置。
SCR_TRANSITION_ENABLE
該語句控制占空比變換后是否需要過渡,該參數需要和緩啟動同時使用,過度參數與緩啟動參數相同。
緩啟動和過度主要目的防止占空比跳變造成電流過大損壞元器件。
目錄│文件列表:
└ SCR
│ SCR_Control.c
└ SCR_Control.h