65.9K
CodeProject 正在变化。 阅读更多。
Home

通过并行端口控制步进电机

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.62/5 (79投票s)

2004年7月2日

4分钟阅读

viewsIcon

779008

downloadIcon

33265

通过 PC 的并行端口对最广泛使用的步进电机进行运动控制。

Sample Image - stepper_motor1.jpg

program

引言

本文涉及步进电机、端口访问和控制。文章允许您控制步进电机的速度、方向和步长。如果您对机器人、运动控制感兴趣,或者只是想了解这种几乎存在于所有电子设备(如软盘驱动器、打印机、扫描仪、机器人等)中的广泛使用的电机,那么您应该尝试构建这个多功能步进电机控制器。

本文还提供了关于步进电机基础知识的宝贵信息,因为关于它的文献并不多。它将帮助您掌握理解和控制“主电机”。您还将学习 PC 如何与外部设备交互(通过并行端口进行 PC 接口)。

背景

嗯……对于电路部分,我希望您了解数字电子学的基础知识,这样至少组件名称对您来说会比较熟悉。不需要太多的高级知识。至于并行端口和编程,最好参考文章 “I/O Ports Uncensored - 1 - Controlling LEDs (Light Emitting Diodes) with Parallel Port ---- By Levent S”。并且您应该知道 Visual Basic 或 C。我选择了 VB 进行编程,因为它是我认为最广泛使用且易于理解的语言。

总而言之,您应该具备以下背景:

  1. Visual Basic 或 C 其中之一。
  2. 阅读本网站上发布的文章“I/O Ports Uncensored - 1 - Controlling LEDs (Light Emitting Diodes) with Parallel Port ---- By Levent S"”中有关访问并行端口的内容。
  3. 对电子学有一些了解。

使用代码

嗯,我选择在 Microsoft Excel VB 编辑器中编程,而不是使用窗体,因为在 Excel 中,您可以动态更改、编辑代码并直接运行它。无需反复编译自己并构建 exe 文件。Microsoft Excel VB 编辑器非常容易编辑和理解,甚至比 VB 本身更容易!!您可以通过 Excel 的“工具”菜单 ->“宏”->“VB 编辑器”访问 VB 编辑器。

Reaching VB editor in Excel

在下载演示项目和源代码之前,我建议您下载我的文档 Word 文件(已压缩),然后阅读该文件。这是整个项目的 Word 格式文档。我在其中以非常系统的方式解释了一切,因为如果把所有电路都放在这里,它看起来会很庞杂。

需要理解的重要几点

如果您想向并行端口发送某些信号,您可以轻松做到。诀窍在于 Excel 的宏。是的,只需录制一个新宏,停止它,然后在 VB 中进行编辑。删除宏内部的内容,然后键入以下代码:

out 888, 255

此命令需要 `inpout32.dll` 文件位于您的 `system32` 目录中,该目录通常位于 `C:\Windows` 下,正如 I/O Ports Uncensored - 1 - Controlling LEDs (Light Emitting Diodes) with Parallel Port ---- By Levent S" 文章中所述。并且您需要将 DLL 文件导入您的程序。888 是并行端口地址的十进制数,255 也是一个十进制数,其二进制等效值为 11111111。也就是说,所有 8 个数据端口都将变为逻辑高电平。因此,通过改变数值,您可以控制哪个位是高电平。

关注点

完成这个项目不仅仅是理解控制,而是要实现一些真实、物理、且令人兴奋的事情。当我第一次通过并行端口点亮一个 LED 时,那是一个通过 PC 控制任何东西的惊人体验。于是,我更进一步……转向了使用外部电源运行设备的步进电机。内心的感受无法言表,因为在此之后,您的想象力会让您成为百万富翁。它可以用于许多应用,例如构建汽车机器人,您可以安装一个网络摄像头或数码相机来精确控制其旋转和位置。您可以使用各种步进电机构建机械臂。您可以做成千上万的事情,这取决于您的想象力……

此项目于 2004 年 6 月 4 日开始,于 2004 年 7 月 8 日完成。我在印度信息技术学院(IIITA),印度的机器人实验室,在一年级假期期间完成的。我尤其感谢 G.C.Nandi 博士,他费尽心思地帮助我解决遇到的问题、材料的可用性,并为我指明了正确的方向,提出了宝贵的建议。我还要感谢 Ram Kishore 先生,他教我基础知识并帮助我改进电路。

最后说明

英语不是我的母语,所以请原谅任何错误。这是我为 CodeProject 写的第一篇文章,因此任何建议和/或反馈都将受到赞赏。感谢您读到这里。

Sample screenshot

© . All rights reserved.