freedomhit

无刷直流电机换相方法——惯性切换

电机在运行过程中,要进行换相。但是换相的方法很多,各有优缺点。我用的电机采用的是“惯性切换”方式,所谓惯性切换,就是当电机在外同步方式驱动下转速达到稳定后,关掉所有MOSFET,让转子依靠自身惯性自由转动,由于自由转动摆脱了磁场的束缚,电机

模拟开关AD7506在电调中的应用

电容滤波会引发信号的相位延迟,而且这种由电容带来的延迟换相对电机的影响会随着电机转速的升高而加强,迟后换相会使电机运行噪声明显增加,电流的波动也更剧烈,这给电机和功率管都带来了损害。为解决这一问题,我们对反电势过零检测电路进行了改进。改进后的电

ADCMP370比较器的应用

两电压间如何比较,有两种方式,一种是通过不断的AD采样实现,即CMPA,CMPB,CMPC分别连接到单片机的ADC1,ADC2,ADC3引脚,Middle点接单片机的ADC4引脚。检测过程中ADC4一直使能,只要在AB通电期间,将CMPC和Middle的采样值比较,AC通电期间将CMPB和Middle的采样值进

电容滤波

之前介绍了我做的电机电调,其核心就是由ADUC7026对比较器进行控制,从而达到对电机的驱动,但是供电信号总是会有毛刺,下面就介绍一种很常见的滤波方式——电容滤波。电路搭建实际电路,搭建完成后将示波器探头一

电机驱动

之前画的就是电机驱动的板子,之前已经说过了电调选用ADI公司的ADuC7026单片机进行驱动,现在把电机驱动的东西给大家介绍一下吧!在电机正常通过外同步方式起动后,就将进入自同步方式

绘制电路板的一些总结

刚刚画了一个板子,现在就总结一下吧!我用的软件是protel99,关于画板子的各个流程我就不废话了,我是看网络的一个教程学的,那里说的很清楚了。

ADIS16130的主函数

#includeexternvolatileunsignedcharTIMER1_FLAG;//-------Resetvectorsforthefollowinginterupthandlers---------------------voidUndef_Handler()__irq{RSTSTA=0x04;//SWRESET}voidSWI_Handler()__irq{RSTSTA=0x04;//SWRESET}voidPAbt_Handler()__irq{RSTSTA=0x04;//S

ADIS16130的通讯程序(一)

#include#include#include//---------------------GlobalVariables----------------------------////timerflagusedfordelaycountervolatileunsignedcharTIMER1_FLAG=0;//localstorageforstatusregisterunsignedshortSTATUS;floatX_Angle=0.0;//localstorageforcapturebu

ADIS16355的通讯程序(补充)

#include<ADuC7026.h>#include"ADIS16355_IO.h"#defineSET_CS()GP4DAT=(GP4DAT|0x00080000)//P4.3->/CS#defineCLR_CS()GP4DAT=(GP4DAT&0xFFF7FFFF)#defineSET_SCL()GP4DAT=(GP4DAT|0x001

ADIS16355通讯程序

#include#include"ADIS16355_IO.h"#include"ADIS16355.h"unsignedcharRegisterData[8];voidputchar(unsignedcharch)/*WritecharactertoSerialPort*/{COMTX=ch;//COMTXisan8-bittransmitregister.while(!(0x020==(COMSTA0&0x020))){;}}voidADuC7

ADuC7026PWM波占空比的问题(原创)

ADuC7026有可编程的三相脉宽调制(PWM)波形发生器,他有六个PWM输出引脚,PWM0H,PWM0L,PWM1H,PWM1L,PWM2H,PWM2L,其中H、L为互补的高低电平,H定义为大于50%,L定义为小于50%,L和H为互补关系。下面主要说下PWM的占空比的设置。根据公式:&

四通道遥控遥控信号模拟程序(原创)

#include#include#include/*提供4路舵机信号,舵机1、2固定不动,调节P_Value1和P_Value2值调整固定位置,舵机3可以定时改变位置,更改P_Value3的大小改变位置不同,P_Value4备份用,非用勿改!*/voidProPPM(inttime1,inttime2,inttime3,inttime4);voidIRQ_Handler()__ir

ADuC7026定时器(原创)

在做ADuC7026的实验中,经常需要延时,最简单的就是delay函数,直接deley(),括号内填上适当的数值就可以延时了,但是对于7026这种41.78MHz时钟频率的单片机来说,有时甚至几纳秒的延时都会对整个程序的执行有很大的影响。为了得到精确的时间,我经常采用T1定时器,T1