目錄
一、直流電機介紹
直流電機是一種將電能轉換為機械能的裝置。一般的直流電機有兩個電極,當電極正接時,電機正轉,當電極反接時,電機反轉
直流電機主要由永磁體(定子)、線圈(轉子)和換向器組成
除直流電機外,常見的電機還有步進電機、舵機、無刷電機、空心杯電機等
二、直流電機驅動電路
三、PWM
3.1 PWM介紹
PWM(Pulse Width Modulation)即脈沖寬度調制,在具有慣性的系統中,可以通過對一系列脈沖的寬度進行調制,來等效地獲得所需要的模擬參量,常應用于電機控速、開關電源等領域
PWM重要參數:
頻率 = 1 / TS 占空比 = TON / TS 精度 = 占空比變化步距
3.2 產生PWM方法
基本原理是由單片機內部集成PWM發生器模塊在程序控制下產生PWM信號。優點是電路簡單、便于程序控制。缺點是不利于學生觀測PWM產生過程,閉環控制復雜和使用時受單片機性能制約。
四、代碼演示
電機調速
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;
}
}
注意:一定要看
千萬不要直接復制代碼,因為是模塊化編寫,模塊的代碼沒有往上復制(模塊的代碼在以往的文章中可以找到),大家一定要自己動手,跟著視頻學!!!!!