这是一个综合的实验程序,实现了对步进电机的控制,包括启动/停止,正转/反转,加速/减速,同时将转速以及正反转信息通过LED显示出来。
上传时间: 2017-08-23
上传用户:ANRAN
基于状态监测的全数字预测倍频技术,适合做转速测量的预测算法。
上传时间: 2017-09-09
上传用户:gaome
该设计采用单片机AT89S52作为电动车的检测和控制核心(控制器),实现电动车的路线识别、跷跷板平衡检测等功能。同时通过反射式光电传感器识别与地面顔色有较大差别的导引线,并采用直流电机作为驱动电机;以及角度传感器来对跷跷板角度进行测量,得到0~5V模拟电压信号,通过 TLC549CP进行模数转换,从而使电动车控制器可以正确判断平衡点位置,精确控制板面平衡。该设计应用PWM(脉冲宽度调制)对电机转速进行控制,以及编码传感器对电动车速度进行监控,并将监控结果实时反馈到控制器,对车速进行误差调整,实现闭环控制,以达到精确控制的目的。应用74LS164进行静态显示来减少控制器的处理时间。
上传时间: 2017-09-09
上传用户:songrui
本设计介绍了恒压供水系统的控制策略,分析了典型的恒压供水系统控制方案,阐述了应用该恒压供水系统的经济效益。本次设计是通过管网瞬间压力变化,自动调节某台水泵的转速和三台水泵的投入及退出,使管网主干管出口端保持在恒定的设定压力值,并满足用户的流量需求,使整个系统始终保持高效节能的最佳状态,经过精心设计与反复调试,设计出一套自动化程度高,测量准确,操作简单,适用范围广,界面丰富的三泵恒压供水系统。
上传时间: 2017-09-18
上传用户:jqy_china
通过PID的设定,使得电机转速得到改变,实现了实验要求
标签: 只有keil程序
上传时间: 2015-05-15
上传用户:墨水的蓝
本教程讲了BLDC无刷直流电机的构造及其工作原理及转矩/转速特性
标签: BLDC电机
上传时间: 2015-05-19
上传用户:钟磬音1994
控制智能车控制4个电机的转速,主控芯片是STM32,引脚是PA6,PA7,PB0,PB1
上传时间: 2015-12-20
上传用户:wjk046
主控芯片STM32,通过PWM可以控制4个电机的转速,进行智能控制
上传时间: 2015-12-20
上传用户:zcs1975421
/**************************************************************** 外部晶振8M PA0~3:四位数码管的位选 PB0~7:数码管的8位段选 外部中断0用于计数 定时器0溢出中断的定时为1ms 说明 :检测到水流较小时,继电器延时1秒关闭 ******************************************************************/ #include<iom16v.h> #include<macros.h> #define uchar unsigned char #define uint unsigned int char led_7[10]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F}; //数码管段选 char position[4]={0xfe,0xfd,0xfb,0xf7};//数码管位选 uint sumnum=0; //用于记录1000ms内进入中断的次数 uint time=0; //记录进入比较定时器0的次数 uint num=0; //记录1ms内进入中断的次数 uint count=0; //进入外部中断0的次数 uchar flag; uint sumnum1; //记录100ms内的数目 /***************************函数声明***************************/ void delay(); void display(uint m ); void init(); void init_0(); void init_2(); void _delay_us(uint l) { unsigned int i; for(i=0;i<l;i++) { asm("nop"); } } /**************************主函数***********************************/ void main() { init(); init_0(); init_2(); while(sumnum<5) { PORTD=0XBF; segdisplay(sumnum1); } while(1) { segdisplay(sumnum1); } } /*************************扫描数码管时的延时函数*********************/ void delay() { uchar i,j; for(i=6;i>0;i--) for(j=225;j>0;j--); } /************************数码管显示函数*****************************/ void segdisplay( int temp) { int seg[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; int temp1,temp2,temp3,temp4; temp1=temp/1000; temp2=(temp/100)%10; temp3=(temp/10)%10; temp4=temp%10; DDRB=0xff; DDRA|=0x0f; PORTA=~BIT(3); PORTB=seg[temp1]; _delay_us(100); PORTA=~BIT(2); PORTB=seg[temp2]; _delay_us(100); PORTA=~BIT(1); PORTB=seg[temp3]; _delay_us(100); PORTA=~BIT(0); PORTB=seg[temp4]; _delay_us(100); } /***********************管脚初始化函数*********************/ void init() { DDRD|=0X40; //PD4 设置为输出 PORTD=0XBF; DDRA=0XFF; DDRB=0XFF; PORTA=0XFF; PORTB=0XFF; } /***********************外部中断0初始化*********************/ void init_0() { MCUCR=0X02; //INT0为下降沿触发 GICR=0X40; //使能INT0中断 SREG=0X80; //使能总中断 } /**********************定时器2初始化***********************/ void init_2() { TCCR0=0x03; // 内部时钟,64 分频(8M/64=125KHz) TCNT0=0x83; //装初值 TIMSK=0x01; // 允许 T/C0溢出中断中断 } /***********************外部中断0子函数********************/ #pragma interrupt_handler int0_isr:2 void int0_isr(void) { count++; } /*********************定时计数器0溢出中断子函数*****************/ #pragma interrupt_handler int0_over:10 void int0_over(void) { TCNT0=0x83; //重装初值 if((time%100) == 0) sumnum1 = num; if(time == 1000) { sumnum=num; if(sumnum<10) { if((flag==1)&&(sumnum<10)) { PORTD=0XFF; flag=0; } flag++; } else PORTD=0XBF; num=0; time=0; } num+=count; count=0; ++time; }
标签: C语言
上传时间: 2016-03-09
上传用户:彦 yan
使用磁场定向控制策略(FOC)的永磁同步电机控制仿真,能够完美跟踪转速转矩曲线,逆变器发波方式为SVPWM.
上传时间: 2016-05-24
上传用户:jsdygps