1,应用pwm调速 微型电机转速范围

1w 好快应该是无刷的 能直接用pwm吗一般来说 从300rpm 到最快 没问题
步进电机价格贵的厉害。用200w单相减速、调速微电机,可以实现无极调速。减速比1:10可以实现你的要求。如需的话,可以帮你。询:0537-4257999

应用pwm调速 微型电机转速范围

2,用单片机io口和三极管驱动直流电机实现pwm控制电机转速问题 搜

这只是常见的电路而已,调速功能是由软件实现的
单片机最小系统是否正确(电源±、晶振、复位、EA)。驱动电路是否正确(元件选型、电路连接,无短路、无开路)。电源功率是否足够驱动负载。程序是否正确,并烧录。针对图中的电路,直接拿跳线,将P23搭地,如果电机转动,则驱动正确。

用单片机io口和三极管驱动直流电机实现pwm控制电机转速问题  搜

3,转速转换成电压信号通过AD转换输入到AT89C51中单片机控制输

此问题已经回答过一次了。简单方法还是建议使用步进电机驱动时序产生ic--l297n之类的芯片或是其它驱动ic,用51单片机驱动时序很难产生。速度可通过给297的时钟频率确定,正反转也是通过io口控制,接口简单,手册有详细的硬件连接图。
一、AT89C51单片机没有 ADC 转换功能,也没有 PWM 输出功能,所以用 AT89C51 完成这两个功能是比较麻烦的。二、如果是课题作业,那就比较麻烦;如果是要实现这两个功能,建议用 PIC16F883,或 ATMEGA48,芯片本身带这两个功能。

转速转换成电压信号通过AD转换输入到AT89C51中单片机控制输

4,单片机控制电机转速试验PWM

单片机控制电机转速:  如果只有一个转向的话就比较容易了,如果要有正反两个转向,就需要一个H桥,并且两个I/O口输出高低电频控制。比如用P1口的P1.0,P1.1,P1.2三个I/O口接按键,P3.4口接电频输出,编个定时程序及按键程序,如果是快(全速运行),那就P3.4口直接输出高电频“1”;中(50%),那就让P3.4口0—50ms输出高电频“1”,50ms—100ms输出低电频“0”,后面就一直以50ms进行一次取反;慢(就用10%吧),0—40ns输出高电频“1”,41ns—400ns输出低电频“0”,这样为一个周期,后面就一直循环吧。  如果按键P1.0按下,执行方式1,全速运行,否则以默认方式运行;按键P1.1按下,执行方式2,改变占空比,以50%的速度运行,否则,不作改变;按键P1.2按下,执行方式3,改变占空比,以10%的速度运行,否则,不作改变。
1、pwm波是控制直流电机的通俗的说,5v直流电机在5v的情况下肯定速度最快,在0v的情况下肯定不转了这样电源0~5v就对应了不同的速度问题是怎么才能实现0~5v的变化呢?于是就用pwm波控制mos管来给直流电机供电。pwm就是一个矩形波,通过控制高电平和低电平的时间来控制mos管导通的时间。mos管在高电平的时候导通,就相当于5v电源直接加到电机上;mos管在低电平的时候截止,就相当于0v电源加到电机上。pwm又叫脉宽调制,就是控制高电平占一个周期的比例。而这个pwm波就是控制5v电源加到电机上的时间,从而控制了电机。 2、例程:#include sbit key1 = p3^4; sbit pwm = p1^5; unsigned char cycle; //定义周期 该数字x基准定时时间 如果是10 则周期是10 x 0.1ms unsigned char pwm_on ;//定义高电平时间 void delay(unsigned int cnt) { while(--cnt); } main() { unsigned char pwm_num;//定义档位 tmod |=0x01;//定时器设置 1ms in 12m crystal th0=(65536-1000)/256; tl0=(65536-1000)%256;//定时1ms ie= 0x82; //打开中断 tr0=1; cycle = 10;// 时间可以调整 这个是10步调整 周期10ms 8位pwm就是256步 while(1) { if(!key1) { delay(10000); if(!key1) { pwm_num++; if(pwm_num==4)pwm_num=0; switch(pwm_num){ case 0:p0=0x06;pwm_on=0;break;//高电平时长 case 1:p0=0x5b;pwm_on=4;break; case 2:p0=0x4f;pwm_on=6;break; case 3:p0=0x66;pwm_on=8;break; default:break; } } } } } /********************************/ /* 定时中断 */ /********************************/ void tim(void) interrupt 1 using 1 { static unsigned char count; // th0=(65536-1000)/256; tl0=(65536-1000)%256;//定时1ms if (count==pwm_on) { pwm = 1; //灯灭 } count++; if(count == cycle) { count=0; if(pwm_on!=0) //如果左右时间是0 保持原来状态 pwm = 0;//灯亮 }
一. 带注释软件清单;==========使用单元设定==========//..................................使用单元设定 DIS0 EQU 30H DIS1 EQU 31H DIS2 EQU 32H DIS3 EQU 33H LED EQU 34H TM1 EQU 35H; TM2 EQU 36H; INTV BIT 37H;中断标志 THX EQU 38H;定时脉宽高电平 CISHU EQU 39H FIRST BIT 41H; 检测加减是否第一次按下 SET1 BIT 42H SETZ0 EQU 43H;设定当前设定值SETZ0~SETZ3 SETZ1 EQU 44H SETZ2 EQU 45H SETZ3 EQU 46H TM3 EQU 47H; 循环次数单元 JIA1 BIT 48H; 单步加标志 LIANJIA BIT 49H; 连加标志 JIAN1 BIT 50H; 单步减标志 LIANJIAN BIT 51H; 连减标志 SETDATA EQU 52H; 设定速度暂存单元 REALDATA EQU 53H; 实测速度暂存单元 YK1 EQU 54H; 上次输出数据暂存单元 KP EQU 56H;比例系数 KI EQU 57H;积分系数 EK EQU 58H;设定值和实测值的差值 EK1 EQU 59H;上次的EK值 OUTPUT EQU 60H; EK2 EQU 61H;EK-EK1的值 ONPRESS BIT 62H;判定ENTER键是否弹起标志 TMS EQU 63H;闪烁时长 SHAN BIT 64H; 闪烁标志;==========主程序========== ORG 0000H SJMP MAIN ORG 0013H;外部中断1入口地址 AJMP INX1 ORG 001BH;定时器T1中断入口地址 AJMP ITX1 ORG 0070HMAIN: MOV SP,#70H;设定堆栈指针入口地址 ACALL INIT;调用初始化程序 M1: JB SET1,FLASH;当前为设置状态则跳到闪烁显示模块 ACALL DISP; 否则为一般显示 SJMP NEXTTFLASH: ACALL DISP1NEXTT: ACALL DELAY;调用按键延时程序 ACALL M2;调用按键程序 DJNZ CISHU,M1;第隔100MS刷新一下实测值 MOV CISHU,#20ACALL CONTROL;调用控制调速模块 SJMP M1//==========初始化模块========== INIT:MOV DPTR,#0FD00H ;设置PA、PB为输出口,PC为输入口 MOV A,#03H MOVX @DPTR,A MOV TMOD,#21H ;定时器/计数器T1为方式2,定时器/计数器T0为方式1 MOV TL0,#00H ; 定时器/计数器T0赋初值#00H MOV TH0,#00H MOV THX,#0BBH ;输出单元赋初值#0BBH,即脉冲高电平宽度 MOV TH1,THX MOV TL1,THX SETB TR1 ;启动定时器/计数器T1 SETB TR0 ; 启动定时器/计数器T0 SETB ET1 ;允许定时器/计数器T1溢出中断 SETB EX1 ;允许外部中断1中断 SETB IT1 ;选择边沿触发 SETB EA ;CPU开中断 SETB 07H; SETB SHAN CLR 11H;检测是否成功 MOV LED,#7FH

文章TAG:电机转速达到多少转到pwm模式电机  电机转速  达到  
下一篇
展开更多