全球最实用的IT互联网信息网站!

AI人工智能P2P分享&下载搜索网页发布信息网站地图

当前位置:诺佳网 > 电子/半导体 > 工业控制 >

两相双极性步进电机的工作原理及仿真

时间:2023-03-01 10:19

人气:

作者:admin

标签: 电机  步进电机  线圈  仿真 

导读:两相双极性步进电机的工作原理及仿真- 在此大概叙述下两相双极性电机的工作原理。如下图所示,步进电机只有两相(即两组定子),双极性代表两个定子缠绕的线圈可以两个方向通电...

有幸能从报废的机器的光驱中拆除几个电机,大概是像下方图片中那样的。 但是这个电机只有四根外接的引脚,之前对不仅电机不是很懂,这两天通过查阅资料,了解到这个电机被称为两相双极性步进电机

  在此大概叙述下两相双极性电机的工作原理。 如下图所示,步进电机只有两相(即两组定子),双极性代表两个定子缠绕的线圈可以两个方向通电。

  简单用图片表示下90度两相双极性步进电机转一圈的过程。 1表示相1正向通电,1~表示相1方向通电。

  上面只是简单叙述了下两相双极性步进电机的工作原理,下面进入正题,使用proteus进行仿真Arduino来控制电机。

  仿真:使用L298(U3)驱动四线两相双极性步进电机。

  代码:MotorTwo为两相双极性电机驱动。

/* Main.ino file generated by New Project wizard
 *
 * Created:   Thu Sep 5 2013
 * Processor: ATmega328P
 * Compiler:  Arduino AVR
 */

 #define LED ( 13 )
 #define MOTOR_PIN0 ( 0 )
 #define MOTOR_PIN1 ( 1 )
 #define MOTOR_PIN2 ( 2 )
 #define MOTOR_PIN3 ( 3 )
 #define MOTOR_PIN4 ( 4 )
 #define MOTOR_PIN5 ( 5 )
 #define MOTOR_PIN6 ( 6 )
 #define MOTOR_PIN7 ( 7 )
 #define MOTOR_ENA ( 8 )
 #define MOTOR_ENB ( 9 )
 
void setup()
 { // put your setup code here, to run once:
   pinMode( LED, OUTPUT );
   pinMode( MOTOR_PIN0, OUTPUT );
   pinMode( MOTOR_PIN1, OUTPUT );
   pinMode( MOTOR_PIN2, OUTPUT );
   pinMode( MOTOR_PIN3, OUTPUT );
   pinMode( MOTOR_PIN4, OUTPUT );
   pinMode( MOTOR_PIN5, OUTPUT );
   pinMode( MOTOR_PIN6, OUTPUT );
   pinMode( MOTOR_PIN7, OUTPUT );
   pinMode( MOTOR_ENA, OUTPUT );
   pinMode( MOTOR_ENB, OUTPUT );
 }

 void MotorOne()
 {
   static int i = 3;
   
   switch( i-- )
   {
      case 0:
     digitalWrite( MOTOR_PIN0, HIGH );
     digitalWrite( MOTOR_PIN1, LOW );
     digitalWrite( MOTOR_PIN2, LOW );
     digitalWrite( MOTOR_PIN3, LOW );
     break;
      case 1:
     digitalWrite( MOTOR_PIN0, LOW );
     digitalWrite( MOTOR_PIN1, HIGH );
     digitalWrite( MOTOR_PIN2, LOW );
     digitalWrite( MOTOR_PIN3, LOW );
     break;
      case 2:
     digitalWrite( MOTOR_PIN0, LOW );
     digitalWrite( MOTOR_PIN1, LOW );
     digitalWrite( MOTOR_PIN2, HIGH );
     digitalWrite( MOTOR_PIN3, LOW );
     break;
      case 3:
     digitalWrite( MOTOR_PIN0, LOW );
     digitalWrite( MOTOR_PIN1, LOW );
     digitalWrite( MOTOR_PIN2, LOW );
     digitalWrite( MOTOR_PIN3, HIGH );
     break;
      default:
     break;
   }
   
   if( 0 > i )
      i = 3;
 }
 
 void LedLight()
 {
   static int i = 0;
   if( 0 == i++ )
      digitalWrite( LED, HIGH );
   else
      digitalWrite( LED, LOW );
      
   if( 2 <= i )
      i = 0;
 }
 
 void MotorTwo()
 {
   static int i = 0;
   
   switch( i++ )
   {
      case 0:
     digitalWrite( MOTOR_PIN4, HIGH );
     digitalWrite( MOTOR_PIN5, LOW );
     digitalWrite( MOTOR_PIN6, LOW );
     digitalWrite( MOTOR_PIN7, LOW );
     break;
      case 1:
     digitalWrite( MOTOR_PIN4, LOW );
     digitalWrite( MOTOR_PIN5, HIGH );
     digitalWrite( MOTOR_PIN6, LOW );
     digitalWrite( MOTOR_PIN7, LOW );
     break;
      case 2:
     digitalWrite( MOTOR_PIN4, LOW );
     digitalWrite( MOTOR_PIN5, LOW );
     digitalWrite( MOTOR_PIN6, HIGH );
     digitalWrite( MOTOR_PIN7, LOW );
     break;
      case 3:
     digitalWrite( MOTOR_PIN4, LOW );
     digitalWrite( MOTOR_PIN5, LOW );
     digitalWrite( MOTOR_PIN6, LOW );
     digitalWrite( MOTOR_PIN7, HIGH );
     break;
      default:
     break;
   }
   
   if( 4 <= i )
      i = 0;
 }
 
void loop()
 { // put your main code here, to run repeatedly:
 
   MotorOne();
   LedLight();
   MotorTwo();
   
   delay(500);
   
 }
温馨提示:以上内容整理于网络,仅供参考,如果对您有帮助,留下您的阅读感言吧!
相关阅读
本类排行
相关标签
本类推荐

CPU | 内存 | 硬盘 | 显卡 | 显示器 | 主板 | 电源 | 键鼠 | 网站地图

Copyright © 2025-2035 诺佳网 版权所有 备案号:赣ICP备2025066733号
本站资料均来源互联网收集整理,作品版权归作者所有,如果侵犯了您的版权,请跟我们联系。

关注微信