曰本美女∴一区二区特级A级黄色大片, 国产亚洲精品美女久久久久久2025, 页岩实心砖-高密市宏伟建材有限公司, 午夜小视频在线观看欧美日韩手机在线,国产人妻奶水一区二区,国产玉足,妺妺窝人体色WWW网站孕妇,色综合天天综合网中文伊,成人在线麻豆网观看

電子發(fā)燒友App

硬聲App

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示
創(chuàng)作
電子發(fā)燒友網(wǎng)>電子資料下載>電子資料>PID電池充電器控制器開(kāi)源硬件

PID電池充電器控制器開(kāi)源硬件

2023-02-01 | zip | 0.92 MB | 次下載 | 2積分

資料介紹

描述

介紹

可再生能源是滿足我們電力需求的實(shí)用且負(fù)擔(dān)得起的解決方案。通過(guò)增加可再生能源,我們可以減少空氣污染,減少全球變暖排放,創(chuàng)造新的就業(yè)機(jī)會(huì)和產(chǎn)業(yè),使我們的電力供應(yīng)多樣化,減少對(duì)煤炭和其他化石燃料的依賴(lài),并使世界走向更清潔、更健康的能源未來(lái)。我們打算創(chuàng)建一個(gè)照明控制系統(tǒng),使我們能夠節(jié)省能源。照明控制系統(tǒng)廣泛應(yīng)用于商業(yè)、工業(yè)和住宅空間的室內(nèi)和室外照明。照明控制系統(tǒng)用于在需要的時(shí)間和地點(diǎn)提供適量的光。

?
lighting_control_CcQV3oYurI.jpg?auto=compress%2Cformat&w=740&h=555&fit=max
照明控制系統(tǒng)示例
?

作為主要目標(biāo),我想到了三件事:

  • 從正弦函數(shù)生成控制 PWM 信號(hào)。
  • PID 控制器生成控制 PWM 信號(hào)。
  • 添加夜燈控制。

應(yīng)用:我們家中、公司甚至公共道路上的“夜燈控制”或“路燈控制”。也可用于給3V、5V、12V電池充電。

STM32F407G-DISC1配置

?
cover_uxCi0f5Tyb.PNG?auto=compress%2Cformat&w=740&h=555&fit=max
STM32F407VG板
?
  • STM32F407VGT6 微控制器采用 LQFP100 封裝,具有 32 位 ARM? Cortex?-M4 和 FPU 內(nèi)核、1 MB 閃存、192 KB RAM
  • STM32F4DISCOVERY 上的板載 ST-LINK/V2 或 STM32F407G-DISC1 上的 ST-LINK/V2-A
  • 具有重新枚舉功能和三個(gè)不同接口的 USB ST-LINK:調(diào)試端口、虛擬 Com 端口和大容量存儲(chǔ)。
  • 電路板供電:通過(guò)USB總線或來(lái)自外部5 V電源電壓
  • 外部應(yīng)用電源:3 V和5 V
  • LIS302DL 或 LIS3DSH ST MEMS 三軸加速度計(jì)
  • MP45DT02 ST-MEMS音頻傳感器全向數(shù)字麥克風(fēng)
  • 具有集成 D 類(lèi)揚(yáng)聲器驅(qū)動(dòng)器的 CS43L22 音頻 DAC
  • 八個(gè) LED
  • 兩個(gè)按鈕(用戶和重置)
?
schematic_diagram_clMyDF8dG4.jpg?auto=compress%2Cformat&w=740&h=555&fit=max
完整示意圖
?

正如我們?cè)谑疽鈭D中看到的,這個(gè)系統(tǒng)主要執(zhí)行兩個(gè)功能:首先它專(zhuān)門(mén)為電池充電,一旦充滿電,然后通過(guò) LDR 光傳感器打開(kāi)或關(guān)閉燈,如果它是晚上打開(kāi)燈,如果是白天,則將其關(guān)閉。為了更好地描述這個(gè)項(xiàng)目,我把它分為以下幾個(gè)部分:

1.- 軟件安裝

2.- 電源

3.- 充電控制

4.- 負(fù)載控制

5.- 夜燈控制

6.- 從正弦函數(shù)生成控制 PWM 信號(hào)

7.- 從 PID 控制器生成控制 PWM 信號(hào)

8.- 電路板設(shè)計(jì)

9.- 組裝

10.- 測(cè)試

11.結(jié)論

?
electric_diagram_final_SCZKzy1WPI.jpg?auto=compress%2Cformat&w=740&h=555&fit=max
?

?

?

1.- 軟件安裝

?

(Timing: 6 hrs)

我使用的是32位的Windows 10操作系統(tǒng),軟件安裝如下:

a)我已經(jīng)安裝了“GNAT Programming Studio”,我們可以從以下鏈接下載它:https ://www.adacore.com/download/more

在此鏈接中,我下載并安裝了以下兩個(gè)程序:

?
gps_2_dJrf1VOYqz.PNG?auto=compress%2Cformat&w=740&h=555&fit=max
全球定位系統(tǒng)標(biāo)志
?

b)我們要安裝STM32F407VG板的USB驅(qū)動(dòng),鏈接如下:https://www.st.com/en/development-tools/stsw-link009.html#getsoftware-scroll。我們?cè)诖苏军c(diǎn)上下載以下文件:“en.stsw-link009.zip”。連接設(shè)備后,我們會(huì)在“設(shè)備管理器”中驗(yàn)證它是否已連接。

?
usb_driver1_vUnQpUYOf0.PNG?auto=compress%2Cformat&w=740&h=555&fit=max
驗(yàn)證 USB 驅(qū)動(dòng)程序的安裝
?

c)為了開(kāi)發(fā)這個(gè)項(xiàng)目,我們使用“Ada Drivers Library”,我們可以從以下鏈接下載它:https ://github.com/AdaCore/Ada_Drivers_Library

為了設(shè)計(jì)我的項(xiàng)目,我使用了以下示例:“demo_timer_pwm”、“demo_adc_polling”和“demo_gpio_direct_leds”。您可以在此處找到的文件夾: https ://github.com/AdaCore/Ada_Drivers_Library/tree/master/arch/ARM/STM32/driver_demos

d) CircuitMaker是針對(duì)業(yè)余愛(ài)好者、黑客創(chuàng)客社區(qū)的印刷電路板設(shè)計(jì)電子設(shè)計(jì)自動(dòng)化軟件。您可以在以下位置下載安裝軟件:https ://circuitmaker.com/

?
circuit_maker_b_IufNzD6n3B.JPG?auto=compress%2Cformat&w=740&h=555&fit=max
設(shè)計(jì)原理圖和PCB
?

e) Lowell Cady 的 PID示例是 PID(比例、積分、微分)控制的工作示例,您可以在此處下載:https ://www.codeproject.com/Articles/36459/PID-process-control-a -巡航控制示例

?
pid_example_zytEY6WnGW.png?auto=compress%2Cformat&w=740&h=555&fit=max
測(cè)試和繪制 PID 系統(tǒng)的程序
?

?

?

?

2.- 電源

?

?

(Timing: 2 hrs)

?

它是如何工作的?

a)開(kāi)關(guān)電源提供 12 伏特直流、5 安培的穩(wěn)定電壓和 330 瓦的最大功率。使用此設(shè)備,我們會(huì)發(fā)現(xiàn)系統(tǒng)具有良好的穩(wěn)定性,我們必須調(diào)整我們想要為電池充電的電壓負(fù)載并使用電位器 (R10)。我們可以在這里查閱國(guó)際標(biāo)準(zhǔn):https ://standards.ieee.org/standard/765-2012.html

b)集成電路 LM317 用于通過(guò)電位器 R10 產(chǎn)生 3 至 12 伏的電壓調(diào)節(jié)。這個(gè)集成的技術(shù)規(guī)格說(shuō)它不能產(chǎn)生低于 3 伏的電壓。在這個(gè)例子中,我調(diào)整了 5.6 伏。計(jì)算是:

在 LM317 的技術(shù)表中,我們找到以下公式:

Vout =Vref [1+(R2/R1)] +(iADJ)(R2)

例如,LM317 可以工作的最大電壓是 37 伏,如果在我們的圖表中我們將 R9 取為 240 歐姆,那么我們對(duì) R10 進(jìn)行計(jì)算。

Vout =Vref [1+(R10/R9)] +(iADJ)(R10)

我們考慮一個(gè)非常小的 iADJ 值,如果我們計(jì)算 R10,我們將有:

R10 = (R9/Vref) (Vout -Vref)

R10 = (R9/1, 2) (Vout - 1, 2)

R10 =(240/1, 2)(37-1, 2) = 7, 160 歐姆

對(duì)于實(shí)際用途,我們使用 10k 電位器。

c)齊納二極管 DZ 用作電壓調(diào)節(jié)器,在它的輸出端我獲得了 10.8 伏的最大值,這是我用電壓表測(cè)量的。

d)使用的保護(hù)裝置如下:保險(xiǎn)絲 F1、電容器 C1 和二極管 D1。這些元件對(duì)于保護(hù)系統(tǒng)免受短路、放電、消除反向直流電流和過(guò)濾不需要的信號(hào)非常重要。

?
img_20140130_122336_TVZk2oBCX9.jpg?auto=compress%2Cformat&w=740&h=555&fit=max
小心 LM317T 穩(wěn)壓器和齊納二極管的連接
?

?

3.- 充電控制

?

(Timing: 3hrs)

?
02b_LgGAboBTlK.png?auto=compress%2Cformat&w=740&h=555&fit=max
充電控制電路圖
?

它是如何工作的?

a)在該電路中以 Vcc 為單位測(cè)量的電壓,電壓表指示為 5、45 伏。在這個(gè)例子中,我使用了一個(gè)由四個(gè) 1、5 伏可充電電池組成的模塊。最大負(fù)載電壓為 5.6 伏。我用的是鎳氫電池,我們可以在這里找到國(guó)際標(biāo)準(zhǔn):https ://www.mpoweruk.com/standards.htm

b) STM32F407VG 板生成的 PWM 信號(hào)將用于調(diào)節(jié)充電電池的負(fù)載。為了生成此 PWM 信號(hào),我們采用“Ada 驅(qū)動(dòng)程序庫(kù)”中的示例“demo_timer_pwm”并對(duì)其進(jìn)行修改以獲得所需的 PWM 信號(hào)。例如,如果電池完全放電,則 PWM 信號(hào)具有較大的占空比。

c)晶體管 T1 用于物理分離 STM32F407VG 板和 M1 Mosfet。如果它們直接連接,那么這個(gè)設(shè)備就會(huì)損壞,因?yàn)?Mosfet 工作在非常高的負(fù)載下。電阻 R1 (1k) 必須取一個(gè)較低的值,以提高 PWM 信號(hào)的開(kāi)關(guān)速度。

d)但是,在晶體管 T1 的輸出端,我們有一個(gè) 180 度的異相信號(hào),為了調(diào)整這種情況,我們使用晶體管 T2,現(xiàn)在 PWM 信號(hào)是同相的。

e)為了將截止區(qū)和飽和區(qū)驅(qū)動(dòng)到我們的 T1 和 T2 晶體管,我們做出以下考慮:

?
transistor-bjtb_NtK7URPvHm.jpg?auto=compress%2Cformat&w=740&h=555&fit=max
共發(fā)射極
?

為了確定飽和電流,我們認(rèn)為輸出柵極的發(fā)射極集電極電壓等于零。因此:

VCC=IC*RC+VCE | VCC=IC*RC+0

我C=VCC/RC

為了確定截止點(diǎn),我們認(rèn)為基極電流等于零,因此集電極電流等于零:

VCC=IC*RC+VCE | VCC=0*RC+VCE

VCE=VCC

?
current-voltageb_5852rJgFZp.png?auto=compress%2Cformat&w=740&h=555&fit=max
共發(fā)射極放大器的截止區(qū)和飽和區(qū)圖
?

f)使用的保護(hù)裝置如下:電容器 C1 和二極管 D2。二極管用于消除電池充滿電時(shí)的反向直流電流。如果這個(gè)二極管不存在,那么電池就會(huì)在晶體管 T1 和 T2 中感應(yīng)出電壓。

?
img_20140130_122345_vd9sCBb4gc.jpg?auto=compress%2Cformat&w=740&h=555&fit=max
我們通過(guò) P 溝道 MOSFET 和兩個(gè)晶體管控制充電電池的充電
?

?

?

4.- 負(fù)載控制

?

(Timing: 3 hrs)

?
03_LdqY6f8BYT.png?auto=compress%2Cformat&w=740&h=555&fit=max
負(fù)載控制電路
?

它是如何工作的?

a) 10K 的電阻 R4 和 8K 的 R5 用作分壓器,用于使用我們的 STM32F407VG 板測(cè)量可充電電池的電量。8K 電阻是通過(guò)兩個(gè)串聯(lián)電阻實(shí)現(xiàn)的:4k7 + 3k3。VR5的值我們通過(guò)分壓器的計(jì)算得到它,這就是:VR5=(R5/(R4+R5))*VBattery)

b)當(dāng)STM32F407VG板的PD12引腳up時(shí),三極管T3驅(qū)動(dòng),異相180度。晶體管 T4 校正晶體管 T3 并使原始信號(hào)與 PD12 引腳同相。

c)為了將截止區(qū)和飽和區(qū)驅(qū)動(dòng)到我們的 T3 和 T4 晶體管,我們做出以下考慮:

為了確定飽和電流,我們認(rèn)為輸出柵極的發(fā)射極集電極電壓等于零。因此:IC=VCC/RC

為確定截止點(diǎn),我們認(rèn)為基極電流為零,因此集電極電流為零:VCE=VCC

d)當(dāng)脈沖到達(dá) IPT60R028G7 Mosfet 的“Gate”引腳時(shí),“Source”和“Drain”之間的電路閉合,5 瓦燈點(diǎn)亮。當(dāng)漏極和源極之間的電壓 (VDS) 超過(guò)稱(chēng)為飽和電壓 (Vds sat) 的固定值時(shí),該 MOSFET 晶體管進(jìn)入飽和區(qū)。也就是說(shuō); 在以下情況下,MOSFET 將位于該區(qū)域:

VGS > VtVDS > (VGS – Vt)。

在 IPT60R028GT 的技術(shù)表中我們看到:

柵極閾值電壓

V(GS)th 最小值 = 3

V(GS)th 典型 = 3.5

V(GS)th 最大值 = 4 V

因此,我們需要 3 到 4 伏的“柵極”電壓才能將 Mosfet IPT60R028GT 置于飽和區(qū)。

e)使用的保護(hù)裝置如下:電容器 C2 和保險(xiǎn)絲 F2。

?
img_20140130_122405_Z1eEEaOVk2.jpg?auto=compress%2Cformat&w=740&h=555&fit=max
我們通過(guò)一個(gè) N 溝道 MOSFET 和兩個(gè)晶體管來(lái)控制燈的負(fù)載
?

?

?

5.- 夜燈控制

?

(Timing: 3 hrs)

?
04f_M9A7JtQTs1.png?auto=compress%2Cformat&w=740&h=555&fit=max
小夜燈控制電路圖
?

它是如何工作的?

a)這個(gè)“夜燈控制”為我們服務(wù),知道是白天還是晚上并激活燈。該電路由 STM32F407VG 板的 5 伏供電??。

b)為了控制照明,我們使用光敏電阻或 LDR 傳感器。光敏電阻由高電阻半導(dǎo)體制成。在黑暗中,光敏電阻的阻值可高達(dá)數(shù)兆歐 (MΩ),而在光照下,它的阻值可低至數(shù)百歐姆。https://en.wikipedia.org/wiki/光敏電阻

c)當(dāng)完全黑暗時(shí),LDR 傳感器具有最大電阻(兆歐),T5 晶體管被極化并且在它的輸出端我們有最小電壓,在逆變器電路 (IC40106) 的輸出端我們有 5 伏。IC40106是觸發(fā)器施密特反相器電路在下圖中我們可以了解到一個(gè)非反相電路是如何工作的,這有助于我們理解反相電路40106是如何工作的。當(dāng)您想用非數(shù)字信號(hào)控制數(shù)字電路時(shí),這些電路很有用。

?
1_HjD6JY5TYc.jpg?auto=compress%2Cformat&w=740&h=555&fit=max
光敏電阻和非逆變器電路的信號(hào)
?

40106 的 VT 和 VT- 值(所有值均以伏特為單位)

?
trigger_scmitt_15RmaSNLWc.JPG?auto=compress%2Cformat&w=740&h=555&fit=max
觸發(fā)器施密特的典型值
?

d)我們通過(guò)電路中所示的肖特基二極管將這個(gè) 5 伏特轉(zhuǎn)換為 3 伏特,并將該電壓施加到我們的 STM32F407VG 板的 PA0 引腳。

e)當(dāng)光照最大時(shí),則相反。LDR 傳感器具有最小電阻,T5 晶體管沒(méi)有極化,在它的輸出端我們有 5 伏的 Vcc,它通過(guò) IC40106 逆變器電路的引腳 9 進(jìn)入。最后我們有 0 伏,它被施加到 STM32F407VG 板的 PA0 引腳。

f)為了將截止區(qū)和飽和區(qū)驅(qū)動(dòng)到我們的 T5 晶體管,我們做出以下考慮:

為了確定飽和電流,我們認(rèn)為輸出柵極的發(fā)射極集電極電壓等于零。因此:IC=VCC/RC

為確定截止點(diǎn),我們認(rèn)為基極電流為零,因此集電極電流為零:VCE=VCC

g)在 STM32F407VG 板的 PA0 引腳上,當(dāng)電壓為零時(shí),紅色 LED 亮起,燈熄滅。當(dāng)我們有 5 伏特時(shí),綠色 LED 亮起,電燈亮起。

?
img_20140130_122512_v6M4WGaHYQ.jpg?auto=compress%2Cformat&w=740&h=555&fit=max
您必須確保光敏電阻沒(méi)有障礙物才能檢測(cè)到光
?

?

?

?

6.- 從正弦函數(shù)生成控制 PWM 信號(hào)

?

(Timing: 1day)

在這個(gè)板上,我們將生成 PWM 控制信號(hào),激活負(fù)載,并監(jiān)控電池電壓和“夜燈控制”的狀態(tài)。我們還將使用它的 4 個(gè) LED 作為我系統(tǒng)狀態(tài)的指示器。您可以在代碼部分找到該程序。項(xiàng)目庫(kù):“帶夜燈控制的電池充電器”

?
05b_jlEBu5B6JF.png?auto=compress%2Cformat&w=740&h=555&fit=max
主板和連接
?

它是如何工作的?

a)我們監(jiān)控 PA1 模擬端口上的電池電壓,其中我們的值從 0 到 4095 ADC。

b) PWM信號(hào)是在STM32F407VG板上通過(guò)Timer4的中斷和30kHz正弦函數(shù)的產(chǎn)生而產(chǎn)生的。在我們的代碼中,我們使用以下說(shuō)明指示它:

Arg := Long_Float((Raw*5)/4095); -- 5 is an experimental value
Value := Percentage (50.0 * (1.0 +Sine (Arg))); -- duty cycle value
Power_Control.Set_Duty_Cycle (Value);-- PWM signal
?
pwm_b_7Q59bHTDHS.jpg?auto=compress%2Cformat&w=740&h=555&fit=max
代碼自動(dòng)生成這三個(gè)占空比
?

我們將根據(jù)正弦函數(shù)逐漸調(diào)整占空比。

?
sineb_VSormkFvar.jpg?auto=compress%2Cformat&w=740&h=555&fit=max
正弦函數(shù)示例
?

正弦函數(shù)使用以下代碼計(jì)算:

  function Sine (Input : Long_Float) return Long_Float;
  --  In this demonstration we roll our own approximation to the sine function
  --  so that it doesn't matter which runtime library is used.
  function Sine (Input : Long_Float) return Long_Float is
     Pi : constant Long_Float := 3.14159_26535_89793_23846;
     X  : constant Long_Float := Long_Float'Remainder (Input, Pi * 2.0);
     B  : constant Long_Float := 4.0 / Pi;
     C  : constant Long_Float := (-4.0) / (Pi * Pi);
     Y  : constant Long_Float := B * X + C * X * abs (X);
     P  : constant Long_Float := 0.225;
  begin
     return P * (Y * abs (Y) - Y) + Y;
  end Sine;

https://visualgdb.com/tutorials/arm/stm32/fpu/

此代碼生成我的項(xiàng)目所需的以下三個(gè)占空比,如下所示:

?
tabla_8DiaWQLqCY.PNG?auto=compress%2Cformat&w=740&h=555&fit=max
該方法僅生成三個(gè)占空比,這三個(gè)占空比取決于測(cè)得的模擬電壓
?

占空比是信號(hào)或系統(tǒng)處于活動(dòng)狀態(tài)的一個(gè)周期的一部分。占空比通常表示為百分比或比率。周期是信號(hào)完成一個(gè)開(kāi)關(guān)周期所花費(fèi)的時(shí)間。作為一個(gè)公式,占空比 (%) 可以表示為:D= (PW/T)x100%

其中 D 是占空比,PW 是脈沖寬度,T 是信號(hào)的總周期。https://en.wikipedia.org/wiki/Duty_cycle

c) VR5的值我們通過(guò)分壓器的計(jì)算得到,即:VR5=(R5/(R4+R5))*VBattery)

d)如果電池電壓低于大約 4 伏,則紅色 LED 亮起,綠色和橙色 LED 熄滅。在本例中,我們的值小于 2457 ADC。

e)如果電池電壓超過(guò)約 5.4 伏,則橙色 LED 亮起,紅色 LED 熄滅。在此示例中,我們的值大于 3276 ADC。

f)如果 STM32F407VG 從 PA0 端口接收到脈沖,則綠色 LED 點(diǎn)亮表示現(xiàn)在是晚上,燈通過(guò) PD12 引腳點(diǎn)亮。

g)如果電池電壓大約在 4 到 5.4 伏之間,橙色和紅色 LED 會(huì)亮起。在這個(gè)例子中,我們有從 2475 到 3275 ADC 的值。

         if Raw < 2457 then -- if the battery < 4 volts aprox
           Red_LED.Set; -- Red LED os ON
           Green_LED.Clear; -- Green LED is OFF
           Orange_LED.Clear; -- Orange LED is OFF
           delay until Clock + Milliseconds (2000); -- slow it down to ease reading
        elsif Raw >= 3276 then -- If the battery > 5,4 volts aprox
           Red_LED.Clear; -- Red LED is OFF
           Orange_LED.Set; -- Orange LED is OFF
        elsif STM32.User_Button.Has_Been_Pressed then -- If PA0 is ON
           Green_LED.Set; -- Green LED is ON
        else -- If battery is between: 4 to 5,4 volts aprox
           Orange_LED.Set; -- Orange LED is ON
           Red_LED.Set; -- Red LED is ON
        end if;

?

7.- 從 PID 控制器生成控制 PWM 信號(hào)

?

(Timing: 2days)

在此測(cè)試中,我們將使用不同的程序。您可以在代碼部分找到該程序。項(xiàng)目庫(kù):“帶夜燈控制的 PID 電池充電器”

它是如何工作的?

a)如果我們想控制一個(gè)系統(tǒng),最好的解決辦法是利用PID控制。PID 是一種控制回路反饋機(jī)制,廣泛用于工業(yè)控制系統(tǒng)和各種其他需要連續(xù)調(diào)制控制的應(yīng)用。PID 控制器連續(xù)計(jì)算誤差值作為所需設(shè)定點(diǎn) (SP) 和測(cè)量過(guò)程變量 (PV) 之間的差異,并根據(jù)比例、積分和微分項(xiàng)(分別表示為 P、I 和 D)應(yīng)用校正,由此得名。

?
pid_en_svg_Ym2ha6InTy.png?auto=compress%2Cformat&w=740&h=555&fit=max
PID控制器
?

在我的例子中,STM32F507 板生成一個(gè) 30 kHz 的 PWM 信號(hào),控制數(shù)據(jù)為:dt = 0.0005,Kp = 0.025 和 Ki =0.025。您可能會(huì)注意到微分項(xiàng)非常小或?yàn)榱?。我?PID 控制器的仿真如下:

?
pid_test_ZON81zalQo.JPG?auto=compress%2Cformat&w=740&h=555&fit=max
使用 Lowell Cady 程序來(lái)測(cè)試我的 PID 控制器。
?

https://en.wikipedia.org/wiki/PID_controller

b)決定何時(shí)應(yīng)用 PWM 控制信號(hào)的工作留給了 STM32F407 板。在我的示例中,該板執(zhí)行計(jì)算并生成 PWM 控制信號(hào)。使用我的 PICkit2 設(shè)備,我得到了以下 PWM 信號(hào)。

?
pwm_pid_2_6pdvGaVJv7.jpg?auto=compress%2Cformat&w=740&h=555&fit=max
PID 控制器產(chǎn)生許多占空比,這些占空比取決于反饋。
?

c)分壓器 VR5 向我們的端口 PA1 提供模擬值,并將其與“設(shè)定值”進(jìn)行比較。“設(shè)定點(diǎn)”由代碼編程,我們進(jìn)行了一個(gè)設(shè)定點(diǎn)測(cè)試:VBattery = 4.95 伏/VR5 = 2、2 伏/ADC = 3003 ADC。

  declare
     Value     : Percentage;
     Raw1      : Long_Float;
     setpoint  : constant := 3003.0; -- VR5 = 2.2 volts / Vbat = 4.95 volts 
     error     : Long_Float := 0.0;
     output    : Long_Float;
     integral  : Long_Float := 0.0;
     dt        : constant := 0.0005;
     Kp        : constant := 0.025;
     Ki        : constant := 0.025;

d)例如,如果電池放電,則程序會(huì)計(jì)算誤差,并生成一個(gè)具有高占空比的 PWM 信號(hào)。如果電池已充電,則程序會(huì)生成一個(gè)占空比較小的 PWM 信號(hào)。

 begin
        STM32.User_Button.Initialize; -- btn instruction
     loop
        Start_Conversion (Converter); --adc instruction
        Poll_For_Status (Converter, Regular_Channel_Conversion_Complete, Successful); --adc instruction
        Raw := UInt32 (Conversion_Value (Converter)); -- reading PA1
        Raw1 := Long_Float(Raw * 1);
        error := (setpoint - Raw1);
        integral := (integral + (error*dt));
        output := ((Kp*error) + (Ki*integral));
        Value := Percentage (output); -- duty cycle value
        if Value < 10 then -- if the duty cycle < 10%
           Power_Control.Set_Duty_Cycle (10);
           Red_LED.Set; -- Red LED os ON
           Green_LED.Clear; -- Green LED is OFF
           Orange_LED.Clear; -- Orange LED is OFF
           delay until Clock + Milliseconds (500); -- slow it down to ease reading                                    
        elsif Value >= 90 then -- If the duty cycle > 90%
           Power_Control.Set_Duty_Cycle (90);
           Red_LED.Clear; -- Red LED is OFF
           Orange_LED.Set; -- Orange LED is OFF
        elsif STM32.User_Button.Has_Been_Pressed then -- If PA0 is ON
           Green_LED.Set; -- Green LED is ON
        else -- If the duty cycle is from: 10 - 90 %
           Power_Control.Set_Duty_Cycle (Value); -- PWM signal
           Orange_LED.Set; -- Orange LED is ON
           Red_LED.Set; -- Red LED is ON
        end if;
        delay until Clock + Milliseconds (10); -- slow it down to ease reading
     end loop;

現(xiàn)在我們有了一個(gè)智能系統(tǒng),它具有生成多個(gè)工作周期的優(yōu)勢(shì),我們將更有效地利用能源。

?
tabla_2_emFTV7xIuX.PNG?auto=compress%2Cformat&w=740&h=555&fit=max
這些是使用 PID 控制器獲得的值的示例
?

?

?

?

8.- 電路板設(shè)計(jì)

?

(Timing: 2days)

原理圖電路是在CircuitMaker上制作的。您可以在自定義部件和外殼部分找到存儲(chǔ)庫(kù)。項(xiàng)目庫(kù):“帶夜燈控制的 PID 電池充電器的電路板設(shè)計(jì)”

?
schematic_lJ3ugvIbFY.PNG?auto=compress%2Cformat&w=740&h=555&fit=max
電路圖開(kāi)發(fā) CircuitMaker
?

?

?
pcb_f_oK59ZJX9RT.PNG?auto=compress%2Cformat&w=740&h=555&fit=max
PCB 2D開(kāi)發(fā)的CircuitMaker
?

?

?
pcb_3d_f_KiNL3KYICb.PNG?auto=compress%2Cformat&w=740&h=555&fit=max
PCB 3D 開(kāi)發(fā) CircuitMaker
?

?

?
captura_3d_Hp5vVfYFF7.PNG?auto=compress%2Cformat&w=740&h=555&fit=max
正交旋轉(zhuǎn)視圖由 CircuitMaker 提供支持
?

?

?

9.- 組裝

?

(Timing: 2 days)

接下來(lái),我將向您展示一些裝配圖。

?
ensamble_1_h6iPKhAxX6.jpg?auto=compress%2Cformat&w=740&h=555&fit=max
焊接
?

?

?
ensamble_2_ZzSUHKvjow.jpg?auto=compress%2Cformat&w=740&h=555&fit=max
用盒子保護(hù)電路
?

?

?
ensamble_4_PYhBlDyWYj.jpg?auto=compress%2Cformat&w=740&h=555&fit=max
原型完成
?

?

?

?

?

10.- 測(cè)試

?

(Timing: 1 day)

從正弦函數(shù)生成控制 PWM 信號(hào):

這個(gè)例子不需要設(shè)置點(diǎn),PWM 信號(hào)是自動(dòng)生成的,正如我們?cè)诘?6 步中看到的那樣,其中只生成了三個(gè)占空比。

?

?

?
img_20140130_125907_htLERTVgVT.jpg?auto=compress%2Cformat&w=740&h=555&fit=max
測(cè)試頂視圖
?

?

?
led_green_aRLdhR84vd.jpg?auto=compress%2Cformat&w=740&h=555&fit=max
充電電池示例
?

?

?
01_frecuencia_30khz-33us_DvSiQ9SpWp.PNG?auto=compress%2Cformat&w=740&h=555&fit=max
測(cè)量頻率 = 30 kHz
?

?

?
02_duty_cycle_31_us_uMnpzgWJnS.PNG?auto=compress%2Cformat&w=740&h=555&fit=max
電池放電,占空比 = 94%
?

?

?
03_duty_cycle_19_us_NGtdeFvLn8.PNG?auto=compress%2Cformat&w=740&h=555&fit=max
電池放電一半,占空比 = 55%
?

?

?
04_duty_cycle_4_us_vYXeGLHI3J.PNG?auto=compress%2Cformat&w=740&h=555&fit=max
電池充滿電,占空比 = 11%
?

?

從 PID 控制器生成控制 PWM 信號(hào)

設(shè)定點(diǎn):VBattery = 4.95 伏/VR5 = 2、2 伏/ADC = 3003 ADC。

我們可以理解,這里的 PID 控制器會(huì)生成許多占空比。

?
a1_2_2v_30khz_KhPJYTkv1x.JPG?auto=compress%2Cformat&w=740&h=555&fit=max
測(cè)量頻率 = 30 kHz
?

?

?
a1_2_2v_dc_3us_MUtvkeHxUt.JPG?auto=compress%2Cformat&w=740&h=555&fit=max
VR5 = 2.2 伏,占空比 = 11%
?

?

?
b_1_99v_dc_4us_QWN2lLDNfB.JPG?auto=compress%2Cformat&w=740&h=555&fit=max
VR5 = 1.99 伏,占空比 = 12%
?

?

?
c_1_6v_dc_7us_uY3YZPkzuc.JPG?auto=compress%2Cformat&w=740&h=555&fit=max
VR5 = 1.6 伏,占空比 = 21%
?

?

?
d_1_3v_dc_8us_t8dfJrCOQC.JPG?auto=compress%2Cformat&w=740&h=555&fit=max
VR5 = 1.3 伏,占空比 = 24%
?

?

?
e_1_13v_dc_16us_Uk4wAddRuS.JPG?auto=compress%2Cformat&w=740&h=555&fit=max
VR5 = 1.13 伏,占空比 = 48%
?

?

?
f_0_9v_dc_30us_USjuhnJ8Ve.JPG?auto=compress%2Cformat&w=740&h=555&fit=max
VR5 = 0.9 伏,占空比 = 91%
?

?

?

?

?

?

?

11.- 結(jié)論

?

?

  • 首先,我的意圖是做一些有用的項(xiàng)目,可以為我們解決實(shí)際問(wèn)題。我曾經(jīng)問(wèn)自己是否有可能構(gòu)建一個(gè)智能家居電池充電器,并且我們可以通過(guò)它有效地利用能源。答案是肯定的,問(wèn)題解決了,而且不用花很多錢(qián)。
  • 軟件:在這個(gè)項(xiàng)目中,我學(xué)會(huì)了使用“GNAT Programming Studio”軟件,因?yàn)槲伊?xí)慣于使用 Python、Processing 和 C++,并且 AdaCore 的技術(shù)支持很好地建議我了解一些要點(diǎn)這種語(yǔ)言編程。
  • 硬件:在這個(gè)項(xiàng)目中,我使用了不同的電子領(lǐng)域:a)微控制器(PWM 信號(hào)以及數(shù)字和模擬端口);b) 電力電子設(shè)備(Mosfet、電池和燈);c) 數(shù)字電子(IC Trigger Schmitt);d) 傳感器(LDR);e) 控制理論(PID 控制器)。
  • 應(yīng)用:雖然正弦函數(shù)生成三個(gè)非常有用的占空比,但系統(tǒng)使用 PID 控制器變得更加高效和實(shí)用,因?yàn)殡姵爻潆娝俣雀?,使用壽命更長(zhǎng)。夜燈的控制被用來(lái)激活一盞燈。這個(gè)項(xiàng)目可以作為我們未來(lái)開(kāi)發(fā)“路燈控制”的一個(gè)例子,使用太陽(yáng)能電池板或風(fēng)能。

?

?


下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評(píng)論

查看更多

下載排行

本周

  1. 1山景DSP芯片AP8248A2數(shù)據(jù)手冊(cè)
  2. 1.06 MB  |  532次下載  |  免費(fèi)
  3. 2RK3399完整板原理圖(支持平板,盒子VR)
  4. 3.28 MB  |  339次下載  |  免費(fèi)
  5. 3TC358743XBG評(píng)估板參考手冊(cè)
  6. 1.36 MB  |  330次下載  |  免費(fèi)
  7. 4DFM軟件使用教程
  8. 0.84 MB  |  295次下載  |  免費(fèi)
  9. 5元宇宙深度解析—未來(lái)的未來(lái)-風(fēng)口還是泡沫
  10. 6.40 MB  |  227次下載  |  免費(fèi)
  11. 6迪文DGUS開(kāi)發(fā)指南
  12. 31.67 MB  |  194次下載  |  免費(fèi)
  13. 7元宇宙底層硬件系列報(bào)告
  14. 13.42 MB  |  182次下載  |  免費(fèi)
  15. 8FP5207XR-G1中文應(yīng)用手冊(cè)
  16. 1.09 MB  |  178次下載  |  免費(fèi)

本月

  1. 1OrCAD10.5下載OrCAD10.5中文版軟件
  2. 0.00 MB  |  234315次下載  |  免費(fèi)
  3. 2555集成電路應(yīng)用800例(新編版)
  4. 0.00 MB  |  33566次下載  |  免費(fèi)
  5. 3接口電路圖大全
  6. 未知  |  30323次下載  |  免費(fèi)
  7. 4開(kāi)關(guān)電源設(shè)計(jì)實(shí)例指南
  8. 未知  |  21549次下載  |  免費(fèi)
  9. 5電氣工程師手冊(cè)免費(fèi)下載(新編第二版pdf電子書(shū))
  10. 0.00 MB  |  15349次下載  |  免費(fèi)
  11. 6數(shù)字電路基礎(chǔ)pdf(下載)
  12. 未知  |  13750次下載  |  免費(fèi)
  13. 7電子制作實(shí)例集錦 下載
  14. 未知  |  8113次下載  |  免費(fèi)
  15. 8《LED驅(qū)動(dòng)電路設(shè)計(jì)》 溫德?tīng)栔?/a>
  16. 0.00 MB  |  6656次下載  |  免費(fèi)

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935054次下載  |  免費(fèi)
  3. 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
  4. 78.1 MB  |  537798次下載  |  免費(fèi)
  5. 3MATLAB 7.1 下載 (含軟件介紹)
  6. 未知  |  420027次下載  |  免費(fèi)
  7. 4OrCAD10.5下載OrCAD10.5中文版軟件
  8. 0.00 MB  |  234315次下載  |  免費(fèi)
  9. 5Altium DXP2002下載入口
  10. 未知  |  233046次下載  |  免費(fèi)
  11. 6電路仿真軟件multisim 10.0免費(fèi)下載
  12. 340992  |  191187次下載  |  免費(fèi)
  13. 7十天學(xué)會(huì)AVR單片機(jī)與C語(yǔ)言視頻教程 下載
  14. 158M  |  183279次下載  |  免費(fèi)
  15. 8proe5.0野火版下載(中文版免費(fèi)下載)
  16. 未知  |  138040次下載  |  免費(fèi)