找回密码
 立即注册
查看: 118|回复: 5

AI8h1k28用PWM 输出 到电感,做1个充电器,代码怎么写

[复制链接]
  • 打卡等级:偶尔看看II
  • 打卡总天数:29
  • 最近打卡:2025-06-07 08:54:08

2

主题

7

回帖

152

积分

注册会员

积分
152
发表于 2025-6-6 16:34:14 | 显示全部楼层 |阅读模式
做个镍氢,或3.6铁锂充电器。

打开P02(G2) 输出PWM, P10 (B)读取电池 电压的一般, P13( BI ) 读取电流 在0.1A ~0.2A 对应BI =  0.1v~0.2v , 应该怎么做??   
22.png
1111.png
333.png
回复

使用道具 举报 送花

3

主题

726

回帖

163

积分

等待验证会员

积分
163
发表于 2025-6-6 16:38:00 | 显示全部楼层
为了制作一个简单的镍氢电池充电器或36铁锂电池充电器,可以按照以下步骤进行设计。以下代码适用于使用STM32微控制器(如STM32F103、STM32F105)来实现PWM输出和电池读取功能。

代码设计思路
1. 定时器配置:使用STM32的定时器来控制PWM输出,如使用PR0或PR1作为PWM驱动模块。
2. 电池读取模块:使用DAC模块(如P10-TR0或TR1)来读取电池的电压和电流数据。
3. 电源管理:使用DC-DC转换器来确保电池电压稳定,避免过电压或过电流问题。
4. 主程序:设置定时器以执行读取和输出操作,确保定时周期和频率符合要求。

代码示例

1. 基本电路设计
以下代码适用于使用STM32F103或F105微控制器来实现镍氢或36铁锂电池充电器。代码中假设使用P02-PR0和P10-TR0作为驱动和读取模块。
  1. c
  2. // 电源管理模块
  3. void init电源() {
  4.     PORTD = 0; // 高电平
  5.     PORTA = 1; // 较高电平
  6.     PORTB = 0; // 较低电平
  7.     PORTC = 0; // 低电平
  8.     // 可选:使用PWM控制模块
  9. }
  10. // 输出模块
  11. void output PWM() {
  12.     while(1) {
  13.         ifPORTA(1) { // 高电平
  14.             TR0 = 0; // 不读取
  15.             P02-PR0 = 0x00; // 低电平
  16.             P02-PR1 = 0x00; // 高电平
  17.         } else ifPORTB(1) { // 低电平
  18.             TR0 = 1; // 读取
  19.             P02-PR0 = 0x80; // 高电平
  20.             P02-PR1 = 0x00; // 低电平
  21.         }
  22.     }
  23. }
  24. // 读取模块
  25. void read voltage() {
  26.     while(1) {
  27.         PORTA = 1; // 高电平
  28.         PORTB = 0; // 较低电平
  29.         PORTC = 0; // 低电平
  30.         if PORTA(1) { // 高电平
  31.             P10-TR0 = 0x00; // 不读取
  32.         } else if PORTB(1) { // 低电平
  33.             P10-TR0 = 0x80; // 读取
  34.             break;
  35.         }
  36.     }
  37. }
  38. // 主程序
  39. void main() {
  40.     while(1) {
  41.         // 读取电压数据
  42.         read voltage();
  43.         
  44.         // 输出PWM信号
  45.         output PWM();
  46.         
  47.         // 可选:根据电压范围调整定时器输出
  48.         // 例如,电压01V~02V对应BI=01v~02v
  49.         // 可根据具体需求调整定时周期和频率
  50.     }
  51. }
复制代码

注意事项
1. 定时器配置:根据STM32F103或F105的定时器类型(如PR0、PR1)调整输出信号。
2. 电压范围:根据镍氢或36铁锂电池的电压范围进行调整。例如,镍氢电池电压通常在3.7V~4.2V,36FeLi电池电压通常在2.4V~2.9V。
3. 电源管理:使用DC-DC转换器确保电池电压稳定,避免过电压问题。
4. 调试:可以通过使用示波器查看电压和电流数据,确保读取和输出模块正常工作。

示例代码
以下代码为一个简单的示例,适用于使用STM32F103或F105微控制器来制作镍氢或36铁锂电池充电器。
  1. c
  2. // 路灯电路
  3. P02-PR0 = 0x00; // 低电平
  4. P02-PR1 = 0x00; // 高电平
  5. P10-TR0 = 0x00; // 低电平
  6. P10-TR1 = 0x00; // 高电平
  7. // 输出模块
  8. output PWM();
  9. // 读取模块
  10. read voltage();
  11. // 可选:根据电压范围调整定时器输出
  12. while(1) {
  13.     if(PORTA(1)) {
  14.         P02-PR0 = 0x80; // 高电平
  15.         P02-PR1 = 0x00; // 低电平
  16.     } else if(PORTB(1)) {
  17.         P02-PR0 = 0x00; // 低电平
  18.         P02-PR1 = 0x80; // 高电平
  19.     }
  20. }
复制代码

总结
以上代码为一个简单的示例,可以进一步根据具体需求调整定时器频率、电压范围和输出信号。确保电路设计符合镍氢或36铁锂电池的规格和应用要求。

[本文内容由国芯人工智能辅助生成,仅供参考]
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:208
  • 最近打卡:2025-06-16 08:41:37
已绑定手机

67

主题

1910

回帖

4291

积分

荣誉版主

无情的代码机器

积分
4291
发表于 2025-6-6 16:41:33 | 显示全部楼层
只是GPIO和ADC操作?参考实验箱例程:
https://www.stcaimcu.com/data/do ... -DEMO-CODE-V9.6.zip
截图202506061640097439.jpg
三天不学习,赶不上刘少奇~
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民II
  • 打卡总天数:93
  • 最近打卡:2025-06-14 13:12:15

74

主题

6088

回帖

1万

积分

超级版主

积分
12717
发表于 2025-6-6 17:41:39 | 显示全部楼层
测电压要对地接一个0.1uF电容,采样电流后要经过RC(3K+0.1uF)再到ADC。
使用PID控制PWM,根据给定的电流值和电压值,计算误差和积分,控制PWM。
电流优先,一旦到达设定的电流值,就要通过PID计算减小PWM,达到恒流目的,此为恒流充电阶段。
电流小于设定值,就用电压来计算PID,控制PWM从而稳压在设定的电压值,此为恒压充电阶段。
电流小于一定值(比如设定恒流值的1/10),则充电结束。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看II
  • 打卡总天数:29
  • 最近打卡:2025-06-07 08:54:08

2

主题

7

回帖

152

积分

注册会员

积分
152
发表于 2025-6-7 08:54:08 | 显示全部楼层
打开P02的 PWM7_3 频率50KHZ 要怎么写, 看不明白 说明书, 写的太复杂。

点评

STC8H系列-高级PWM范例程序下载,2024/1/3 更新 https://www.stcaimcu.com/thread-1779-1-1.html (出处: 国芯技术交流网站)  详情 回复 发表于 2025-6-7 15:08
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民II
  • 打卡总天数:93
  • 最近打卡:2025-06-14 13:12:15

74

主题

6088

回帖

1万

积分

超级版主

积分
12717
发表于 2025-6-7 15:08:40 | 显示全部楼层
hww*** 发表于 2025-6-7 08:54
打开P02的 PWM7_3 频率50KHZ 要怎么写, 看不明白 说明书, 写的太复杂。

STC8H系列-高级PWM范例程序下载,2024/1/3 更新
https://www.stcaimcu.com/thread-1779-1-1.html
(出处: 国芯技术交流网站)
回复 支持 反对

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-6-16 11:14 , Processed in 0.135388 second(s), 82 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表