【拓普微智能显示模块测评】6.基于开发板NUCLEO-F746ZG的电机应用平台诞生
<div class='showpostmsg'><p><span style="font-size:16px;">经过2天业余时间的修炼,把智能显示模块的所有命令码的控制函数做完了,只需要根据自己的需求,随意调用函数即可实现自己的功能。</span></p><p><span style="font-size:16px;">哎,做底层真是很辛苦!!!大家要给点鼓励。</span></p>
<p> </p>
<p><span style="font-size:16px;">首先,把自己要显示的变量在智能显示屏上定义数字变量地址,类型为16位数据。目前我定义的地址范围是0x080004~0x08000C。字符串地址跟数字变量类似。</span></p>
<p><span style="font-size:16px;">其次,在程序中按照定义的变量地址顺序进行数据排序,不能混乱,否则在屏上显示的数据是错的。</span></p>
<p><span style="font-size:16px;">再次,注意程序中的数据在屏上显示的格式。<strong> </strong></span></p>
<p><span style="font-size:16px;"><strong>(1). 浮点数类型数据占 4 个字节, 单片机给屏发 送 float 类型数据时, 数字控件属性必须是 "浮点型"才可正确显示.</strong></span></p>
<p><span style="font-size:16px;"><strong>(2). 若数据类型为整型类型(有符号/无符号整型) 且设置了小数位≥1 时,数据会被格式化成小 数格式显示.</strong></span></p>
<p><span style="font-size:16px;"><strong>例: 整数位=自动,</strong></span></p>
<p><span style="font-size:16px;"><strong>小数位=2.</strong></span></p>
<p><span style="font-size:16px;"><strong>数字 1234</strong></span></p>
<p><span style="font-size:16px;"><strong>显示为 12.34</strong></span></p>
<p><span style="font-size:16px;"><strong>数字 50 显示为 0.50</strong></span></p>
<p> </p>
<p><span style="font-size:16px;"><strong>一切准备就绪,请看程序。在程序中定义了几个显示的变量:电压,电流,功率,温度,实际转速。</strong></span></p>
<pre>
<code>void GetMotorRunStatusPar(void)
{
uint16_t busVal=0;//电压
uint16_t tempVal=0;//温度
uint16_t speedVal=0;//实际转速
uint16_t powerVal=0;//功率
uint16_t ItotalVal=0;//电流
uint16_t speedrefVal=0;//设定转速
busVal = VBS_GetAvBusVoltage_V(MCT.pBusVoltageSensor);//获取电压
tempVal = NTC_GetAvTemp_C(MCT.pTemperatureSensor);
speedVal = MC_GetMecSpeedAverageMotor1()*6;
powerVal = MPM_GetAvrgElMotorPowerW(MCT.pMPM);
ItotalVal = powerVal*100/busVal;
speedrefVal = MC_GetMecSpeedReferenceMotor1()*6;
motorStruct.BusVal = busVal*10;
motorStruct.TempVal = tempVal*10;
motorStruct.SpeedVal = speedVal;
motorStruct.PowerVal = powerVal*10;
motorStruct.ItotalVal = ItotalVal;
motorStruct.SpeedrefVal = speedrefVal;
}</code></pre>
<p> </p>
<p><span style="font-size:16px;">发送数据到智能显示屏:从地址0x08004开始,连续写12个数据到显示屏。</span></p>
<pre>
<code>
/*
发送数据到HIM
*/
void SendMotorRunPartoHIM(void)
{
himStruct.SendBuff = (motorStruct.BusVal>>8)&0xff;
himStruct.SendBuff = motorStruct.BusVal&0xff;
himStruct.SendBuff = (motorStruct.ItotalVal>>8)&0xff;
himStruct.SendBuff = motorStruct.ItotalVal&0xff;
himStruct.SendBuff = (motorStruct.SpeedVal>>8)&0xff;
himStruct.SendBuff = motorStruct.SpeedVal&0xff;
himStruct.SendBuff = (motorStruct.PowerVal>>8)&0xff;
himStruct.SendBuff = motorStruct.PowerVal&0xff;
himStruct.SendBuff = (motorStruct.TempVal>>8)&0xff;
himStruct.SendBuff = motorStruct.TempVal&0xff;
himStruct.SendBuff = (motorStruct.SpeedrefVal>>8)&0xff;
himStruct.SendBuff = motorStruct.SpeedrefVal&0xff;
WriteDataVariabletoHIM(CMD_WriteNumericVariables, 0x080004,DATATYPE_16, 12, himStruct.SendBuff);
}</code></pre>
<p> </p>
<p> </p>
<p><span style="font-size:16px;">请看实际效果:</span></p>
<p><span style="font-size:16px;">电机运行前:</span></p>
<p><span style="font-size:16px;"></span></p>
<p><span style="font-size:16px;"></span></p>
<p><span style="font-size:16px;"><strong>启动电机以后:</strong></span></p>
<p><span style="font-size:16px;"></span></p>
<p><span style="font-size:16px;">所有参数均是实时获取。</span></p>
<p><span style="font-size:16px;">遗憾的是,界面做的不好看。</span></p>
<p> </p>
<p><span style="font-size:16px;">界面还有很多参数需要实现,工作量有点大,这个只能慢慢搭建了,希望一段时间以后给大家呈现的会是很不错的效果。</span></p>
<p><span style="font-size:16px;">接下来我测试一下智能显示屏的网络端口和脚本lua。电机的其他搭建等我这两个做完以后在继续。(测评要完成,都是任务,不能对不起给与的机会)!!!</span></p>
<p> </p>
<p> </p>
<p> </p>
</div><script> var loginstr = '<div class="locked">查看本帖全部内容,请<a href="javascript:;" style="color:#e60000" class="loginf">登录</a>或者<a href="https://bbs.eeworld.com.cn/member.php?mod=register_eeworld.php&action=wechat" style="color:#e60000" target="_blank">注册</a></div>';
if(parseInt(discuz_uid)==0){
(function($){
var postHeight = getTextHeight(400);
$(".showpostmsg").html($(".showpostmsg").html());
$(".showpostmsg").after(loginstr);
$(".showpostmsg").css({height:postHeight,overflow:"hidden"});
})(jQuery);
} </script><script type="text/javascript">(function(d,c){var a=d.createElement("script"),m=d.getElementsByTagName("script"),eewurl="//counter.eeworld.com.cn/pv/count/";a.src=eewurl+c;m.parentNode.insertBefore(a,m)})(document,523)</script> <p>这界面已经很不错了!电机也会跟着转吗?想看视频!</p>
wangerxian 发表于 2021-11-7 14:26
这界面已经很不错了!电机也会跟着转吗?想看视频!
<p>电机肯定跟着转呀,否则哪里来的速度。本想着发视频,感觉界面不好看,就没有拍,还有几个功能也没有实现,所以就不发了,等我后续</p>
annysky2012 发表于 2021-11-7 14:32
电机肯定跟着转呀,否则哪里来的速度。本想着发视频,感觉界面不好看,就没有拍,还有几个功能也没有实现 ...
<p>好嘞,感觉屏幕配合电机,就有点像工控设计~</p>
wangerxian 发表于 2021-11-7 14:49
好嘞,感觉屏幕配合电机,就有点像工控设计~
<p>我还想着在界面做动态图的,但是这个比较复杂点。</p>
<p>慢慢来 不急不急。</p>
annysky2012 发表于 2021-11-7 14:54
我还想着在界面做动态图的,但是这个比较复杂点。
<p>动态的确实好像比较复杂,不过更符合现代化!</p>
soso 发表于 2021-11-8 10:07
慢慢来 不急不急。
<p>不急不急</p>
wangerxian 发表于 2021-11-8 11:57
动态的确实好像比较复杂,不过更符合现代化!
<p>最开始的想法就是做动态的,比如电压、功率、转速做表盘,温度做温度计式的,附带电机动态运行图。这个我后续慢慢做吧</p>
页:
[1]