冰楓論壇

 找回密碼
 立即註冊
搜索
查看: 706|回覆: 0
打印 上一主題 下一主題

[討論] STM32F103C8T6

[複製鏈接]

2609

主題

0

好友

1003

積分

金牌會員

Rank: 6Rank: 6

UID
373967
帖子
9008
主題
2609
精華
0
積分
1003
楓幣
0
威望
980
存款
35891
贊助金額
0
推廣
0
GP
1205
閱讀權限
70
在線時間
460 小時
註冊時間
2023-1-12
最後登入
2024-12-22

2023端午節紀念勳章 2023中秋節紀念勳章 2023聖誕節紀念勳章

跳轉到指定樓層
1
發表於 2023-4-24 19:57:59 |只看該作者 |倒序瀏覽
製作數控可調直流穩壓電源的零件需求如下:

STM32F103C8T6 微控制器
16x2 字符液晶顯示屏
直流穩壓電源板
5K 滑動式電位器
10K NTC 熱敏電阻
1K 歐姆電阻
10K 歐姆電阻
1K 歐姆電位器
10K 歐姆電位器
輸入電壓計
輸出電壓計
直流電源供應器
杜邦線
電源線
錫線
錫膏
燒錄器


以下是可調直流穩壓電源的示例程式碼,供您參考:


#include <LiquidCrystal.h>    // 引入字符液晶顯示屏庫
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);    // 定義液晶顯示屏引腳

const int voltageInPin = A0;    // 定義輸入電壓測量引腳
const int voltageOutPin = A1;    // 定義輸出電壓測量引腳
const int adjustPin = A2;    // 定義電壓調節電位器引腳
const int thermistorPin = A3;    // 定義熱敏電阻引腳

float voltageIn = 0.0;    // 定義輸入電壓變量
float voltageOut = 0.0;    // 定義輸出電壓變量
float adjustVoltage = 0.0;    // 定義電壓調節變量
float thermistorResistance = 0.0;    // 定義熱敏電阻變量
float thermistorTemperature = 0.0;    // 定義熱敏電阻溫度變量

void setup() {
  lcd.begin(16, 2);    // 初始化液晶顯示屏
  lcd.print("DC Power Supply");    // 顯示標題
}

void loop() {
  voltageIn = analogRead(voltageInPin) * (5.0 / 1023.0);    // 讀取輸入電壓值
  voltageOut = analogRead(voltageOutPin) * (5.0 / 1023.0); // 讀取輸出電壓值

thermistorResistance = 10000.0 * (1023.0 / analogRead(thermistorPin) - 1.0); // 讀取熱敏電阻值
thermistorTemperature = (1.0 / ((log(thermistorResistance / 10000.0) / 3950.0) + (1.0 / 298.0))) - 273.0; // 計算熱敏電阻溫度

adjustVoltage = analogRead(adjustPin) * (5.0 / 1023.0); // 讀取電壓調節值
analogWrite(9, adjustVoltage * (255.0 / 5.0)); // 調節輸出電壓

lcd.setCursor(0, 1); // 設置顯示位置
lcd.print("In: "); // 顯示輸入電壓
lcd.print(voltageIn);
lcd.print("V Out: "); // 顯示輸出電壓
lcd.print(voltageOut);
lcd.print("V");

lcd.setCursor(0, 0); // 設置顯示位置
lcd.print("Temp: "); // 顯示熱敏電阻溫度
lcd.print(thermistorTemperature);
lcd.print("C Adj: "); // 顯示電壓調節值
lcd.print(adjustVoltage);
lcd.print("V");

delay(100); // 延時 100 毫秒
}



這個程式碼會定期讀取輸入電壓、輸出電壓、熱敏電阻和電壓調節值並通過字符液晶顯示屏顯示出來。

它還使用 `analogWrite` 函數來調節輸出電壓,這是因為 STM32F103C8T6 微控制器的某些腳位支持 PWM(脈寬調變)輸出。

PWM 是一種調節輸出電壓的方法,通過在不同的時間段內以不同的速率交替開關輸出引腳,可以模擬出不同的平均電壓值。
[發帖際遇]: 洪嵐峰 「統測」成績優異,因而獲得獎學金 1 楓幣 幸運榜 / 衰神榜
收藏收藏0 推0 噓0


把本文推薦給朋友或其他網站上,每次被點擊增加您在本站積分: 1鑰匙
複製連結並發給好友,以賺取推廣點數
簡單兩步驟,註冊、分享網址,即可獲得獎勵! 一起推廣文章換商品、賺$$
高級模式
B Color Image Link Quote Code Smilies |上傳

廣告刊登意見回饋關於我們管群招募本站規範DMCA隱私權政策

Copyright © 2011-2024 冰楓論壇, All rights reserved

免責聲明:本網站是以即時上載留言的方式運作,本站對所有留言的真實性、完整性及立場等,不負任何法律責任。

而一切留言之言論只代表留言者個人意見,並非本網站之立場,用戶不應信賴內容,並應自行判斷內容之真實性。

小黑屋|手機版|冰楓論壇

GMT+8, 2024-12-22 21:56

回頂部