• 领导讲话
  • 自我介绍
  • 党会党课
  • 文秘知识
  • 转正申请
  • 问题清单
  • 动员大会
  • 年终总结
  • 工作总结
  • 思想汇报
  • 实践报告
  • 工作汇报
  • 心得体会
  • 研讨交流
  • 述职报告
  • 工作方案
  • 政府报告
  • 调研报告
  • 自查报告
  • 实验报告
  • 计划规划
  • 申报材料
  • 当前位置: 勤学考试网 > 公文文档 > 问题清单 > 正文

    步进电机控制实验报告

    时间:2020-09-04 16:15:58 来源:勤学考试网 本文已影响 勤学考试网手机站

    步进电机的控制实验报告

    一、 实验目的

    1. 学习步进电机的工作原理。

    2. 了解步进电机的驱动电路。

    3. 学会用单片机控制步进电机。

    二、 实验器件

    1. TIVA C 系列芯片,电机模块和LCD显示模块。

    2. 电脑以及CCS开发软件。

    三、 实验内容

    设计一个简单的程序驱动步进电机并控制转速,通过LCD板上的滚轮装置可以调节步进电机的转速。

    四、 实验原理

    双极性四线步进电机:一般双极性四线步进电机线序是 A B A/

    B/, 其中A 与A/是 一个线圈,B和B/是一个线圈,一般这种驱动需要的是H桥电路。

    H双极性四线步进电机驱动相序:

    1.单相四拍通电驱动时序

    正转: A/ B A B/

    反转: B/ A B A/

    2.双相通电四拍驱动时序

    正转:A/B AB AB/ A/B/

    反转:A/B/ AB/ AB A/B

    3.半步八拍驱动时序

    正转:A/ A/B B AB A AB/ B/ A/B/

    A/B/ B/ AB/ A AB B A/B A/

    反转:

    DRV8833驱动芯片: DRV8833为玩具、打印机及其他机电一体化应用提供了一款双通道桥式电机驱动器解决方案。

     该器件具有两个H桥驱动器,并能够驱动两个直流(DC)电刷电机、一个双极性步进电机、螺线管或其他电感性负载。

     每个H桥的输出驱动器模块由N沟道功率MOSFET组成,这些MOSFET被配置成一个H桥,以驱动电机绕组。每个H桥都包括用于调节或限制绕组电流的电路。

     借助正确的PCB设计,DRV8833的每个H桥能够连续提供高达1.5-ARMS(或DC)的驱动电流(在25℃和采用一个5VVM电源时)。每个H桥可支持高达2A的峰值电流。在较低的VM电压条件下,电流供应能力略有下降。

     该器件提供了利用一个故障输出引脚实现的内部关断功能,用于:过流保护、短路保护、欠压闭锁和过热。另外,还提供了一种低功耗睡眠模式。

     DRV8833内置于16引脚HTSSOP封装或采用PowerPAD?的QFN封装(绿色环保:RoHS和无Sb/Br)。

    图1 H桥电路真值表

    设计思路:使用单相四拍通电驱动时序驱动步进电机。用单片机生成四个占空比为25%相位逐个延迟90度的PWM信号,按照特定顺序输入到驱动芯片的AIN1、AIN2、BIN1、BIN2引脚。通过调节LCD模块上的滚轮来调节PWM信号的周期从而控制步进电机的转速。调节的频率范围是25HZ-50HZ。步进电机的转速信息通过传感器采样送到单片机,信息处理后送到LCD显示模块显示。

    实验主程序:

    int main(void)

    {

    uint32_t pui32ADC0Value[1]; // 保存ADC采样值

    int speed = 0;

    uint32_t cur_Period, old_Period = 0; // 根据滚轮ADC转换值换算出当前的时间周期值

    // 系统时钟设置

    SysCtlClockSet(SYSCTL_SYSDIV_64 | SYSCTL_USE_PLL | SYSCTL_OSC_MAIN |

    SYSCTL_XTAL_16MHZ);

    // 初始化滚轮

    Init_ADCWheel();

    // 使能LCD

    LCD_Enable();

    // 初始化LCD

    LCD_Init();

    // 清屏

    LCD_ScreenClr();

    // 显示“rpm 电机转速单位 转 /分”字符

    {LCD_Draw_Char('S', 0, 0);

    LCD_Draw_Char('p', 0, 8);

    LCD_Draw_Char('e', 0, 16);

    LCD_Draw_Char('e', 0, 24);

    LCD_Draw_Char('d', 0, 32);

    LCD_Draw_Char(':', 0, 40);}

    LCD_Draw_Char('(', 1, 127-40);

    LCD_Draw_Char('r', 1, 127-32);

    LCD_Draw_Char('/', 1, 127-24);

    LCD_Draw_Char('s', 1, 127-16);

    LCD_Draw_Char(')', 1, 127-8);

    //Enable PB0

    SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOB);

    GPIOPinTypeGPIOOutput(GPIO_PORTB_BASE, GPIO_PIN_0);

    GPIOPinWrite(GPIO_PORTB_BASE, GPIO_PIN_0, GPIO_PIN_0);

    while(1)

    {

    SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOC);

    GPIODirModeSet(GPIO_PORTC_BASE,GPIO_PIN_7, GPIO_DIR_MODE_IN);

    GPIOPadConfigSet(GPIO_PORTC_BASE,GPIO_PIN_7,

    GPIO_STRENGTH_2MA,GPIO_PIN_TYPE_STD_WPU);

    SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOD);

    GPIODirModeSet(GPIO_PORTD_BASE, GPIO_PIN_6, GPIO_DIR_MODE_IN);

    GPIOPadConfigSet(GPIO_PORTD_BASE, GPIO_PIN_6,

    GPIO_STRENGTH_2MA,GPIO_PIN_TYPE_STD_WPU);

    if(GPIOPinRead(GPIO_PORTD_BASE,GPIO_PIN_6)==0)

    {Init_PWM();}

    if(GPIOPinRead(GPIO_PORTC_BASE,GPIO_PIN_7)==0)

    {Init_PWM1();} 初始化时,检测按键,实现正反转

    ADCProcessorTrigger(ADC_BASE, SequenceNum);

    // 等待完成取样转换

    while(!ADCIntStatus(ADC_BASE, SequenceNum, false))}

    // 清楚ADC中断标志位

    ADCIntClear(ADC_BASE, SequenceNum);

    // 读取ADC 采样值

    ADCSequenceDataGet(ADC_BASE, SequenceNum, pui32ADC0Value);

    // 当前周期转化公式

    cur_Period = MIN_PERIOD + ((MAX_PERIOD - MIN_PERIOD) *

    pui32ADC0Value[0]) / 4096;

    // 记录ADC的变化率大小

    uint32_t temp = 0;

    if(cur_Period > old_Period)

    {

    temp = cur_Period - old_Period;

    }else{

    temp = old_Period - cur_Period;

    cur_Period = PERIOD_TIME; //

    // ADC 实现 16 级的有极变化,

    if(temp > 0xFFF)

    {

    // 调整周期

    PWMGenPeriodSet(PWM0_BASE, PWM_GEN_0, cur_Period); //

    PWMGenPeriodSet(PWM0_BASE, PWM_GEN_1, cur_Period);

    //

    // PWMGenPeriodSet(PWM1_BASE, PWM_GEN_2, cur_Period);

    PWMGenPeriodSet(PWM1_BASE, PWM_GEN_3, cur_Period);

    //

    //

    // // 调整占空比

    PWMPulseWidthSet(PWM0_BASE, PWM_OUT_1, cur_Period / 2); //

    PWMPulseWidthSet(PWM0_BASE, PWM_OUT_2, cur_Period / 2); //

    PWMPulseWidthSet(PWM0_BASE, PWM_OUT_1, cur_Period / 4); //

    PWMPulseWidthSet(PWM0_BASE, PWM_OUT_2, cur_Period / 4); //

    PWMPulseWidthSet(PWM1_BASE, PWM_OUT_5, cur_Period / 4); //

    PWMPulseWidthSet(PWM1_BASE, PWM_OUT_6, cur_Period / 4);

    //

    ////

    //// // 延时调整

    PWMSyncTimeBase(PWM0_BASE, PWM_GEN_1_BIT); //

    SysCtlDelay((cur_Period / 4) );

    //

    PWMSyncTimeBase(PWM0_BASE, PWM_GEN_0_BIT); //

    SysCtlDelay((cur_Period / 4));

    //

    PWMSyncTimeBase(PWM1_BASE, PWM_GEN_3_BIT); //

    SysCtlDelay((cur_Period / 4));

    //

    PWMSyncTimeBase(PWM1_BASE, PWM_GEN_2_BIT); //

    //计算电机转数

    speed = ROM_SysCtlClockGet() / cur_Period;

    old_Period = cur_Period;

    }

    // 计算频率并显示

    unsigned char number = '0';

    int i = 0 ;

    unsigned char data[4] = {0};

    data[0] = speed / 1000;

    data[1] = (speed / 100) % 10;

    data[2] = (speed / 10) % 10;

    data[3] = (speed / 1) % 10;

    // 如果ADC 采样值发生变化则更新显示

    for(i = 0; i < 4; ++i)

    {

    LCD_Draw_Char('.', 1, 20 + 10 * 2);

    if(i > 1)

    LCD_Draw_Char(number + data[i], 1, 20 + 10 * (i + 1)

    else

    LCD_Draw_Char(number + data[i], 1, 20 + 10 * i);

    // 系统延时,一秒执行4次

    ROM_SysCtlDelay(SysCtlClockGet() / 12);

    }

    }

    五、 实验调试

    1. 将程序下载到单片机上。

    2. 运行程序,打开电机开关,这时候可以看到步进电机转动。

    图2 步进电机转动

    3. 调节滚轮可以调节步进电机的转速。

    图3 通过滚轮调节电机转速

    六、 实验心得

    1. 学会了步进电机的分类和工作原理。

    2. 了解步进双极性四线电机的驱动电路,通过两个H桥电路轮流导通,带动电机转动一定的角度。

    3. 进一步熟悉CCS这个开发环境,学会使用更多的函数,但由于 学习资料较少未能很好掌握。.

    组员:黄资贺 何凯 邓东晖

    制度说明

    制度是执行为保障的制之所以可以对个人行为起到约束的作用,是以有效的行力为前提的,即有强制力保证其执行和实

    施,否则制度的约束力将无从实现,对人们的行为也将起不到任何的规范作用。只有过执行的过程制度才成为现实的制度,就像

    是一把标尺,如果没有被用来划线、测量,它将无异于普通的木条或钢板,只能是可性的标尺,而不是现实的标尺。制度亦并非

    单纯的规则条文,规则条文是死板的,静态的,而制度是对人们的行为发生作用的,动态的,而且是操作灵活,时常变化的。是行力将规则条文由静态转变为了动态,赋予了其能动性,使其在执行中得以实现其约束作用,证明了自己的规范、调节能力,从得以被人们遵守,才真正成为了制度。

    相关热词搜索: 实验报告 步进电机 实验 控制

    • 考试时间
    • 范文大全
    • 作文大全
    • 课程
    • 试题
    • 招聘
    • 文档大全

    推荐访问