本帖最后由 mengyun2801 于 2013-11-30 02:16 编辑
这段时间正在利用Psoc3开发单位的项目,这几天刚刚焊接了两板,正在调试软件中。随着Psoc4的推出,出于单位和个人的角度来说,特别想深入评测一下。而最近正好帮朋友做个项目,周六从朋友那拿来个无刷直流电机和电调,想测试一下。突然想起手里的Psoc4开发板,这块是从单位途径从供应商那要来的,周末偷偷拿回来玩玩,没想到正好派上用场。
言归正传,下面步入正题~~~ 首先到官网上把CY8CKIT-042的原理图找到了,原理图已经添加到附件中,大家可以直接下载。 本设计主要实现的功能如下:
1. 通过滑条控制电机的占空比,从而达到调速的目的;
2. 通过三色灯作为速度的指示;
3. 通过串口将PWM的占空比数据传到上位机进行监控。
下面就是接线了,主要有5根线需要连接: 一是开发板与电调的连接方法:a、把J2上的P2.0作为PWM的输出;b、把开发板的5V电源(J9最左端)连在电调的5V上,因为开发板用的是3.3V,正好把5V端子留了下来,给咱们提供了方便;c、开发板上的J2上的地连在电调上的地; 二是电调与供电源适配器的连接方法:电调上还有一对电机端的直流电12V,我用可调节的电源适配器来供电。 这样就连接好电路了,可以参照下图实例:
开发板接线图
接下来就是程序编写,为了让大家看的清楚明白,我简单把软件流程写了一下:
软件流程图
软件中主要的是将位置数据转换成RGB_LED和CMP Value。下面只对电机部分进行一下详细解说,若要控制电机,我们所要驱动的直流无刷电机参数,但我只知道此电机的频率为400HZ,占空比初值为37.6%,至于最大转速等,正是我这次测试的目的。
下面就是将如何将滑条位置转换成CMP Value(占空比)。通过软件测试,滑条无触摸时值为0xffff,触摸滑条值范围为0x0000~00ff;将触摸采样值转为8bit:CAP_TO_U8 = CapSensePosition & 0xff;
初步设定电机占空比范围37.6%~97.6%,为此将位置采样值的范围0x00~0xff转换到0x5e~0xF4,即可算出如下关系:
PWM_CMP_Value = CAP_TO_U8*0x03/0x05+0x5e;
为了保证电机安全,为此加入触摸检测,保证在手指离开后,将电机占空比赋初值。
if(CapSensePosition != 0xffff) // 判断是否感应到触摸
{
PWM_2_WriteCompare(PWM_CMP_Value); // 手指在滑条上时,将触摸滑条转换的占空比值赋给PWM模块的CMP Value
}
else
{
PWM_2_WriteCompare(0x5e); // 手指离开滑条后,对PWM模块的CMP Value赋初值,起到电机保护的作用。
}
完整程序请见附件压缩包,希望大家批评指正,此程序已测。下面是我测试过程的视频,第一次传视频特意搞了个优酷的账号,将视频传到上面,才搞到链接地址,由于采用手机拍摄,效果可能不是很理想。我自己看了一下,RGB三色灯颜色变换不是很明显,同时我将“小金刚”----万用表接入到电路中,这样就能通过他来读取PWM的频率和占空比了。自己没有示波器,若是没有它,我还真不知道该怎么测量。下面请欣赏视频,仔细观察一下,可以看到三色LED在变色,同时小金刚的占空比数据也在变化~~~
CY8CKIT-042触摸滑条控制电机演示:
下面是测试中的一些照片,为了看着更方便,还是贴几张典型的。下面这张就是我把小金刚接到电路中测量PWM参数。
万用表接法(测试PWM频率及占空比)
这张是利用小金刚的f/Hz档位,测量PWM的频率,在软件中设定在400Hz,读数有点点偏差,大家见谅,这是设备问题,因为我还在解放前呀~~~
万用表测量PWM频率
这张是用小金刚的切换键,测量PWM的占空比,初始值设定在37.6%,勉强准确。
这张图是在无触摸时拍摄的,为了保护电机,在检测不到手指触摸时,将赋初值给CMP Value,让电机停止转动。
无触摸时PWM占空比的初始值
这张是全家福,所有设备都在了,之前唯一没有出现的就是左侧可调适配器了,那还是我上初中的时候买的呢,初步算一下,已经陪伴了我十多年了,现在还在替我效力,真的很辛苦呀~~~
全家福(左面的可调电源也算是个幕后主角)
最最后面,就把CY8CKIT-042的原理图和源程序压缩包CapSense to PWM_UART附在上面,若有问题请大家批评指正,谢谢板友们的支持~~~
CY8CKIT-042_Schematic.pdf
(227.8 KB, 下载次数: 113)
|