【Proteus仿真】Arduino UNO步进电机驱动示例
【Proteus仿真】Arduino UNO步进电机驱动示例
- Proteus仿真

驱动代码
没有调用其他库
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56
| #define LED ( 13 ) #define MOTOR\_PIN0 ( 8 ) #define MOTOR\_PIN1 ( 9 ) #define MOTOR\_PIN2 ( 10 ) #define MOTOR\_PIN3 ( 11 ) void setup() { pinMode( LED, OUTPUT ); pinMode( MOTOR_PIN0, OUTPUT ); pinMode( MOTOR_PIN1, OUTPUT ); pinMode( MOTOR_PIN2, OUTPUT ); pinMode( MOTOR_PIN3, OUTPUT ); }
void loop() { static byte i = 0; switch( i++ )//这里改成i--就是反转 { case 0: digitalWrite( MOTOR_PIN0, HIGH ); digitalWrite( MOTOR_PIN1, LOW ); digitalWrite( MOTOR_PIN2, LOW ); digitalWrite( MOTOR_PIN3, LOW ); digitalWrite( LED, HIGH ); break; case 1: digitalWrite( MOTOR_PIN0, LOW ); digitalWrite( MOTOR_PIN1, HIGH ); digitalWrite( MOTOR_PIN2, LOW ); digitalWrite( MOTOR_PIN3, LOW ); digitalWrite( LED, LOW ); break; case 2: digitalWrite( MOTOR_PIN0, LOW ); digitalWrite( MOTOR_PIN1, LOW ); digitalWrite( MOTOR_PIN2, HIGH ); digitalWrite( MOTOR_PIN3, LOW ); digitalWrite( LED, HIGH ); break; case 3: digitalWrite( MOTOR_PIN0, LOW ); digitalWrite( MOTOR_PIN1, LOW ); digitalWrite( MOTOR_PIN2, LOW ); digitalWrite( MOTOR_PIN3, HIGH ); digitalWrite( LED, LOW ); break; default: break; } delay(110);//此数值必须大于100,否则仿真的时候会抖动,该延时函数直接影响转速 i %=4; }
|
程序源码和仿真资源
1 2 3
| 链接:https://pan.baidu.com/s/1qlwfTQPtiPD7UOwyR1TySw 提取码:o87n
|
| 学习的敌人是自己的满足, 要认真学习一点东西, 必须从不自满 开始。 对自己, “学而不厌”, 对人家, “诲人不倦”, 我们应取这种态度。–毛泽东 |
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!