Ⅰ 單片機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%的速度運行,否則,不作改變。
Ⅱ 求教:如何用單片機控制發動機的轉速
單片機控制發動機轉速,首先要由單片機系統對發動機轉速進行測量,測量得到的轉速進行PID運算,再輸出控制信號,通過執行機構控制發動機油門,轉速高於目標轉速時,減油門,低於目標轉速時加油門,從而實現對發動機轉速的控制。
Ⅲ 怎樣用單片機控制步進電機轉速
那我們讓電機正轉一圈,反轉半圈,在正傳1/4圈,反轉一圈,試試。
#include <reg51.h>
typedef unsigned char uint8;
typedef unsigned int uint16;
typedef unsigned long uint32;
#define P_DIR 0
#define N_DIR 1
code uint8 FFW[8]={0xF1,0xF3,0xF2,0xF6,0xF4,0xFc,0xF8,0xF9};
void delay(uint16 i)
{
while (i--);
}
void motor_turn(uint16 angle, uint8 dir)
{
uint32 n=4096;
uint8 i;
n /= 360; //1度所需指令數
n *= angle; //angle度所需指令數
if (dir == P_DIR) //正轉
{
i = 7;
while (n--) //循環n次指令數
{
P1 = FFW[i];
if (i == 0)
i = 7;
else
i--;
delay(200);
}
}
else if (dir == N_DIR) //反轉
{
i = 0;
while (n--)
{
P1 = FFW[i];
if (i == 7)
i = 0;
else
i++;
delay(200);///調節轉速快慢
}
}
}
main()
{
while (1)
{
motor_turn(360, P_DIR);
motor_turn(180, N_DIR);
motor_turn(90, P_DIR);
motor_turn(360, N_DIR);
}
}
這個程序主要講一下motor_turn裡面的數據處理部分,不曉得大家是否看懂了。由於電機的旋轉一周需要的指令個數是8*8*64=4096,所以旋轉一度需要的指令數為4096/360,那麼我要旋轉N度,要發送的指令數為N*4096/360,看看是不是和程序里寫的一樣呢。當然,如果你約分的話,N將會容納更多角度而不溢出。
Ⅳ 怎樣用單片機控制電機轉速
在這里我只說說一般的直流電機。你可以使單片機一個引腳輸出一個可調占空比的方波,用三極體將這個方波(數字信號)轉成一個穩定的直流(模擬信號)電壓,通過調節占空比,就可以調節這個直流電壓的大小,就可以控制直流電機的轉速了。
Ⅳ 怎樣使用單片機控制直流電機轉速,並外接一個LED屏上顯示其轉速。
首先在電機軸上安裝個光電感測器檢測轉數給單片機。單片機採用PWM輸出脈沖寬度調制,通過放大電路控制直流電機的轉速。通過LED顯示,達到精確控制轉速的目的。
Ⅵ 單片機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%的速度運行,否則,不作改變。
Ⅶ 單片機是怎樣控制電機的
單片機只輸出信號,經過隔離電路,再經過功率開關電路驅動電機。
控制普通的三項非同步電機可以單片機輸出信號經三極體後驅動一個小功率繼電器,由繼電器來驅動交流接觸器,進而控制電機,也可以單片機信號經三極體放大後直接驅動功率繼電器。 方法有很多很多。至於驅動伺服,單片機埠的信號經過光耦隔離後可以直接驅動,伺服驅動器本身需要的驅動信號都是弱電信號。
單片機注意事項
一般在單片機的數據手冊(Datasheet)中都會提到該單片機需要的復位信號的要求。一般復位信號的寬度應為。復位電平的寬度和幅度都應滿足晶元的要求,並且要求保持穩定。還有特別重要的一點就是復位電平應與電源上電在同一時刻發生,即晶元一上電,復位信號就已產生。
不然,由於沒有經過復位,單片機中的寄存器的值為隨機值,上電時就會按PC寄存器中的隨機內容開始運行程序,這樣很容易進行誤操作或進入死機狀態。
Ⅷ 如何用單片機控制直流電機
1、通過設置PWM波的占空比來控制直流電機的轉速,占空比越大,轉速越快,越小轉速越低。
2、當然單片機的I/O口是不能直接驅動電機的,所以你還需要用一個馬達驅動晶元。像LG9110、CMO825等。馬達驅動友爛IC可以將單片機I/O輸出信號放大,這樣電機中流過的電流足夠大,電機才能轉起來。
3、你要是不清除PWM是怎麼回事呢,可以塌告李先作一些了解,再來知道有徵對性地團遲提問就好了。