好久没有玩嵌入式了,刚好赶上面包板活动,申请一个板子,结合自己家的鱼塘,想做一个缺相报警装置。没有想到很幸运收到了,慢慢摸索,学习一下吧。
1.首先就是安装配置环境,参考官网和论坛教程,走了一些弯路,不过终于成功了。
去官网下载开发工具并安装:
2、连接好数据线,并做配置。
按照板子上面的提示,接好跳线,选择SCI/USB,然后连接上电脑,电源灯亮了。
3、缺相监测模块的介绍
为了简便,缺相的电路没有重新设计,直接上某宝买了一个缺相监测的模块
这个监测模块UWV直接接市电的三相电,当监测到缺相时,相应的接口导通,输出对应的低电平。
那我们要做的就很简单了,只需要用测试板的相应端口去读取高低的电平就行了,这样就可以判断出缺相了。
4、简单缺相测试代码编制。
直接在E2里面新建工程,选择相应的模板,设置相应的芯片型号。
缺相检测模块的缺相输出接到P05,由于需要模拟出缺相的情况,所以就复用了板上面的那个按钮连接线,也可以直接通过按钮来进行初步的模拟测试。
为了将缺相检测情况进行显示,直接将缺相显示放在自带的P103口,当检测的缺相时,P03口亮,否则灯灭。
对端口进行简单的pin配置,将P015口设置为输入模式,P103口设置为输出模式,这个引脚模式配置的方式跟其他的有点不一样。
开始编写测试代码,在main.c的int main函数中写入:
while(1)
{
R_IOPORT_PortRead(&g_ioport_ctrl, BSP_IO_PORT_00, &p_port_value_port_15);
if(p_port_value_port_15 & 0x8000)
R_IOPORT_PinWrite(&g_ioport_ctrl, BSP_IO_PORT_01_PIN_04, BSP_IO_LEVEL_LOW);
else
R_IOPORT_PinWrite(&g_ioport_ctrl, BSP_IO_PORT_01_PIN_04, BSP_IO_LEVEL_HIGH);
R_IOPORT_PinRead(&g_ioport_ctrl, BSP_IO_PORT_00_PIN_15, &p_port_value_port_151);
if(p_port_value_port_151)
R_IOPORT_PinWrite(&g_ioport_ctrl, BSP_IO_PORT_01_PIN_04, BSP_IO_LEVEL_LOW);
else
R_IOPORT_PinWrite(&g_ioport_ctrl, BSP_IO_PORT_01_PIN_04, BSP_IO_LEVEL_HIGH);
将模块接上市电,通过开关来简单控制模拟缺相的情况,这样就可以看到对应的灯亮灭了,说明测试成功,也可以直接通过按开关按钮来模拟测试一下。
5、使用个简单的串口屏做个显示测试:
检测出缺相最好有个显示提示,光靠一个灯的显示还不够直观,刚好手上有淘XX320*240串口屏,都配有相应的教程的可以测试一下,简单地发送个信息,这里用的是USRT通过定时器中断方式发送数据,屏幕接收到了之后进行一个简单的提示,做个测试:
当前只是上手测试,东西做的很粗糙,再说,性能这么强大的芯片做这个简单的小玩意杀鸡用牛刀了,后面需要扩展一些功能,比如加入无线短信通信,可以将缺相情况发给有关人员,接入更多的传感器,可以实现对水质等其他环境量的监测,慢慢学习探索中。