rl19871988 发表于 2012-5-4 16:51:08

自己想做个小车,请教高手

我自己想做过智能下车,但在调试的时候两个步进电机总是左右振动不转,我不知道是怎么回事请高手指点!!!

skyseeingliqy 发表于 2012-5-4 17:04:46

会给单片机写程序么?

rl19871988 发表于 2012-5-4 17:07:06

不会,,但一个朋友帮我写

nazily215 发表于 2012-5-4 17:10:08

驱动频率太快了,调低一些,例如1K前后

rl19871988 发表于 2012-5-4 17:20:57

能不能告诉我频率怎么调嘛??

困境堂主 发表于 2012-5-4 17:46:30

用步进电机不觉得慢吗?要是做走跷跷板的当我没说···········

pangjiaqian 发表于 2012-5-4 18:47:24

你接这么两个步进电机,那两个298肯定发热好大,散热片不够大,久一点的话肯定发烫......

ITOP 发表于 2012-5-4 18:52:57

楼主换直流电机吧!用这么大两坨步进电机不合适!

xlwq 发表于 2012-5-4 18:56:34

建议用直流电机!!

telecom1633 发表于 2012-5-4 19:15:37

http://v.youku.com/v_show/id_XMzM1NDgwMzUy.html

telecom1633 发表于 2012-5-4 19:16:11

我也做了一个,希望对你有帮助!

rl19871988 发表于 2012-5-4 19:36:15

哥哥些,能不能帮我解决下步进电机只振动不转的问题嘛?

culapple 发表于 2012-5-4 22:20:39

估计是相序写的不对,学习下步进电机驱动吧

rl19871988 发表于 2012-5-5 11:48:23

culapple 发表于 2012-5-4 22:20 static/image/common/back.gif
估计是相序写的不对,学习下步进电机驱动吧

你看看这个程序有没有问题嘛,我觉得我的接线和这上面定义一样的哒



/******************************定义头文件*************************/
#include <reg52.h>
#define uchar unsigned char
#define uint unsigned int
/*****************************变量定义****************************/
sbit L_A = P1^0;                       //左侧步进电机A相
sbit L_A_= P1^1;                        // 左侧步进电机A_相
sbit L_B = P1^2;                        // 左侧步进电机B相
sbit L_B_= P1^3;                        // 左侧步进电机B_相
sbit R_A = P1^4;                        // 右侧步进电机A相
sbit R_A_= P1^5;                        // 右侧步进电机A_相
sbit R_B = P1^6;                        // 右侧步进电机B相
sbit R_B_= P1^7;                        // 右侧步进电机B_相
                       
/***************************变量声明*****************************/
uchar step_round_l={0x80, 0x90, 0x10, 0x30, 0x20, 0x60, 0x40, 0xc0}; //步进电机单步脉冲
uchar step_round_r={0x08, 0x09, 0x01, 0x03, 0x02, 0x06, 0x04, 0x0c}; //步进电机单步脉冲
char i=0,j=0;                     //步数控制变量
            
/**************************子函数定义****************************/
void round_l(int speed,step);   //前进函数
void round_r(int speed,step);           //后退函数
void delay(int k);                  //延时函数

/***************************主函数*****************************/
void main()
{
        round_l(300,500);
        round_r(300,500);
                       
}
/**************************子函数****************************/
void round_l(int speed,step)                           //前进函数
{
               
        while(step)
        {
                       
                P1=(step_round_l|step_round_r);
                i++;
                if(i==8)
                        {
                                i=0;
                        }
                delay(speed);
                step--;
               
        }
}

void round_r(int speed,step)                           //前进函数
{
               
        while(step)
        {
                       
                P1=(step_round_r|step_round_l);
                j++;
                if(j==8)
                        {
                                j=0;
                        }
                delay(speed);
                step--;
               
        }
}
void delay(int k)
{
        while(k--);       
}
页: [1]
查看完整版本: 自己想做个小车,请教高手