步进电机297 298驱动程序

作者&投稿:翁急 (若有异议请与网页底部的电邮联系)
Uln2003和298&297驱动步进电机比较(42的步进电机)~

这两种驱动电路的不同之处在于驱动能力的不同,ULN2003的驱动电路只有500mA,可以驱动一些小型的电机,而298,297可以带动2A以上的电机,
当然若电机的功率更大,可以使用三洋的STK系列驱动集成块,价格当然也相对较高,已经把大量步进电机资料发到楼主的邮箱了,请查收!

298有四个板桥,驱动一个步进电机,可以和297配合,单片机不做时序,发脉冲

最近正好自己在搞一个小车,经过测试了,可用,有不懂得地方再联系:
驱动用的l298n。
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
uchar rec_int_flag=0;

void delay_ms(uint x);
void motor_con(uchar angle,uchar speed ,uchar back,uchar direction);

uchar code Fan[8]={0x0a, 0x0b, 0x09, 0x0d, 0x05, 0x07, 0x06, 0x0e};
//1010 ,1011, 1001 ,1101,0101,0111,0110, 1110
uchar code Zhen[8] ={0x0e, 0x06, 0x07, 0x05, 0x0d, 0x09, 0x0b, 0x0a};
// 1110 ,0110 ,0111, 0101,1101,1001,1011,1010

void main()
{
while(1)
{
motor_con(1,20,0,2);
if(rec_int_flag==1)
{
while(1);
}
}

}

void delay_ms(uint x)
{
uchar i,j;
for(i=0;i<x;i++)
for(j=0;j<120;j++);
}

void rev_int(void) interrupt 0
{
rec_int_flag=1;

}

/***********************************************************
函数说明:
direction==0时左轮动,为1时右轮动,为2时直行。
转动角度为(7.2度*angle)。
back==1时代表后退,back==0时代表前进。
speed用于延时speed毫秒来调速。
P0为左轮电机,P1为右轮电机
***********************************************************/
void motor_con(uchar angle,uchar speed ,uchar back,uchar direction)
{
uchar m,n;
switch(back)
{
case 1: //判断前进后退与否 0代表前进
{
for(m=0;m<angle;m++) //前进角度
{
for(n=0;n<8;n++)
{
if(direction==0) P1=Fan[n]; //左转右转或直行。
else if(direction==1) P0=Fan[n];
else {P1=Fan[n];P0=Fan[n];}
delay_ms(speed); //调速
}
}
}break;
case 0:
{
for(m=0;m<angle;m++)
{
for(n=0;n<8;n++)
{
if(direction==0) P1=Zhen[n];
else if(direction==1) P0=Zhen[n];
else {P1=Zhen[n];P0=Zhen[n];}
delay_ms(speed);
}
}

}break;
default: break;

}

}

这个问题我已经回答了好几次了,你参考这里有不明白的地方你再留言给我吧。http://hi.baidu.com/wty014198/blog/item/022a2d00317e027b3812bbda.html


达州市13891608585: 步进电机297 298驱动程序 -
贝寒艾易: 最近正好自己在搞一个小车,经过测试了,可用,有不懂得地方再联系:驱动用的l298n.#include<reg52.h>#define uchar unsigned char #define uint unsigned int uchar rec_int_flag=0; void delay_ms(uint x); void motor_con(uchar angle,uchar ...

达州市13891608585: 请问基于L297/298单片机控制两相双极性步进电机正反转以及加速减速的程序怎么写?急!! -
贝寒艾易: 298就是个H桥供电的,就写程序来说没多大关系,主要是你得测出或者查出步进电机的相序,然后按相序给IO电平就可以,每次给一个,中间间隔的时间用个可变的延时,通过改变延时来改变速度,反转嘛,你就反顺序给就可以了.不知道你具体要什么的程序,程序太大,告你给思路吧. 哥们儿,你还是自己加油吧,用汇编写这个是比较麻烦的.不过提醒你,一定要查出或测出步进相序才行.

达州市13891608585: 步进电机驱动程序C语言 -
贝寒艾易: 步进电机控制程序(c语言+51单片机)#include<reg51.h>#define uint unsigned int #define uchar unsigned char #define ms *77 // f = 12 M #define LEDLen 4 #define Dj_star() {IE=0x81; pri_dj=0; } #define Dj_stop() {IE=0x00; pri_dj=1; P1=0xff; ...

达州市13891608585: 步进电机的驱动代码 -
贝寒艾易: 由楼主的程序看,在setup()函数里将2~7以及13端口设置为输出; 在loop()函数里将2~7以及13端口设置为高; 步进电机的驱动是脉冲式的,需要2~7以及13端口输出PWM脉冲才能工作.

达州市13891608585: 步进电机驱动芯片“L297/298”和“ULN2003”有什么区别? -
贝寒艾易: 说得通俗uln2003相当于继电器的作用,例如7个继电器的一端连某电压[也即uln2003电源电压](<50)在一起,而另一端作为则作为输出,又好如一个二极管,只不过因电路集成功能的因素,输出的电压等同于uln2003的电压罢了,常用于步进...

达州市13891608585: 五相步进电机的驱动 -
贝寒艾易: 买个现成的驱动器把.一个298才四个输出口,自己做的话太麻烦了 楼主为甚不用两相四相的呢,那个资料多,也好做 单片机怎么可能连2K都提供不了呢?它很轻松的就能达到,连几兆都能实现的.你用中断的方法,开一个定时器,在中断服务程序中,把端口的电平取反即可.

达州市13891608585: 求...简单的51单片机驱动步进电机程序 只要求一个转向就可以了 ... -
贝寒艾易: #include "reg52.h" unsigned char code RUN[8]={0xf1,0xf3,0xf2,0xf6,0xf4,0xfc,0xf8,0xf9}; //步进电机相序表 void delay(unsigned int t);//步进电机驱动 void motor_ffw() {unsigned char i; for (i=0; i<8; i++) //一个周期转3.75*8=30度 { P1 = RUN[i]...

达州市13891608585: 51单片机驱动步进电机电路及程序 -
贝寒艾易: 1单片机驱动步进电机(含电路图和源程序代码)源程序:stepper.cstepper.hex/** STEPPER.C* sweeping stepper's rotor cw and cww 400 steps* Copyright (c) 1999 by W.Sirichote*/#i nclude c:\mc5151io.h /* include i/o header file */#i ...

达州市13891608585: 步进电机驱动在使用中应该注意些什么 -
贝寒艾易: 使用时考虑最多的就是驱动的驱动电流、带载能力和最大负载电压. 举例来说,如果想要电压调节的可以用LM297\298组成的H桥.298的驱动电压可以高达46V,支持TTL电平.但是...

达州市13891608585: 求助51单片机驱动四相8拍步进电动机C程序 -
贝寒艾易: 这是我自己按照你的要求写的程序,不过实际操作要看你具体的应用场合,仅供你参考.假设P0口高4位来驱动.有不明白可以联系. const unsigned char clockstep[8] ={0x80, 0x90, 0x10, 0x30, 0x20, 0x60, 0x40, 0xc0}; const unsigned char ...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网