新闻中心

EEPW首页 > 嵌入式系统 > 牛人业话 > PIC马达控制器:你尚不知道的那些

PIC马达控制器:你尚不知道的那些

—— PIC马达控制器:还有你尚未听闻的
作者:EEPW编译时间:2015-01-19来源:电子产品世界收藏

  几周来我拿着一本《实际的生活和工作》(技术手册)一直忙个不停,直到昨晚在布赖顿,我才终于完成了项目,结束了这种繁忙的日子。

本文引用地址:http://www.eepw.com.cn/article/268343.htm

  eve一直在检验他的音频固件升级想法是否可行:并不是像80年代人们使用ZX Spectrum那样,这里需要用squeaks和farts上传Arduino“草图”。当然,用文字描述看起来没什么稀奇,不过eve的这种方法却蕴藏的无限可能和巨大潜力,我想他不会停止对其进一步探索的脚步。

  与此同时,国际航行学会联合会(lain)需要一个简单的项目——磁铁控制型。我们已经画好了PCB并通过在面包板上验证无误,所以现在剩下的工作就是固件编码。

 (注意:大型号场效应MOSFET管IRF640用作,而不是简单的NPN型晶体管。原因之一:如果选用小型200mA 2N2222A,那么马达就会分得更大的电流,而此处选用的MOSFET管内部含有一续流二极管,可用于反映感性负载的电流变化)

  而事实上控制器的原理非常简单——在霍尔效应传感器上方放置一磁铁则启动马达;再次将磁铁靠近传感器则关闭马达。通常两级状态机的控制采用这种方法。但是我们还需要注意以下几个方面:

  首先,用PP3电池为马达供电。

  因此首先确保微控制器没有独占整个电池供能,此外微控制器应时时对霍尔传感器的输入引脚状态进行查询,包括不需要时将切换到睡眠状态。当然,这也意味着需要设置唤醒中断,将微控制器切换到工作模式。

  下面是我们遇到的情况:

  下面这几点值得一提

  a) 采用内联汇编。使用Oshonsoft编译器的优点在于,简单通过使用汇编结束标志和汇编指令,就可以在基本代码中加入汇编语言。要注意,在汇编语句和命令之间必须使用Tab跳格或空格,否则编译器会将下一个字符默认为标签,而非指令。

  b)采用INTCON.IOCIE = 1控制中断。例如,IOCAN.5 = 1命令让A5引脚变成低电平(连接电动机寄存器的上升沿叫做IOCAP)时,设备进入中断状态。值得庆幸的是这个中断命令也可以用于设备唤醒。

  c)尽管添加了注释,测试时我们还是对“关机”程序进行了测试(通过使LED闪烁数次来提示设备即将进入睡眠状态)。事实证明,用这种方法体现设备是否进入睡眠模式很奏效(设备也确实没有运行任何进程)。检查方法是:注释掉“关机”以及LED闪烁指令,并添加ASM:SLEEP睡眠语句注释。此时LED应当闪烁,1至2秒左右的延迟后再次闪烁(固件运行正常情况时)。此时如果再次启用睡眠语句,则LED只会闪烁一次:因为睡眠语句禁用了程序执行权限。

  当然,启用中断指令时应确保其他空闲的输入引脚被浮置,防止意外触发中断。尽管IOCAN寄存器仅屏蔽输出被监测的引脚状态,但确保上拉电阻对于任何输入引脚都能正常工作也不是坏事,我们只是以防万一。

  于是几杯茶的工夫,我们就完成了这个相当简单的项目。当然,我们也和那些书呆子胡扯了半天。编写固件和测试完成后,剩下的就是给国际航行学会联合会(lain)发送邮件,希望我们的成果对他们有所帮助。

霍尔传感器相关文章:霍尔传感器工作原理


霍尔传感器相关文章:霍尔传感器原理
上拉电阻相关文章:上拉电阻原理


关键词: PIC 马达控制器

评论


相关推荐

技术专区

关闭