步进电机的使用一定要选择一个比较好的机型,最起码能在网上搜到它的相关资料。这样会给电机的参数的确定提供相关信息。我最近学了一个EM--462步进电机。这家伙可是把我气炸了,一点信息也没有,上网查都查不到。盲目的试探之后,终于能驱动它了。

对EM--462的描述:有四根线,其他信息没了。

相数:可能是四相,也可能是两相;

我开始用的驱动电路是L297搭配L298n使用,但是没搞明白,于是直接用L298N驱动了。我用L298n是这样用的:信号输入端分别从5、 7 、10 、12 脚输入,对应单片机管脚P2^0---P2^3

298的6 、11脚连接单片机的P2^4 、P2^5脚。把他们都置高,就可以工作了。

对于其他脚的连线

4--12v电源、整流桥正极;(整流桥要用两个,现在接与2、3脚一组的那个)

2、3---分别接整流桥 交流 的两个脚(不分顺序)

9--5V电源

1、8、15接地

13、14----分别接另一个整流桥的 交流的两脚 (不分顺序)

整流桥的正负极都要分别接在12V的正负极上。

请务必上网查看L298的用法。(我不会上传,如果需要的话,给我说一声,我发邮件给你,这个我会传上文件的)

2、3、13、14接在步进电机的四个脚上。关于顺序就得自己摸索了。一般来说按顺序从左至右一些依次对应2、3、13、14脚。从右至左也行,就是转的反向不同而已。可以调节的。

来看看程序:

//单八拍运作模式

#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int

sbit a=P^0;
sbit b=P2^1;
sbit c=P2^2;
sbit d=P2^3;
sbit m=P2^4;
sbit n=P2^5;

uint i=0;

//---------延时函数------------
void delay(uchar z)
{
uint i,j;
for (i=0;i<=z;i++)
     for(j=0;j<=100;j++);
}

//----------主函数---------------
void main()
{
    m=n=1;//使能端???好像吧置零就不转了
i=5;//调节速度
while(1)
{
     a=1;b=0;c=0;d=0;
   delay(i);
   a=1;b=0;c=0;d=0;
   delay(i);

a=1;b=1;c=0;d=0;
   delay(i);
   a=0;b=1;c=0;d=0;
   delay(i);

a=0;b=1;c=1;d=0;
   delay(i);
   a=0;b=0;c=1;d=0;
   delay(i);

a=0;b=0;c=1;d=1;
   delay(i);
   a=0;b=0;c=0;d=1;
   delay(i);
   
   a=1;b=0;c=0;d=1;
   delay(i);

}  
}

调延时的时间就可以控制速度了。这里是i的值

再看看单四拍

#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int

sbit a=P2^0;
sbit b=P2^1;
sbit c=P2^2;
sbit d=P2^3;
sbit m=P2^4;
sbit n=P2^5;

uint i=0;

//---------延时函数------------
void delay(uchar z)
{
uint i,j;
for (i=0;i<=z;i++)
     for(j=0;j<=50;j++);
}

//----------主函数---------------
void main()
{
    m=n=1;
i=5;
while(1)
{
     a=1;b=0;c=0;d=0;
   delay(i);
   a=0;b=1;c=0;d=0;
   delay(i);
   a=0;b=0;c=1;d=0;
   delay(i);
   a=0;b=0;c=0;d=1;
   delay(i);
}
}

双四拍

#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int

sbit a=P2^0;
sbit b=P2^1;
sbit c=P2^2;
sbit d=P2^3;
sbit m=P2^4;
sbit n=P2^5;

uint i=0;

//---------延时函数------------
void delay(uchar z)
{
uint i,j;
for (i=0;i<=z;i++)
     for(j=0;j<=100;j++);
}

//----------主函数---------------
void main()
{
    m=n=1;
i=5;
while(1)
{
     a=1;b=0;c=0;d=0;
   delay(i);
   a=1;b=1;c=0;d=0;
   delay(i);
   a=0;b=1;c=1;d=0;
   delay(i);
   a=0;b=0;c=1;d=1;
   delay(i);
   a=1;b=0;c=0;d=1;
   delay(i);
}
}

还可以控制直流电机的速度。

改改连接方式:

4脚接6V,整流桥的正负极也对应接6V的正负极

2、3一组控制一个电机,13、14一组控制一个电机

看程序

#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int

sbit a=P2^0;//电机一
sbit b=P2^1;//电机一
sbit c=P2^2;//电机二
sbit d=P2^3;//电机二
sbit m=P2^4;//电机一使能端
sbit n=P2^5;//电机二使能端

uint i=0;

//---------延时函数------------
void delay(uchar z)
{
uint i,j;
for (i=0;i<=z;i++)
     for(j=0;j<=100;j++);
}

//----------主函数---------------
void main()
{
    m=n=1;
i=500;
while(1)
{
    a=1;b=0;c=0;d=0;//电机一正转
   delay(i);
   a=0;b=1;c=0;d=0;//电机一反转
   delay(i);
   a=0;b=0;c=1;d=0;//电机二正转
   delay(i);
   a=0;b=0;c=0;d=1;//电机二反转
   delay(i);
   }
}

这个i要大点

这个不能控制速度。控制占空比来控制速度。

以电机一为例

#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int

sbit a=P2^0;
sbit b=P2^1;

sbit m=P2^4;

//---------延时函数------------
void delay(uchar z)
{
uint i,j;
for (i=0;i<=z;i++)
     for(j=0;j<=100;j++);
}

//----------主函数---------------
void main()
{
    m=1;
    i=5;
while(1)
{         b=0;        //只控制正转

a=1;        //占空比,我的理解就是转的时间和不转的时间的比值

delay(5);//转一会时间(1)

a=0;       //不转

delay(10);//停一会(2)

}//循环
}

由于单片机执行的时间很短,所以,电机转的结果是你看不出有停顿,但速度变化了。

调节(1)、(2)的值就能调速度了。

以后的事情自己总结经验。

难免错误,请斧正。

有兴趣加我QQ:867652398

L298n控制步进电机相关推荐

  1. 51单片机+L298N控制步进电机【T型】加减速

    本文介绍另一种常见的步进电机[T型]加减速方法 关于L298N模块的使用介绍.以及S型加减速可以上一篇文章,传送门如下: 51单片机+L298N控制步进电机S曲线加减速 1. 与S曲线加减速对比 1. ...

  2. Arduino驱动L298N控制直流电机的正反转和调速

    Arduino驱动L298N控制直流电机的正反转和调速 一.前言 二.产品参数 三.驱动直流电机 三.接线图 四.程序 五.实验结果 总结 一.前言 本模块使用ST公司的L298N作为主驱动芯片,具有 ...

  3. Arduino教程-09.L298N控制直流电机(避障小车)

    目录 3.1 电机 3.2 控制直流电机 PWM – 控制速度 H桥 – 控制转动方向 L298N 电机驱动芯片 技术规格 L298N 电机驱动器模块引脚排列 电源引脚 输出引脚 方向控制引脚 速度控 ...

  4. stm32f302实现斩波控制步进电机_什么是步进电机控制器?

    在工业控制中难免会用到步进电机,步进电机如何控制,步进电机的速度.方向.驱动电流等等改如何设置,这就需要用到步进电机控制器,那么什么是步进电机控制.步进电机控制器与步进电机驱动器有什么区别.步进电机控 ...

  5. 微型计算机步进电机控制,步进电机的微型计算机控制

    步进电机的微型计算机控制 维普资讯 http://doc.xuehai.net 第 5期 20 0 7年 5月 山西焦煤科技 S a x o ig C a ce c& T c n l g h ...

  6. 树莓派harmonyos,【树莓派入门】(三)| 树莓派如何控制步进电机

    树莓派这个东西,一定要亲自动手玩一玩,多实践.所以,我打算录几期视频带大家动手做一做东西.估计要等到下半年,因为目前宿舍地方有限. 上一次我们说到了如何控制超声波传感器,这一次我们来介绍一下如何控制步 ...

  7. python控制电机_树莓派Python控制步进电机

    步进电机控制在Python 玩了LED,开关和蜂鸣器后,我觉得自然的下一步是用步进电机或两个.这可能构成了一个想法的一部分,我不得不创建一个自动停止动画动画"转台",用于旋转和拍摄 ...

  8. 51单片机 驱动步进电机 C语言 lcd,51单片机红外遥控控制步进电机的LCD显示源程序...

    /******************************************************************************* * 实验名              ...

  9. Java写一个app控制电机_java控制步进电机

    树莓派通过脉冲宽度调制可以控制电机的速度.实际上在精度要求不是非常高的情况下,普通引脚也可以通过软件模拟来控制电机,实现pwm一样的功能.pwm功能可以控制直流电机的速度,同时,也可以控制步进电机的步 ...

最新文章

  1. android——ImageLoader添加缓存
  2. 面试命中率 90% 的点 :MySQL 锁
  3. K8s 中使用 cert-manager 申请免费 Https 证书
  4. 人工智能大咖齐聚北京,创新大讲堂9月盛势来袭
  5. kernel.sem信号量参数调优,以及ipcs信号量队列查询
  6. python基础教程期末考试题库_PYTHON语言应用试题题目及答案,课程2020最新期末考试题库,章节测验答案...
  7. cdh用户权限_CDH6.3.2之Sentry权限管理(三)
  8. 【C++】图像加载(libpng、FreeImage、stb_image)
  9. 计算机硬盘的常用分区工具,磁盘分区工具,详细教您硬盘分区工具diskgenius怎么使用...
  10. 广义线性模型之泊松回归
  11. 汇率兑换 python第一课_【Python 07】汇率兑换1.0-2(基本元素)
  12. Access control configuration prevents your request from being allo
  13. vite+ts+vue3 知识点(全局组件,局部组件,递归组件)
  14. 服务器cpu和磁盘规律毛刺问题排查
  15. matlab文字转数据,将文本转换为数值 - MATLAB Simulink - MathWorks 中国
  16. 超市微信小程序怎么做_便利店超市运营微信小程序的三大技巧
  17. 并发初体验,解决小规模并发下单问题
  18. VSCode下载慢的问题解决
  19. C语言调用函数如何返回多个变量值?【基础】
  20. socket用法linux,linux下socket用法

热门文章

  1. mysql主从复制及主机宕机的解决方法
  2. 前辈工作经验分享总结
  3. 看板管理中看板的定义、构成,以及实际看板案例分享
  4. 2016年开发的供水管线设计工具进行升级
  5. JDK API 在线文档
  6. 微软Azure AI Gallery 预测性维护案例
  7. 淘客网站中系统信息获取
  8. unity中的动态绑定、赋值等
  9. 网页的一个页面中显示另一个页面
  10. 通用试验体系支撑平台下的反射内存网通信组件开发