目錄
一、直流電機介紹
直流電機是一種將電能轉換為(wei) 機械能的裝置。一般的直流電機有兩(liang) 個(ge) 電極,當電極正接時,電機正轉,當電極反接時,電機反轉
直流電機主要由永磁體(ti) (定子)、線圈(轉子)和換向器組成
除直流電機外,常見的電機還有步進電機、舵機、無刷電機、空心杯電機等
二、直流電機驅動電路
三、PWM
3.1 PWM介紹
PWM(Pulse Width Modulation)即脈衝(chong) 寬度調製,在具有慣性的係統中,可以通過對一係列脈衝(chong) 的寬度進行調製,來等效地獲得所需要的模擬參量,常應用於(yu) 電機控速、開關(guan) 電源等領域
PWM重要參數:
頻率 = 1 / TS 占空比 = TON / TS 精度 = 占空比變化步距
3.2 產生PWM方法
基本原理是由單片機內(nei) 部集成PWM發生器模塊在程序控製下產(chan) 生PWM信號。優(you) 點是電路簡單、便於(yu) 程序控製。缺點是不利於(yu) 學生觀測PWM產(chan) 生過程,閉環控製複雜和使用時受單片機性能製約。
四、代碼演示
電機調速
main.c
#include <REGX52.H>
#include "Delay.h"
#include "Key.h"
#include "Nixie.h"
#include "Timer0.h"
sbit Motor=P1^0;
unsigned char Counter,Compare;
unsigned char KeyNum,Speed;
void main()
{
Timer0_Init();
while(1)
{
KeyNum=Key();
if(KeyNum==1)
{
Speed++;
Speed%=4;
if(Speed==0){Compare=0;}
if(Speed==1){Compare=50;}
if(Speed==2){Compare=75;}
if(Speed==3){Compare=100;}
}
Nixie(1,Speed);
}
}
void Timer0_Routine() interrupt 1
{
TL0 = 0x9C; //設置定時初值
TH0 = 0xFF; //設置定時初值
Counter++;
Counter%=100;
if(Counter<Compare)
{
Motor=1;
}
else
{
Motor=0;
}
}
注意:一定要看
千萬(wan) 不要直接複製代碼,因為(wei) 是模塊化編寫(xie) ,模塊的代碼沒有往上複製(模塊的代碼在以往的文章中可以找到),大家一定要自己動手,跟著視頻學!!!!!