哈工大控制原理实验报告

 

姓    名:                     学    号:                       

课程名称:                                                      

实验序号:                     实验日期:                        

实验室名称:                                                    

同组人:                                                         

实验成绩:                     总 成 绩:                       

                                                                                      

教师评语:

                                                                                          教师签字:

                                                                                            年   月   日


  



    

K=3

  
K=30


 

第二篇:哈工大 选修课—C语言在测试与控制中的应用——步进电机实验报告

C语言测控系统程序设计

步进电机控制实验报告

学生姓名: 郭凯        学号:1090810613

实验的目的:

1.掌握计算机并行接口的工作原理与使用方法。

2.了解步近电机的工作原理与步进电机驱动器的使用。

3.学习控制步进电机位置、速度的实时软件设计。

实验用设备:

1.具有ISA总线插槽和USB接口的PC系列微型计算机。

2.23HS2001型步进电机。

3.SH-2H042Ma步进电机驱动器。

4.24V直流稳压电源。 

试验设备连接:

采用打印机口的数字口(I/O端口地址0x378)控制步进电机驱动器。采用共阴极接法,正脉冲有效。打印机数字口的    D0 控制方向,接 步进电机驱动器DIR+端,          D1 控制步进,接步进电机驱动器CP+ 端,步进电机驱动器DIR- 和 CP- 接地。步进电机驱动器细分开关置成 2细分状态,步距角 0.9º

实验要求:

1.步进电机旋转2周,然后向相反方向转2周。注意观察是否后到原来的起始位置。

2.提高步进电机转速,旋转360°的整数倍。注意观察是否出现失步现象,估计步进电机的带载启动频率。

3.编写“升速-恒速-减速”控制程序。(选作)

设计和计算:

    正旋转2周,在后旋转两周。

步距角:0.9 º

所以:360*4/0.9 º

程序框图:

程序清单和注释:

#include<dos.h>

#include<stdio.h>

void left(int m);

void right(int m);

void main()

{

    long n;

    int m,b;

    printf("Input speed(450): \t");

    scanf("%d",&m);

    printf("Input cycle(num): \t");

    scanf("%d",&b);

    for(n=0;n<(int)(360*b/0.9);n++)

    {

        left(m);

    }

    for(n=0;n<(int)(360*b/0.9);n++)

    {

        right(m);

    }

    printf("A higher speed: \t");

    scanf("%d",&m);

    for(b=0;b<100;b++)

    {

        for(n=0;n<40;n++)

        {

            left(m);

        }

        m-=2;

    }

    for(b=0;b<100;b++)

    {

        for(n=0;n<40;n++)

        {

            left(m);

        }

        m+=2;

}

printf("end \n");

}

void left(int m)

{

    outportb(0x378,0x00);

    delay(m);

    outportb(0x378,0x02);

    delay(m);

}

void right(int m)

{

    outportb(0x378,0x01);

    delay(m);

    outportb(0x378,0x03);

    delay(m);

}

调试中出现的错误及分析:

相关推荐