51单片机步进电机试验五(正转一圈 反转一圈)转角由30度改为180度,请帮忙改下?

作者&投稿:以牲 (若有异议请与网页底部的电邮联系)
如何控制步进电机旋转规定角度 51单片机~

这个你要看你具体使用的单片机资料.
不过通用性一点的讲,所有的步进电机控制角度,都是取决于驱动步进电机的PWM的占空比,
不同的占空比,转角不同
而步进电机的角速度,则是由PWM的频率控制.

但是具体的数据,与具体的步进电机有关.

我们有一款产品,倒是达到了这一点

MSA-001操作手册
感谢您购买步进马达自动控制器MSA-001,其优异的性能愿能为您的工作与生活带来便利。在应用过程中有任何问题请与销售商联系,我们会及时与您处理,并诚心各位客户的建议与改善.

特点:
多重功能
存储功能
方便的组装与使用方式
实时的工作指示
漂亮,美观

规格
工作电压: DC7.5-35V
机体消耗电流: <35mA
驱动电流: <3A
步进马达接口: 两相四线,五线四相,五线两相
显示: 4位0.56英寸红色高亮
工作指示: 运行,正返转,角度输出
设置指示: 转数,步径,细分数,输出角度
工作模式: 手动/自动
输入量: 运行/停止信号正转信号反转信号转动设定的角度

功能
马达自动控制1: 利用部信号运行,正,反转信号自动控制马达的工作.
马达自动控制2: 设定所需的转动角度,利用外部触发让马达自转设定的角度
手动控制1: 利用面板的功能键控制马达的运行与正反转
手动控制2: 寸动



计算公式:
转速(转/分钟) = 60 X步径X时钟/细分数
输出角度(度) =步径X时钟/细分数

/***********************************************************************************
* 标题: 步进电机试验五(正转一圈 反转一圈) *
* *
* 通过本例程了解步进马达使用及驱动程序编写 *
*; 单双八拍工作方式: *
*; A-AB-B-BC-C-CD-D-DA (即一个脉冲,转 3.75 度) *
* *
* 请学员一定要消化掉本例程 *
*
**************************************************************************************/
#include "reg52.h"
void delay(unsigned int t);
//Motor
sbit F1 = P1^0;
sbit F2 = P1^1;
sbit F3 = P1^2;
sbit F4 = P1^3;
unsigned char code FFW[8]={0xf1,0xf3,0xf2,0xf6,0xf4,0xfc,0xf8,0xf9}; //反转
unsigned char code FFZ[8]={0xf9,0xf8,0xfc,0xf4,0xf6,0xf2,0xf3,0xf1}; //正转
unsigned int K;
/**********************************************************************
* *
* 步进电机驱动 *
* *
***********************************************************************/
void motor_ffw()
{
unsigned char i;
unsigned int j;
for (j=0; j<12; j++) //转1*n圈
{
for (i=0; i<48; i++) //一个周期转30度// 8*3.75=30度 转180就将8修改为48
{
if(K==1) P1 = FFW[i]&0x1f; //取数据
if(K==2) P1 = FFZ[i]&0x1f;
delay(5); //调节转速
}
}
}
/******************************************************
*
* 延时程序
*
********************************************************/
void delay(unsigned int t)
{
unsigned int k;
while(t--)
{
for(k=0; k<=80; k++)
{ }
}
}
main()
{
while(1)
{
K=1;
motor_ffw();
K=2;
motor_ffw();
}
}


用单片机对步进电机进行控制
很多工业控制设备对位移和角度的控制精度要求较高, 一般电机很难实现, 而步进电机可精确实现所设定的角度和转数。本设计主要是运用51 单片机控制六线4 相步进电机系统, 由单片机产生驱动脉冲信号, 控制步进电机以一定的转速向某一方向产生一定的转动角度。同时能够利用单片机实现电机的正、反转及速度控制,并能在数码管...

单片机为什么不能直接连步进电机
直接连不会烧坏单片机,因为IO的电流一般是10mA级的,根本带动不了电机转子转动,电流太小。需要用大电流的三极管驱动,或用专门的功率驱动芯片, 如298什么的

单片机控制步进电机求汇编程序
JB P3.1,KEY CJNE R4,#255,LOOPF MOV R4,#8 LOOPF: DEC R4 MOV A,R4 MOVC A,@A+DPTR ;读脉冲 MOV P0,A ;给步进电机输入脉冲 SETB P1.0 CPL P1.1 JNB P3.2,JIASUF ;加速按键检测 JNB P3.3,JIANSUF ;减速按键检测 ACALL DELAY AJMP ...

单片机控制步进电机要求:有加速、减速、停止、正转、反转按钮,电机是四...
我用的是控制一个步进电机的,这个是我以前写的,你的要求在下面的程序做修改就行了;程序如下:include <reg52.h> define uchar unsigned char define uint unsigned int \/\/uchar table[]={0x18,0x30,0x60,0x48,0x48,0x60,0x30,0x18}; \/\/二相励磁 uchar table[]={0x08,0x10,0x20,0x...

51单片机,步进电机怎么实现循环正反转
LOOP1:JB P0.1,YUNXING1;检测是否要反转,如果未按反转键就正常运行 SONG1:JNB P0.1,FAN;按下反转松开后进入反转 SJMP SONG1;YUNXING1:MOV A,R4;查表 MOVC A,@A+DPTR;MOV P2,A;ACALL DELAY;进入延时程序控制电机速度 JB P0.3,COOL1;检测是否按下减速按键,如果未...

想求一个单片机程序,使步进电机轴转90度后,再返回原点,请网友帮忙...
\/*广州一丁自动化设备有限公司020-28969088 *\/ \/*正转90度停1秒再返回原点(两相步进电机,两细分驱动器*\/ \/***\/ include <reg52.h> sbit pwm=P1^0;sbit zf=P1^1;unsigned int k,num;void delay_1(unsigned int j0 ) \/\/1毫秒延时程序(22.1184M){ unsigned int j1;unsigned int j2;fo...

一个单片机最多可以接多少个步进电机
理论上模拟pwm的话,每个口可以控制一个 步进电机

单片机 驱动步进电机,启动就不会停
void delay(uint t)\/\/时间函数 { uint k,j;for(j=t;j>0;j--)for(k=0; k<80; k++);} void main(){ uint i=0;while(1){ if(k1==0){ for(i=0;i<8;i++){ P1=FFW[i]; \/\/用数组驱动电机,电机用P1口驱动 delay(100); \/\/延时时间与转速相关 } } } } ...

关于单片机控制步进电机
编译了一下,这个程序可以运行。楼主发现什么错误了?--- 按照楼主提示,进行了简单的修改。调整了两小段程序的位置,这样就可以删除两个"JMP"指令;原程序中,有两个"RET",是没有用的,也可以删除;这四行可删的指令,我在前面加上了“;”作了标记。另外,原程序中,少了个井号#。程序如下:...

步进电机pul+和pul-是什么意思?
以一个简单的例子来说明:假设我们使用的是Arduino单片机来控制一个步进电机。首先,我们需要将Arduino的两个数字输出引脚分别连接到步进电机驱动器的PUL+和DIR+上。然后,将驱动器的PUL-和DIR-连接到Arduino的GND引脚上。在Arduino的编程环境中,我们可以通过控制这两个输出引脚的高低电平来发送脉冲和方向...

威信县19788967525: 单片机如何控制步进电机转动圈数,例如转一圈或者五圈就停止, -
宫修甲紫: 步进电机按照每步的角度进行控制即可,非步进电机高速运行情况下控制较难,可降低运行频率,降低转速,结合脉冲转速传感器或编码器,计算圈速并采用变频器v/f快速制动.

威信县19788967525: 51单片机控制步进电机程序.在线等高分,请会写的高手大侠写出来. -
宫修甲紫: 我上周刚做的这个实验 成功拉,给你参考一下吧 这可是我当时辛辛苦苦编出来的啊,不过我用的是L298驱动的 和ULN2003一样,你把它换成2003就行拉#include <AT89X51.H> unsigned char code table[]=; unsigned char temp,temp_old; ...

威信县19788967525: 51单片机,步进电机怎么实现循环正反转 -
宫修甲紫: 以下程序是我在实验中自己编写的,几乎全部都有详细注释,相信学过单片机的同学完全可以轻易读懂. 读者可进行一些修改,比如我使用的都是跳转指令,在进入加减速循环中读者完全可以改成调用指令.电机速度也可修改为无上下限. 并...

威信县19788967525: AT89C51单片机编程控制步进电机转一圈后再反转 -
宫修甲紫: 步进电机和交流电机有点像的,他要不断的给不同的磁极供电才能使器转动.所以在一个磁极上不断的给高电平就想交流电机通直流电一样,转动不起来

威信县19788967525: 用51单片机怎么控制步进电机(需要程序并解释) -
宫修甲紫: /************************************************************************************** * 步进电机实验 * 实现现象:下载程序后,按照光盘内操作视频接线,步进电机旋转 注意事项:无 ************************************************************************************...

威信县19788967525: 51单片机,如何给一个指令控制步进电机转动90度,再给另外一个指令,反转90度回位 -
宫修甲紫: 1、首先看看步进驱动器的细分设定,找出转动一圈需要的脉冲个数,再计算出转动90°需要的脉冲个数N;2、根据接线,使单片机的IO端口输出高电平或低电平,控制转动方向;3、根据需求的转动速度,设定定时器的定时常数,启动定时;4、在定时器的中断程序中,取反IO端口,如CPL P1.1,并计数.使单片机输出N个脉冲即可.5、如需要反向,参考第二步.

威信县19788967525: 怎么样控制电机只转一周? -
宫修甲紫: 首先,要精确的转1圈,即360度,从用51单片机来看,用步进电机较合适,虽然步进电机较贵,但其他电机要想精确控制到360度,成本会更高. 常见的步进电机有3相和4相的,选用3相的步进电机. 用51单片机的三个脚来控制三相的步进电...

威信县19788967525: 用三菱PLC控制步进电机正转一圈再反转一圈程序怎么做? -
宫修甲紫: 这个很简单的. 你可以根据步进电机的步距角计算一下,步进电机旋转一圈所需要的脉冲数. 例如:Y0是脉冲输出端,Y1是旋转方向控制端面,步进电机旋转一圈是50000个脉冲,你直接使用DRVA指令就可以了.

威信县19788967525: 单片机怎样实现步进电机的正反转c程序 -
宫修甲紫: 不用按键的话,用个简单的延时程序,时间到了然后取反就可以了.这个主要是对51端口的控制,很简单的,自己试着写一下.写出来的东西才是自己的!

威信县19788967525: 怎么用单片机让步进电机用2s的时间转一圈
宫修甲紫: 比如 步距角为1.8 度的步进电机,转一圈需要需要200个脉冲,这样每个脉冲间隔 仅 0.01s,步进电机反应不过来.

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