基本信息
文件名称:《单片机》第11章 单片机控制电机-教学课件(非AI生成).ppt
文件大小:285.5 KB
总页数:11 页
更新时间:2025-05-24
总字数:约1.55千字
文档摘要

第11章单片机控制电机11.1步进电机的控制11.2直流电机的控制*11.1步进电机的控制1、步进电机的工作原理常见的步进电机如图,为两相(2组线圈)四线,共有A、B、C、D共4个端子。采用给线圈脉冲供电的方式驱动,每个脉冲电机转动1个精确的角度(如0.18度,由厂家定)。主要的控制顺序有: 单相四拍、双相四拍、单双八拍。例:单相四拍控制顺序 正转:A、B、C、D、A、B、C…(给出端子为1,未给出端子为0) 反转:控制顺序颠倒即可*11.1步进电机的控制单相四拍控制顺序 正转:A、B、C、D、A、B、C… A B C D第一拍:1 0 0 0第一拍:0 1 0 0第一拍:0 0 1 0第一拍:0 0 0 1在实际程序中,需要控制脉冲宽度t,它与载波周期T近似相等。*11.1步进电机的控制*11.1步进电机的控制2、单片机控制步进电机单相四拍:正转:A、B、C、D、A、B、C…反转:A、D、C、B…Voidinit_step_motor(){ a=0; b=0; c=0; d=0;}Voidpulse_a(){ a=1; b=0; c=0; d=0;}Voidpulse_b(){ a=0; b=1; c=0; d=0;}Voidpulse_c(){ a=0; b=0; c=1; d=0;}Voidpulse_d(){ a=0; b=0; c=0; d=1;}*11.1步进电机的控制Voidclockwise() //电机正转{ pulse_a(); pulse_b(); pulse_c(); pulse_d();}Voidanti_clockwise() //电机反转{ pulse_a(); pulse_d(); pulse_c(); pulse_b();}根据实际情况在每拍之后加延时!!!*11.2直流电机的控制1、直流电机的工作原理一组线圈有A、B共2个端子。给线圈一定频率脉冲供电的方式控制电机,每个脉冲的宽度决定电机转速,这种方法称为脉冲宽度调制(PWM,PulseWidthModule)。PWM脉冲宽度从0%~100%,近似与电机转速0~100%成正比。正转:A正、B负反转:B正、A负*11.2直流电机的控制2、单片机控制直流电机(1)选择载波频率100Hz~10KHz(2)确定脉宽步长,共几步?(3)确定最短定时时间如:载波100Hz,周期=10ms步长为10%,共10步,最短时间为10ms/10=1ms*11.2直流电机的控制例1:实现10%的速度控制。#includereg51.hMain(){ TMOD=0x01; TH1=-1000/256; TL1=-1000%256; EA=1; ET1=1; TR1=1; while(1);}*11.2直流电机的控制Voidt1()interrupt3{ TH1=-1000/256; TL1=-1000%256; if(++cnt_period=10) { cnt_period=0; motor_out=1; }; if(cnt_period==x) //x=?? { motor_out=0; }}*11.2直流电机的控制*******