STM32F103雙向可控矽調節220V調光

2021-09-24 04:28:56 字數 1011 閱讀 1935

這是基於stm32f103rbt6這個mcu設計的硬體電路,利用外部中斷接收觸發訊號,定時器進行pwm占空比的輸出,485進行指令控制占空比,通過可控矽實現220v市電的輸出。

這個是輸入波形的輸出波形的大致原理。

解析:這裡進入的是220v電壓,為50hz。經過我們原理中的b1這個器件波形變成100hz的波形,再進過器件u6轉成如圖100hz的波形,這個為mcu輸入同步訊號檢測。當我們檢測到乙個上公升沿的時候啟動pwm訊號輸出,這裡pwm也要設為100hz的頻率。輸出這個波形可以自己調節占空比,當pwm為低電平的時候可控矽不導通,高電平的時候導通,通過可控矽再次將波形轉化為50hz。

程式邏輯流程圖:

解析:我們通過指令將這個占空比數值傳給pwm配置(定義乙個全域性變數)。這裡每次檢測到上公升沿就進行一次pwm啟動,完成後退出中斷,這裡要一直採集輸出訊號進行波形校正,所以在中斷裡面進行配置。這裡採用上公升沿中斷比較好,因為有硬體延時。

下面是實現的效果圖,第一張是輸入檢測輸出占空比為10%的pwm兩個波形,第二張是40%的pwm占空比和220v輸出的兩個波形,效果如下:

這裡中斷方式採用上公升沿中斷較好,因為硬體也有延時,定時器計數要採用向下計數,因為pwm那個基準值,當計數值大於這個基準值的時候輸出為低電平,小於這個基準值的時候為高電平。

簡單分享一下自己途中遇到的一下問題和見解,如有錯誤,可以指出共同學習。

stm32f103外部中斷

void extix init void 外部中斷0服務程式 void exti9 5 irqhandler void 這是簡單的外部中斷的配置,pc7作為中斷輸入 上面補充io口的初始化 gpio initstructure.gpio mode gpio mode ipu pc6配置為快充指示 1...

STM32F103啟動檔案

目錄 一 概述 二 彙編指令 2.1 equ 2.2 area 2.3 space 2.4 preserve8 2.5 thumb 2.6 export 2.7 dcd 2.8 proc 2.9 ldr 2.10 blx 2.11 bx 2.12 temport 2.13 b 2.14 if,els...

關於STM32F103精確延時

為了相容freertos,所以將延時函式統一規範,後續使用方便移植。此延時針對無晶振,示例為系統倍頻64mhz,型號 stm32f103c8t6。新建system資料夾,新增兩個檔案,delay.c和delay.h 以下為delay.c內容 其中系統已倍頻為64m include stm32f10x...