四线二相步进电机L298驱动程序

发布者:boyatang最新更新时间:2016-10-19 来源: eefocus关键字:四线二相  步进电机  L298  驱动程序 手机看文章 扫描二维码
随时随地手机看文章
/*=============================================================================
这个程序是想帮助更多的初学者掌握步进电机的使用,步进电机是一种控制精确的电机,
在个个场合中都有广泛的应用,他的控制非常简单,只要掌握脉冲时序就可以很好的控制。
可以控制它转一定的角度,可以当舵机使用,但它的成本很高,不太核算。
下面的程序是步进电机全步运行和1/2步运行。
==============================================================================*/

#include
#define uint unsigned int
#define uchar unsigned char

sbit a0=P1^0;        //a相0
sbit a1=P1^1;        //a相1
sbit en0=P1^2;        //使能1

sbit b0=P1^3;        //b相0
sbit b1=P1^4;        //b相1
sbit en1=P1^5;        //使能2

void yanshi(uint z);            //延时函数
void zheng(uchar k,uchar j);    //整步走
void xifen(uchar k1,uchar j1);    //1/2步走

uchar b,num,n,num1,n1,h;

void main()
{
    en0=1;
    en1=1;

    while(1)
    {
        xifen(10,100);    //1/2步细分  延时10mS  100个脉冲  如果步距角是1.8度,则转动90度
        yanshi(4000);

        zheng(15,50);    //全步走  延时15mS  50个脉冲  如果步距角是1.8度,则转动90度
        yanshi(4000);
    }
}

//全步走,k是延时时间,j是脉冲数
void zheng(uchar k,uchar j)
{
    b=j/4;        //一步要4个脉冲
    b=b+1;
    
    num=0;        //计数器清0

    for(b;b>0;b--)
    {
        if(num         {
            a0=0;
            a1=1;
            b0=1;
            b1=0;
            yanshi(k);
            num++;
            n=1;
        }

        if(num         {
            a0=0;
            a1=1;
            b0=0;
            b1=1;
            yanshi(k);
            num++;
            n=2;
        }

        if(num         { 
            a0=1;
            a1=0;
            b0=0;
            b1=1;
            yanshi(k);
            num++;
            n=3;
        }

        if(num         {
            a0=1;
            a1=0;
            b0=1;
            b1=0;
            yanshi(k);
            num++;
            n=0;
        }
    }
}

//  1/2步  k1是延时时间  j1半步脉冲数
void xifen(uchar k1,uchar j1)
{
    h=j1/8;        //一步8个脉冲
    h=h+1;

    num1=0;        //计数器清0

    for(h;h>0;h--)
    {
        if(num1         {
            a0=0;
            a1=1;
            b0=1;
            b1=0;
            yanshi(k1);
            num1++;
            n1=1;
        }

        if(num1         {
            a0=0;
            a1=1;
            b0=0;
            b1=0;
            yanshi(k1);
            num1++;
            n1=2;
        }

        if(num1         {
            a0=0;
            a1=1;
            b0=0;
            b1=1;
            yanshi(k1);
            num1++;
            n1=3;
        }

        if(num1         {
            a0=0;
            a1=0;
            b0=0;
            b1=1;
            yanshi(k1);
            num1++;
            n1=4;
        }

        if(num1         {
            a0=1;
            a1=0;
            b0=0;
            b1=1;
            yanshi(k1);
            num1++;
            n1=5;
        }

        if(num1         {
            a0=1;
            a1=0;
            b0=0;
            b1=0;
            yanshi(k1);
            num1++;
            n1=6;
        }

        if(num1         {
            a0=1;
            a1=0;
            b0=1;
            b1=0;
            yanshi(k1);
            num1++;
            n1=7;
        }

        if(num1         {
            a0=0;
            a1=0;
            b0=1;
            b1=0;
            yanshi(k1);
            num1++;
            n1=0;
        }
    }    


//延时函数
void yanshi(uint z)
{
    uint x,y;
    for(x=z;x>0;x--)
    for(y=114;y>0;y--);
}
关键字:四线二相  步进电机  L298  驱动程序 引用地址:四线二相步进电机L298驱动程序

上一篇:靠心率识别用户,苹果下代Apple Watch怎么做到的?
下一篇:密码访问器件X76F100在单片机系统中的应用

推荐阅读最新更新时间:2024-03-16 15:16

步进电机驱动器拨码
  步进电机驱动器拨码   步进电机驱动器(step driver)是指一类用于控制步进电机运转的电子设备,它一般采用拨码开关来设定步进电机驱动器的参数,以实现对步进电机的控制。   此驱动器采用交流伺服驱动器的电流环进行细分控制,电机的转矩波动很小,低速运行很平稳,几乎没有振动和噪音。高速时力矩也大大高于其它二相驱动器,定位精度高,广泛用于雕刻机,数控机床,包装机械等分辨率要求较高的设备上!   主要特点:   1、平均电流控制,两相正弦电流驱动输出   2、直流 18~50V 供电   3、光电隔离信号输入 /输出   4、有过压、欠压、过流、相间短路保护功能   5、十五档细分和自动半流功能   6、八档输出相电流设
[嵌入式]
基于Stm32F407的多路(6路)步进电机速度控制函数
应学弟们的要求特意将步进电机的速度控制函数完善。 重点:这里只是速度控制函数, 没有加减速曲线! 没有记录步数! 只是简单的把步进电机当成直流电机用! 很初级的一个程序! 程序的下载链接在这里 开发平台Keil5 单片机 Stm32F407 接下来 我就程序的实现过程给大家进行分享 第一部分是实现的机制介绍 详细链接 在这里!主要就是通过修改 PSC和ARR寄存器的值,我们可以修改 定时器的溢出频率!而我们的定时器模式设置成 PWM输出模式, CCR寄存器 我们设置一个较小的值*(我们要控制脉冲的频率 ,所以单个脉冲的宽度是我们不关心的!) 修改了 PSC 和ARR值之后 我们就可以实现对步进电机的速度进行控制
[单片机]
基于Stm32F407的多路(6路)<font color='red'>步进电机</font>速度控制函数
TPC单元及其在步进电机调速中的应用
步进电机在各种自动化控制系统中有着广泛的应用,是机电一体化装置中的关键部件。这是一种数字控制的电动机,是将电脉冲转化为角位移的执行机构,它通过控制脉冲个数和脉冲频率来控制电机的角位移量和转动速度,从而达到准确定位和调速的目的。 传统的步进电机所需的数字式电脉冲信号(即方波控制信号)一般都是借助数字逻辑电路来产生。随着嵌入式技术的不断发展,单片机的应用更为广泛,由单片机定时来产生这种脉冲信号的场合越来越多。单片机定时控制脉冲一般有软件定时和定时器定时两种方式。前一种方式占用了CPU的大部分工作时间,所以常用定时器定时中断来产生脉冲信号。由于一般的单片机系统中断响应时间大部分在10Us级以上,因而定时器定时中断来产生脉冲的精确度大致也
[工业控制]
mcu-stc12c5404ad单片机直流无刷电机驱动程序
//*****************************************************//* ***无刷电机控制器程序*** *//*===================================================* //* MCU-STC12C5404... //***************************************************** //* ***无刷电机控制器程序*** * //*===================================================* //* mcu-stc12c5404ad 8路ad转换,4
[单片机]
伺服电机与步进电机的选择
最好的电机是满足应用要求的电机。然而,当伺服电机和步进电机都满足定位应用的基本要求时,对这两种技术有更深入的了解以做出明智的决定就很重要了。 在这篇博文中,我们将总结伺服电机系统和步进电机系统之间的区别。 让我们从快速比较这两种电机技术开始。 步进电机 伺服电机 优点 优点 良好的低速扭矩 没有调整,没有狩猎 紧凑的电机尺寸 高性价比 良好的高速扭矩 可用的峰值扭矩 连续工作 功能齐全 缺点 缺点 高速扭矩小 有限的工作周期 无峰值扭矩 通常以开环方式运行 需要调整 仅适用于反馈 打猎 成本 虽然伺服电机和步进电机都在转子中使用永磁体,并且需要驱动电路才能运行,但它们的设计存在根本差异,从而导致性能差异。
[嵌入式]
伺服电机与<font color='red'>步进电机</font>的选择
嵌入式Linux技术在工业控制网络中的应用
     随着Internet的飞速发展,网络应用越来越广泛,对各种工业控制设备的网络功能要求也越来越高。当前的要求是希望工业控制设备能够支持TCP/IP以及其它Internet协议,从而能够通过用户熟悉的浏览器查看设备状态、设置设备参数,或者将设备采集到的数据通过网络传送到Windows或Unix/Linux服务器上的数据库中。   这就要求工控系统必须具备两方面的功能:   一是要在现场完成复杂的测控任务,因为通常一些任务都具有一定的实时性要求;   二是要求测控系统能够与某一类型的控制网相连,以实现远程监控。在目前应用的大多数测控系统中,嵌入式系统的硬件采用的是8/16位单片机;软件多采用汇编语言编程,由于这些程
[嵌入式]
MSP430F1121与PCF8576驱动程序
#include MSP430x11x1.h #define uint unsigned int #define uchar unsigned char //器件地址 uchar PCF8576=0x70; //内存数据定义 uchar ByteCnt; //I2C 数据字节计数器 uchar SlvAdr; //被控器地址 uchar SubAdr; //被控器单元地址 uchar XmtDat ; //发送数据缓冲区 //uchar MODE1=0x45; uchar MODE2=0xCD; // uchar Bank_sel=0x78; uchar flag; uc
[单片机]
IR芯片在步进电机驱动系统的应用
  电动机应用的日益广泛,使其驱动控制的研究也越来越成为人们研究的热点。随着功率VMOS器件以及绝缘栅双极晶体管(IGBT)器件的广泛运用,更多场合使用VMOS器件或IGBT器件组成桥式电路,例如开关电源半桥变换器或全桥变换器、直流无刷电机的桥式驱动电路、步进电机驱动电路,以及逆变器的逆变电路。IR(Inter—national Rectifier)公司提供了多种桥式驱动集成电路芯片,本文介绍了IR21844功率驱动集成芯片在直流无刷电机的桥式驱动电路中的应用。该芯片是一种双通道、栅极驱动、高压高速功率器件的单片式集成驱动模块,在芯片中采用了高度集成的电平转换技术,大大简化了逻辑电路对功率器件的控制要求,同时提高了驱动电路的可靠性。
[嵌入式]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved