救赎自我- 发表于 2022-2-16 16:19:20

51单片机和ULN2003驱动5线四相步进电机怎么调转速

本帖最后由 救赎自我- 于 2022-2-16 17:22 编辑

大佬们请问怎么改动以下程序来调节我的电机转速呢

#include"reg52.h"

typedef unsigned char u8;
typedef unsigned int u16;

sbit MOTOA=P1^0;
sbit MOTOB=P1^1;
sbit MOTOC=P1^2;
sbit MOTOD=P1^3;

#define SPEED 200

void delay(u16 i)
{
while(i--);

}

void main()
{
   P1=0x00;
   while(1)
   {
          MOTOA=1;
       MOTOB=0;
       MOTOC=0;
       MOTOD=0;
       delay(SPEED);

       MOTOA=0;
       MOTOB=1;
       MOTOC=0;
       MOTOD=0;
       delay(SPEED);

       MOTOA=0;
       MOTOB=0;
       MOTOC=1;
       MOTOD=0;
       delay(SPEED);

       MOTOA=0;
       MOTOB=0;
       MOTOC=0;
       MOTOD=1;
       delay(SPEED);

   }


}

阿萨德按时 发表于 2022-2-16 16:33:48

{:10_256:}我也不懂,只能乱猜了,我看到有个speed。#define SPEED 200 你试试改这条后面的数值

救赎自我- 发表于 2022-2-16 17:20:23

阿萨德按时 发表于 2022-2-16 16:33
我也不懂,只能乱猜了,我看到有个speed。#define SPEED 200 你试试改这条后面的数值

兄弟 这条语句好像是延时信号传输 给步进电机消抖用的 应该不是这里{:10_266:}

小伤口 发表于 2022-2-16 18:02:49

本帖最后由 小伤口 于 2022-2-16 18:04 编辑

我觉得修改SPEED就是调速的{:10_250:}
SPEED越小高低电平变化越快脉冲频率越快,应该可以调速吧

救赎自我- 发表于 2022-2-17 10:07:24

小伤口 发表于 2022-2-16 18:02
我觉得修改SPEED就是调速的
SPEED越小高低电平变化越快脉冲频率越快,应该可以调速吧

好吧这个地方好像200是最佳值了高了低了都会变慢或者抖动{:10_285:}

救赎自我- 发表于 2022-2-17 10:08:56

阿萨德按时 发表于 2022-2-16 16:33
我也不懂,只能乱猜了,我看到有个speed。#define SPEED 200 你试试改这条后面的数值

兄弟 我找到了 这条语句后面200是最佳数值 改成别的要么抖动要么减速{:10_299:}

阿萨德按时 发表于 2022-2-17 10:13:52

救赎自我- 发表于 2022-2-17 10:08
兄弟 我找到了 这条语句后面200是最佳数值 改成别的要么抖动要么减速

{:10_297:}是改哪条调速,分享下让我也涨涨知识

救赎自我- 发表于 2022-2-17 15:05:17

阿萨德按时 发表于 2022-2-17 10:13
是改哪条调速,分享下让我也涨涨知识

好像是通过定时器延时 我还在探索{:10_245:}
页: [1]
查看完整版本: 51单片机和ULN2003驱动5线四相步进电机怎么调转速