L298n控制步进电机
步进电机的使用一定要选择一个比较好的机型,最起码能在网上搜到它的相关资料。这样会给电机的参数的确定提供相关信息。我最近学了一个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控制步进电机相关推荐
- 51单片机+L298N控制步进电机【T型】加减速
本文介绍另一种常见的步进电机[T型]加减速方法 关于L298N模块的使用介绍.以及S型加减速可以上一篇文章,传送门如下: 51单片机+L298N控制步进电机S曲线加减速 1. 与S曲线加减速对比 1. ...
- Arduino驱动L298N控制直流电机的正反转和调速
Arduino驱动L298N控制直流电机的正反转和调速 一.前言 二.产品参数 三.驱动直流电机 三.接线图 四.程序 五.实验结果 总结 一.前言 本模块使用ST公司的L298N作为主驱动芯片,具有 ...
- Arduino教程-09.L298N控制直流电机(避障小车)
目录 3.1 电机 3.2 控制直流电机 PWM – 控制速度 H桥 – 控制转动方向 L298N 电机驱动芯片 技术规格 L298N 电机驱动器模块引脚排列 电源引脚 输出引脚 方向控制引脚 速度控 ...
- stm32f302实现斩波控制步进电机_什么是步进电机控制器?
在工业控制中难免会用到步进电机,步进电机如何控制,步进电机的速度.方向.驱动电流等等改如何设置,这就需要用到步进电机控制器,那么什么是步进电机控制.步进电机控制器与步进电机驱动器有什么区别.步进电机控 ...
- 微型计算机步进电机控制,步进电机的微型计算机控制
步进电机的微型计算机控制 维普资讯 http://doc.xuehai.net 第 5期 20 0 7年 5月 山西焦煤科技 S a x o ig C a ce c& T c n l g h ...
- 树莓派harmonyos,【树莓派入门】(三)| 树莓派如何控制步进电机
树莓派这个东西,一定要亲自动手玩一玩,多实践.所以,我打算录几期视频带大家动手做一做东西.估计要等到下半年,因为目前宿舍地方有限. 上一次我们说到了如何控制超声波传感器,这一次我们来介绍一下如何控制步 ...
- python控制电机_树莓派Python控制步进电机
步进电机控制在Python 玩了LED,开关和蜂鸣器后,我觉得自然的下一步是用步进电机或两个.这可能构成了一个想法的一部分,我不得不创建一个自动停止动画动画"转台",用于旋转和拍摄 ...
- 51单片机 驱动步进电机 C语言 lcd,51单片机红外遥控控制步进电机的LCD显示源程序...
/******************************************************************************* * 实验名 ...
- Java写一个app控制电机_java控制步进电机
树莓派通过脉冲宽度调制可以控制电机的速度.实际上在精度要求不是非常高的情况下,普通引脚也可以通过软件模拟来控制电机,实现pwm一样的功能.pwm功能可以控制直流电机的速度,同时,也可以控制步进电机的步 ...
最新文章
- android——ImageLoader添加缓存
- 面试命中率 90% 的点 :MySQL 锁
- K8s 中使用 cert-manager 申请免费 Https 证书
- 人工智能大咖齐聚北京,创新大讲堂9月盛势来袭
- kernel.sem信号量参数调优,以及ipcs信号量队列查询
- python基础教程期末考试题库_PYTHON语言应用试题题目及答案,课程2020最新期末考试题库,章节测验答案...
- cdh用户权限_CDH6.3.2之Sentry权限管理(三)
- 【C++】图像加载(libpng、FreeImage、stb_image)
- 计算机硬盘的常用分区工具,磁盘分区工具,详细教您硬盘分区工具diskgenius怎么使用...
- 广义线性模型之泊松回归
- 汇率兑换 python第一课_【Python 07】汇率兑换1.0-2(基本元素)
- Access control configuration prevents your request from being allo
- vite+ts+vue3 知识点(全局组件,局部组件,递归组件)
- 服务器cpu和磁盘规律毛刺问题排查
- matlab文字转数据,将文本转换为数值
- MATLAB Simulink
- MathWorks 中国
- 超市微信小程序怎么做_便利店超市运营微信小程序的三大技巧
- 并发初体验,解决小规模并发下单问题
- VSCode下载慢的问题解决
- C语言调用函数如何返回多个变量值?【基础】
- socket用法linux,linux下socket用法