单片机实验 步进电机实验

合集下载

基于stm32单片机的步进电机实验报告

基于stm32单片机的步进电机实验报告

基于stm32单片机的步进电机实验报告步进电机是一种将电脑控制信号转换为机械运动的设备,常用于打印机、数码相机和汽车电子等领域。

本实验使用STM32单片机控制步进电机,主要目的是通过编程实现步进电机的旋转控制。

首先,我们需要了解步进电机的基本原理。

步进电机是一种能够按照一定步长精确旋转的电机。

它由定子和转子两部分组成,通过改变定子和转子的电流,使转子按照一定的角度进行旋转。

在本实验中,我们选择了一种四相八拍步进电机。

该电机有四个相位,即A、B、C、D相。

每个相位都有两个状态:正常(HIGH)和反向(LOW)。

通过改变相位的状态,可以控制步进电机的旋转。

我们使用STM32单片机作为控制器,通过编程实现对步进电机的控制。

首先,我们需要配置STM32的GPIO口为输出模式。

然后,编写程序通过改变GPIO口的状态来控制步进电机的旋转。

具体来说,我们将A、B、C、D相分别连接到STM32的四个GPIO口,设置为输出模式。

然后,通过改变GPIO口输出的电平状态,可以控制相位的状态。

为了方便控制,我们可以定义一个数组,将表示不同状态的四个元素存储起来。

通过循环控制数组中的元素,可以实现步进电机的旋转。

在实验中,我们通过实时改变数组中元素的值,可以实现不同的旋转效果。

例如,我们可以将数组逐个循环左移或右移,实现步进电机的正转或反转。

在实验过程中,我们可以观察步进电机的旋转情况,并根据需要对程序进行修改和优化。

可以通过改变步进电机的旋转速度或步进角度,来实现更加精确的控制。

总结起来,通过本次实验,我们了解了步进电机的基本原理,并通过STM32单片机控制步进电机的旋转。

通过编写程序改变GPIO口的状态,我们可以实现步进电机的正转、反转和精确控制。

这对于理解和应用步进电机技术具有重要意义。

单片机实验报告步进电机控制系统

单片机实验报告步进电机控制系统

信息科学与技术学院单片机及嵌入式课程设计设计题目:步进电机控制系统指导老师:林凡强姓名:学号:班级:二零一二年6月1. 实验要求:(1)正反转(2)调速(3)键盘输入(4)数码管显示2.设计要求:(1)、按下不同的键,分别使步进电机实现顺时针和逆时针旋转。

(2)、电机运转状态可以是正反转,加速减速,几种不同速度的组合。

3、设计目的:(1)学习基本电机系统程序编写等(2)掌握电机的控制方法等4、设计实验设备硬件:PC机一台自制单片机实验仪一套其他小工具等软件:Windows98/XP/2000系统,keil7.0集成开发环境5、程序:#include"reg51.h"#define uint unsigned int//#define delay_ms 5 //延时sbit W=P3^6;sbit R=P3^7;sbit SEND=P3^0;sbit CLOCK=P3^1;int delay_ms=30;sbit bu1=P1^4;sbit bu2=P1^5;sbit bu3=P1^6;sbit bu4=P1^7;uint flag=0;unsigned int table[]={0x03,0x9F,0x25,0x0D,0x99,0x49,0x41,0x1F,0x01,0x09,0xff}; uint h=0;void delay(uint n) //延时程序{uint i,j;for(i=0;i<100;i++)for(j=0;j<n;j++);}void zhengzhuan() //正转{bu1=~bu1;delay(delay_ms);bu1=~bu1;bu2=~bu2;delay(delay_ms);bu2=~bu2;bu3=~bu3;delay(delay_ms);bu3=~bu3;bu4=~bu4;delay(delay_ms);bu1=~bu1;}void fanzhuan() //反转{bu4=~bu4;delay(delay_ms);bu4=~bu4;bu3=~bu3;delay(delay_ms);bu3=~bu3;bu2=~bu2;delay(delay_ms);bu2=~bu2;bu1=~bu1;delay(delay_ms);bu1=~bu1;}void senddata(unsigned int dat) //发送数据程序{unsigned int i=0;for(;i<8;i++){CLOCK=0;SEND=dat>>i&1;;CLOCK=~CLOCK;}}uint saomiao() //键盘扫描程序{uint i,j,k1,k2=0x01,n;uint A[]={0xfe,0xfd,0xfb,0xf7};for(i=0;i<4;i++){k2=0x01;W=0;P2=0x60;P0=A[i];delay(1);W=1;P2=0xA0;W=0;// k1=P0&0x0f;// if(k1!=0x0f)// {for(j=0;j<4;j++){n=P0&0x0F;if(!(n&k2)){return(4*i+j);}k2<<=1;}// }}delay(100);return(10) ;}void main(){uint m,r;// W=0;// P2=0x60;// P0=0x00;// ;// W=1; //锁存P0口输出数据// P2=0xA0;// W=0;while(1){W=0;P2=0x60;P0=0xf0;W=1; //锁存P0口输出数据P2=0xA0;W=0;m=P0&0x0F;if(m!=0x0f){delay(50);m=P0&0x0f;if(m!=0x0f){// flag=!flag;// switch(flag)// {// case 0: zhengzhuan();// break;// case 1: fanzhuan();// break;// default : ;// }h=saomiao();senddata(table[h]);}}r=h;if(r==1){zhengzhuan();}if(r==2){fanzhuan();}if(r==5){delay_ms+=5;if(delay_ms>100)delay_ms=200;}if(r==4){delay_ms-=5;if(delay_ms<=5){delay_ms= 5;}}}}6、实验心得:20世纪末,电子技术获得了飞速的发展,在其推动下,现代电子产品几乎渗透了社会的各个领域,有力地推动了社会生产力的发展和社会信息化程度的提高,同时也使现代电子产品性能进一步提高,产品更新换代的节奏也越来越快步进电机是一种将电脉冲信号转换成相应的角位移(或线位移)的电磁机械装置[1]。

单片机步进电机控制实验报告

单片机步进电机控制实验报告

单片机步进电机控制实验报告单片机步进电机控制实验报告引言:步进电机是一种常用的电动机,具有结构简单、体积小、转速稳定等优点,广泛应用于工业自动化、机械设备等领域。

本实验旨在通过单片机控制步进电机,实现电机的正转、反转、加速、减速等功能。

通过实验,深入了解步进电机的工作原理和控制方法,提高对单片机的编程能力。

一、实验目的本实验的主要目的是掌握步进电机的工作原理,了解单片机控制步进电机的方法和步骤,并通过实验验证控制效果。

二、实验器材1. 步进电机:XX型号,XXV,XXA2. 单片机开发板:XX型号3. 驱动电路:包括电源、驱动芯片等三、实验原理步进电机是一种特殊的电动机,其转子通过电磁螺线管的工作原理实现转动。

步进电机的转子分为若干个极对,每个极对上都有一个螺线管,通过对这些螺线管施加电流,可以使转子转动。

单片机通过控制螺线管的电流,实现步进电机的控制。

四、实验步骤1. 连接电路:根据实验器材提供的电路图,将步进电机与单片机开发板相连接。

2. 编写程序:使用C语言编写单片机控制步进电机的程序。

程序中需要包括电机正转、反转、加速、减速等功能的实现。

3. 上传程序:将编写好的程序通过编程器上传到单片机开发板上。

4. 实验验证:通过按下开发板上的按键,观察步进电机的运动情况,验证程序的正确性。

五、实验结果与分析经过实验验证,编写的程序能够准确控制步进电机的运动。

按下不同的按键,电机可以实现正转、反转、加速、减速等功能。

通过调整程序中的参数,可以实现不同速度的控制效果。

实验结果表明,单片机控制步进电机具有较高的精确性和可靠性。

六、实验总结通过本次实验,我深入了解了步进电机的工作原理和控制方法,掌握了单片机控制步进电机的编程技巧。

实验中遇到了一些问题,如电路连接不正确、程序逻辑错误等,但通过仔细分析和排除,最终解决了这些问题。

通过实验,我不仅提高了对步进电机的理论认识,还锻炼了自己的动手实践能力和问题解决能力。

步进电控制实验报告

步进电控制实验报告

一、实验目的1. 理解步进电机的工作原理及其应用领域。

2. 掌握单片机控制步进电机的技术方法。

3. 熟悉步进电机的驱动电路设计。

4. 通过实验验证步进电机控制系统的性能。

二、实验原理步进电机是一种将电脉冲信号转换为角位移的电机,具有精度高、响应快、控制简单等优点。

其工作原理是:当输入一定频率的脉冲信号时,步进电机按照一定的步距角转动。

步进电机的步距角与线圈匝数、绕组方式有关。

本实验采用单片机控制步进电机,通过编写程序实现步进电机的正转、反转、停止、转速调节等功能。

三、实验设备1. 单片机实验平台:包括51单片机、电源、按键、数码管等。

2. 步进电机驱动模块:用于驱动步进电机,包括驱动电路和步进电机本体。

3. 实验指导书。

四、实验步骤1. 搭建实验电路(1)连接单片机实验平台,包括电源、按键、数码管等。

(2)连接步进电机驱动模块,包括电源、控制线、步进电机本体等。

(3)检查电路连接是否正确,确保无误。

2. 编写控制程序(1)初始化单片机相关端口,包括P1口、定时器等。

(2)编写步进电机控制函数,包括正转、反转、停止、转速调节等功能。

(3)编写主函数,根据按键输入实现步进电机的控制。

3. 下载程序(1)将编写好的程序下载到单片机实验平台。

(2)检查程序是否下载成功。

4. 测试实验(1)观察数码管显示的转速挡次和转动方向。

(2)通过按键控制步进电机的正转、反转、停止和转速调节。

(3)观察步进电机的转动情况,验证控制程序的正确性。

五、实验结果与分析1. 实验结果(1)通过按键控制步进电机的正转、反转、停止和转速调节。

(2)数码管显示转速挡次和转动方向。

(3)步进电机按照设定的方向和转速转动。

2. 实验分析(1)通过实验验证了单片机控制步进电机的可行性。

(2)实验结果表明,控制程序能够实现步进电机的正转、反转、停止和转速调节等功能。

(3)实验过程中,需要对步进电机驱动模块进行合理设计,以确保步进电机的稳定运行。

单片机步进电机控制实训报告

单片机步进电机控制实训报告

单片机步进电机控制实训报告一、引言随着工业自动化技术的不断发展,步进电机作为一种能够将电脉冲转化为机械转动的装置,在各种自动化控制系统中得到了广泛的应用。

而单片机作为现代电子计算机技术的重要分支,具有体积小、价格低、抗干扰能力强等特点,被广泛应用于各类电机的控制中。

本次实训旨在通过单片机实现对步进电机的控制,加深对步进电机和单片机理论知识的理解,提高实际操作技能。

二、实验目标本次实训的目标是通过单片机控制步进电机,实现电机的正转、反转、停转等操作。

同时,通过对电机的控制,进一步了解步进电机的特性和工作原理。

三、实验原理步进电机是一种将电脉冲转化为机械转动的装置。

当给步进电机施加一个电脉冲信号时,电机就会转动一个固定的角度,这个角度通常称为“步进角”。

通过控制电脉冲的数量和频率,可以实现对电机的速度和位置的控制。

而单片机的GPIO口可以输出高低电平信号,通过控制输出信号的频率和占空比,可以实现对步进电机的控制。

四、实验步骤1、准备器材:单片机开发板、步进电机、杜邦线、面包板、焊锡等。

2、连接电路:将步进电机连接到单片机开发板上,使用杜邦线连接电源和信号接口。

3、编写程序:使用C语言编写程序,通过单片机控制GPIO口输出电脉冲信号,控制步进电机的转动。

4、调试程序:在调试过程中,需要不断调整程序中的参数,观察电机的反应,直到达到预期效果。

5、测试结果:完成程序调试后,进行实际测试,观察步进电机是否能够实现正转、反转、停转等操作。

五、实验结果及分析通过本次实训,我们成功地实现了通过单片机控制步进电机的正转、反转、停转等操作。

在实验过程中,我们发现步进电机的转速和方向可以通过改变单片机输出信号的频率和占空比来控制。

我们还发现步进电机具有较高的精度和稳定性,适用于需要精确控制的位置和速度控制系统。

六、结论与展望通过本次实训,我们深入了解了步进电机的工作原理和单片机的应用。

实践证明,单片机控制步进电机是一种高效、精确、可靠的方法。

单片机实验 步进电机

单片机实验 步进电机

实验八步进电机控制实验(MSC51)一、实验要求•用8255扩展端口控制步进电机,编写程序输出脉冲序列到8255的PA口,控制电机正转、反转,加速,减速。

二、实验目的•1.了解步进电机控制的基本原理。

•2.掌握控制步进电机转动的编程方法。

•3.了解单片机控制外部设备的常用电路。

三、实验装置:伟福Lab2000单片机实验装置四、实验电路连线框图五、实验说明•步进电机驱动原理是通过对每相线圈中电流的顺序切换来使电机作步进式旋转。

切换是通过单片机输出脉冲信号来实现的。

所以调节脉冲信号的频率便可以改变步进电机的转速,改变各相脉冲的先后顺序,可以改变电机的旋转方向。

步进电机的转速应由慢到快逐步加速。

•电机驱动方式可以采用双四拍(AB→BC→CD→DA→AB)方式,也可以采用单四拍(A→B→C→D→A)方式,或单、双八拍(A→AB→B→BC→C→CD→D→DA→A)方式。

各种工作方式的时序图如下:(高电平有效)•上图中示意的脉冲信号是高有效,但实际控制时公共端是接在VCC上的,所以实际控制脉冲是低有效。

8255的PA口输出的脉冲信号经(MC1413或ULN2003A)倒相驱动后,向步进电机输出脉冲信号序列。

8051单片机也可以通过P1口输出脉冲信号控制步进电机的运转。

也可以通过实验仪上的波形发生器来产生脉冲序列来控制步进电机的运转。

六、实验程序框图七、参考程序ORG 0000HJMP MAINORG 0030HMAIN: ;正转MOV P1,#0SETB P1.0MOV R1,#3MOV A,P1X1: RL AMOV P1,AJB P3.0,LOOP ;反转JB P3.1,LOOP1 ;加速JB P3.2,LOOP2 ;减速CALL DELX5: DJNZ R1,X1JMP MAINLOOP: ;反转MOV P1,#0SETB P1.3MOV R2,#3MOV A,P1X3: RR AMOV P1,AJNB P3.0,X1 ;正转CALL DELDJNZ R2,X3JMP LOOPLOOP1: ;加速CALL DEL1JMP X5LOOP2: ;减速CALL DEL2JMP X5DEL:MOV R7,#50D:MOV R6,#50DJNZ R6,$DJNZ R7,DRETDEL1:MOV R5,#25D1: MOV R4,#50DJNZ R4,$DJNZ R5,D1RETDEL2:MOV R3,#100D2: MOV R2,#50DJNZ R2,$DJNZ R3,D2RET。

单片机仿真实验报告:步进电机

单片机仿真实验报告:步进电机

学号:姓名:单片机仿真实验报告八:步进电机一、仿真设计要求利用AT89C52单片机,实现步进电机的转向和运行控制:使用一个正向运行按键,每次按下这个键电机正向运转。

一个反向运行按键每次按下这个键电机反向运转。

一个加速运行按键,每次按下这个键电机加速运转。

就这样形成了步进电机的工作原理!二、步进电机电路原理图三、程序设计内容及源程序#include <reg52.h>#define TURN 20#define REVERSE 30#define STOP 40#define uchar unsigned charstatic uchar speedcount=0;sbit p30=P3^0;sbit p31=P3^1;sbit p32=P3^2;uchar Table1[4]={0x0c,0x06,0x03,0x09};uchar Table2[4]={0x0c,0x09,0x03,0x06}; void delay(n){while(n--){int i,j;for(i=0;i<255;i++){for(j=0;j<255;j++);}}}void main(){char temp;int i;P2=0xff;if(p30==0){for(i=0;i<4;i++){temp=Table1[i];P2=temp;delay(1500);}p30=1;}if(p31==0){for(i=0;i<4;i++){temp=Table2[i];P2=temp;delay(1500);}p31=1;}if(p32==0){int i,j=80;while(j>0){if(p30==0){for (i=0;i<4;i++){temp=Table1[i];P2=temp;delay(j);}}if(p31==0){for(i=0;i<4;i++){temp=Table2[i];P2=temp;delay(j);}}}j=j-10;}}四、实验总结利用单片机控制一些外围设备的运转,最重要的掌握程序的编写。

单片机控制步进电机调速实验

单片机控制步进电机调速实验

51系列单片机控制步进电机调速实验实验目的及要求:1、熟悉步进电机的工作原理2、熟悉51系列单片机的工作原理及调试方法3、设计基于51系列单片机控制的步进电机调速原理图(要求实现电机的速度反馈测量,测量方式:数字测量)4、实现51系列单片机对步进电机的速度控制(步进电机由实验中心提供,具体型号42BYG )由按钮控制步进电机的启动与停止;实现加速、匀速、和减速控制。

速度设定由键盘设定,步进电机的反馈速度由LED数码管显示。

实验原理:步进电机控制原理一般电动机都是连续旋转,而步进电动却是一步一步转动的,故叫步进电动机。

步进电机是数字控制电机,它将脉冲信号转变成角位移,即给一个脉冲信号,步进电机就转动一个角度,因此非常适合于单片机控制。

步进电机可分为反应式步进电机(简称VR)、永磁式步进电机(简称PM)和混合式步进电机(简称HB)。

因此步进电动机是一种把脉冲变为角度位移(或直线位移)的执行元件。

步进电动机的转子为多极分布,定子上嵌有多相星形连接的控制绕组,由专门电源输入电脉冲信号,每输入一个脉冲信号,步进电动机的转子就前进一步。

由于输入的是脉冲信号,输出的角位移是断续的,所以又称为脉冲电动机。

随着数字控制系统的发展,步进电动机的应用将逐渐扩大。

步进电机区别于其他控制电机的最大特点是,它是通过输入脉冲信号来进行控制的,即电机的总转动角度由输入脉冲数决定,而电机的转速由脉冲信号频率决定。

步进电机的驱动电路根据控制信号工作,控制信号可以由单片机产生。

电机转子均匀分布着很多小齿,定子齿有三个励磁绕阻,其几何轴线依次分别与转子齿轴线错开。

0、1/3て、2/3て,(相邻两转子齿轴线间的距离为齿距以て表示),即A与齿1相对齐,B与齿2向右错开1/3て,C与齿3向右错开2/3て,A'与齿5相对齐,(A'就是A,齿5就是齿1)下面是定转子的展开图:(图2所示)图1 是反应式步进电动机结构示意图,它的定子具有均匀分布的六个磁极,磁极上绕有绕组。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验十 步进电机实验
本实验的步进电机使用四相式步进电机,工作模式为两相四拍。
实验十 步进电机实验
脉冲分配信号: 整步模式脉冲分配
实验十 步进电机实验

四、参考程序 //ioport unsigned port100e; /* functions */ void delay(int count); // TODO // 整步模式正转脉冲或反转脉冲 void Main(void) { int row = 0;
void delay( int count ) { int cnt; for( count = count; count>0; count--) for( cnt = 0; cnt < 100; cnt++); }
for( ; ; ) {
// TODO } } /**************************************** // Function name : delay // Description : 延时子程序 // Return type : void // Argument : count,延时的数值 ******************************************/
实验十 步进电机实验
单三拍方式
实验十 步进电机实验





电机的定子上有六个均布的磁极,其 夹角是60º 。各磁极上套有线圈,按图 连成A、B、C三相绕组。设转子上均 布40个小齿。所以每个齿的齿距为 θE=360º /40=9º 。 当三相绕组按A→B→C→A顺序循环 通电时,转子会按顺时针方向,以每 个通电脉冲转动3º 的规律步进式转动 起来。若改变通电顺序,按 A→C→B→A顺序循环通电,则转子 就按逆时针方向以每个通电脉冲转动 3º 的规律转动。 因为每一瞬间只有一相绕组通电,并 且按三种通电状态循环通电,故称为 单三拍运行方式。 三相步进电动机还有两种通电方式, 它们分别是双三拍运行,即按 AB→BC→CA→AB顺序循环通电的方 式,以及单、双六拍运行,即按 A→AB→B→BC→C→CA→A顺序循 环通电的方式。六拍运行时的步矩角 将减小一半。反应式步进电动机的步 距角可按下式计算: θb=360º /NEr (1) 式中 Er——转子齿数; N——运行拍数,N=km,m为步 进电动机的绕组相数,k=1或2。
实验十 步进电机实验
机电工程学院自控系 侯叶
实验十 步进电机实验
一、实验目的 了解步进电机的原理以及控制方法。
二、实验仪器 JXARM9-2440教学实验箱、ADT1000仿真器和 ADT IDE集成开发环境、PC机。
实验十 步进电机实验
三、实验原理 步进电机是将电脉冲信号转变为角位移或线位移的 开环控制元件。在非超载的情况下,电机的转速、 停止的位置只取决于脉冲信号的频率和脉冲数,而 不受负载变化的影响,即给电机加一个脉冲信号, 电机则转过一个步距角。这一线性关系的存在,加 上步进电机只有周期性的误差而无累积误差等特点。 使得在速度、位置等控制领域用步进电机来控制变 得非常的简单。
实验十 步进电机实验
四、实验内容及步骤 1、编写程序实现步进电机正转; 2、编写程序实现步进电机反转; 步骤: 1)参照模板工程stepper (modules\stepper\ s相应的文件,并修改stepper的工程设置; 2)创建stepper.c文件,将该文件加入到工程中; 3)编写程序; 4)编译、下载、运行、调试程序、输出结果;
相关文档
最新文档