有什么好的思路实现:stm32 程序控制现有商业电磁炉加热或停止


想法:想用现有的电磁炉负责加热,stm32的IO模拟电磁炉的按键,关闭电磁炉和增加、减小功率,实现控制温度。目前,红外传感器程序已经显示。本人水平比较菜。

困难:不知道电磁炉内部程序,是什么数据是增加或减少功率。

现有条件:面板数码管芯片1628A芯片,电磁炉主板芯片2002P05/DTS1D1601。

目前进展:面板通过1638的程序实现了显示,原程序数码管8位,我这边的4位,其余均无,按键功能也没有实现。下面是1638博主的程序:(30条消息) 硬件学习之路——STM32之TM1638_Carry_isme的博客-CSDN博客_tm1638

自己的下一步思路:通过示波器读出电磁炉开关、增加、减速功率的波形,转换数据,再由stm32直接发送。

//过程中出现的情况:1、数码管显示不是通常的0x3F,0x06,0x5B,0x4F,//0-9,而是0xFB,0x0A,0xE6,0xAE,0x1F,0xBD,0xFD,0x8A,//0----为了这几个数字试了好几天;

2、显示需要2位传入相同数据才能显示:如下[6][7]等


void TM1638_Display_Num(u32 data)
{
    unsigned int dataL=0,dataR=0;
    dataL=data/10000;
    dataR=data%10000;
    TM1638_Write_Cmd(0x44);//固定地址,写数据
    TM1638_Write_Cmd(0x88);//显示开,亮度1

    TM1638_Write_Addr_Bond(TM1638_Addr_SEG[0],TM1638_Arr_SEG[dataL/1000]);//0-1-2-3功率灯泡、温度循环亮灯
    TM1638_Write_Addr_Bond(TM1638_Addr_SEG[1],TM1638_Arr_SEG[dataL%1000/100]);
    TM1638_Write_Addr_Bond(TM1638_Addr_SEG[2],TM1638_Arr_SEG[dataL%100/10]);
    TM1638_Write_Addr_Bond(TM1638_Addr_SEG[3],TM1638_Arr_SEG[dataR%10]);
    TM1638_Write_Addr_Bond(TM1638_Addr_SEG[4],TM1638_Arr_SEG[dataR/1000]);//0-1-2-3定时循环亮灯
   TM1638_Write_Addr_Bond(TM1638_Addr_SEG[5],TM1638_Arr_SEG[dataR%100/10]);//0-1-2-3开关循环亮灯       TM1638_Write_Addr_Bond(TM1638_Addr_SEG[6],TM1638_Arr_SEG[dataR%10]);//最右边1位
  TM1638_Write_Addr_Bond(TM1638_Addr_SEG[7],TM1638_Arr_SEG[dataR%10]);    //最右边1位
    TM1638_Write_Addr_Bond(TM1638_Addr_SEG[8],TM1638_Arr_SEG[dataL%10]);
   TM1638_Write_Addr_Bond(TM1638_Addr_SEG[9],TM1638_Arr_SEG[dataL%10]);
    TM1638_Write_Addr_Bond(TM1638_Addr_SEG[10],TM1638_Arr_SEG[dataR%600/60]);//最右边2位
 TM1638_Write_Addr_Bond(TM1638_Addr_SEG[11],TM1638_Arr_SEG[dataR%600/60]);//最右边2位
  TM1638_Write_Addr_Bond(TM1638_Addr_SEG[12],TM1638_Arr_SEG[dataR%60/10]);//最右边3位
 TM1638_Write_Addr_Bond(TM1638_Addr_SEG[13],TM1638_Arr_SEG[dataR%60/10]);    //最右边3位
}

请教各位老大有没有什么好的思路实现:stm32直接发送数据控制电磁炉开启、关闭、增降功率。

img

img

img

img

数码管是扫描方式显示的,你需要配合位信号读取。