给电烙铁增加PWN调温功能

描述

本文为【免费试用RA-Eco-RA4M2开发板评测】活动文章 

原文地址:https://bbs.elecfans.com/jishu_2488239_1_1.html

作者:@jf_69121293

 

 

一、验证目标

搭建电路验证907电烙铁测温,发热控制的可行性,调温部分只做最简单的处理。达到快速验证可行性的目的,为之后优化调温排除障碍。

二、材料清单

RA-Eco-RA4M2开发板
 

907电烙铁手柄(热电偶测温方式1322发热芯)

OLED模块128*32

MAX6675模块

PWM开关模块

DC电源

 

三、连接结构

开发板


 

四、代码构建

1. 读取温度

需要读取16bit的数据,但是sci spi代码似乎目前只支持8bit,所以我们用8bit读2次。

  •  
  •  
  •  
  •  
  •  

g_ioport.p_api->pinWrite(g_ioport.p_ctrl, sci_spi0_cs, BSP_IO_LEVEL_LOW); vTaskDelay(1); R_SCI_SPI_Read(&g_sci_spi0_ctrl, &spi_data, 2, SPI_BIT_WIDTH_8_BITS); vTaskDelay(1); g_ioport.p_api->pinWrite(g_ioport.p_ctrl, sci_spi0_cs, BSP_IO_LEVEL_HIGH);


 

2. 更新设定的目标温度

在这里也完成了显示内容的更新

  •  
  •  

set_temp(target_temp); printf("target_temp---%d\r\n", target_temp);


 

3. 解析MAX6675传感器数据

判断了一下热电偶是否开路。update_k主要更新显示的温度和热电偶连接情况。只有连接热电偶的时候我们才调用deal,获得一个pwm控制结果。

  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  

if (spi_data[1] & 0x4){ update_k(0, 999);// printf("no K connect\r\n\r\n"); pwm_duty = 100; } else { temp_data = spi_data[0] << 5; temp_data += spi_data[1] >> 3;// print_binary2(temp_data);// printf("\r\n"); temp = temp_data / 4; printf("temp---%d\r\n", temp);
update_k(1, temp_data);
pwm_duty = (uint8_t)deal(temp, target_temp); }

 


 

4. 粗略计算PWM

在这里主要验证功能正常与否,所以只用了最简单的比例调节。后续需要进行更多的处理。

  •  

pwm = (temp_2 - temp_1)/2;

 


 

5. 输出PWM

在这里实现如下

  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  

void agt_pwm_set(uint8_t duty){ timer_info_t info; uint32_t period_counts, duty_counts;
R_AGT_InfoGet(&g_timer_agt0_ctrl, &info); period_counts = info.period_counts; if (duty > 99){ R_AGT_DutyCycleSet(&g_timer_agt0_ctrl, period_counts-1, AGT_OUTPUT_PIN_AGTOA); return; } duty_counts = (uint32_t)(((uint64_t) period_counts * duty) / 100); R_AGT_DutyCycleSet(&g_timer_agt0_ctrl, duty_counts, AGT_OUTPUT_PIN_AGTOA);}

 


 

五、实物连接

开发板供电用的主电源,因为发热芯的电阻大约10欧姆,所以12v,大概不会超过1。5A,调温的参数优化之后我们再上更高电压更高功率,避免烧坏发热芯。

开发板这是用到的PWM模块,可是很多廉价版本的场管模块理论需要8V以上驱动电压的,单片机IO口的3。3V根本不够,凌空搭棚一个三极管。虽然完成了电平的转换,但是PWM需要反相一下了。软件来补。

开发板烙铁手柄本体了,用的是热电偶发热芯的。主要是别的发热芯,手上缺少温度校准的途径,无法实现准确的数显温度。航空插座的2个脚接热电偶,2个脚接PWM开关模块的输出

开发板MAX6675模块,外接电路极其简单,所以直接用了sop8转dip的转接板即可。足够简单吧

开发板然后就是显示屏了,我们在这里显示了目标温度,当前温度,手柄连接状态,以及输出的PWM百分比。

另外用来ra4m2板上的2个按键,S1温度增加10度。S2温度降低10度。

大概是由于907烙铁手柄的发热芯,与烙铁头是分开的,导热效率低下,烙铁头热容较高。所以大家玩907的偏少。T12,C210,C245,高频烙铁等各种备受追捧,我也希望下一步能够尝试更新的烙铁。个人感觉最理想的是高频烙铁。

六、成果展示


 

如视频看到,测得的温度升高还是挺快的,但是与传到烙铁头尖部的温度还有不小差距。并且始终温度与设定温度有差距,这也符合当前程序的调节方式,因为我们只 用了简单的K比例调节。下一步尝试加入pid的调节,期待能达到更好的效果。

 

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分