tft每日頭條

 > 生活

 > arduino直接驅動無刷電機

arduino直接驅動無刷電機

生活 更新时间:2024-08-21 22:14:32

在上次的文章中,我們已經介紹了直流有刷電機的驅動。這次我們來聊一聊無刷直流電機的控制。無刷直流電機(Brushless Direct Current Motor, BLDC)克服了有刷直流電機的先天性缺陷,以電子換向器取代了機械換向器。相對于有刷電機,無刷電機去除了電刷,沒有了有刷電機運轉時産生的電火花,極大減少了電火花對電子設備的幹擾。

直流無刷電機

無刷電機效率高,一般的直流無刷電機的效率能夠達到96%以上,而傳統的直流電機的效率一般在75%左右;無刷電機壽命長,對于有刷電機,由于碳刷的磨損性,隔一段時間就要更換,維修頻繁,而直流無刷電機,一般的使用壽命都在2萬小時以上,正常工況條件下,使用5年以上,基本不會損壞,所以直流無刷電機的壽命是傳統電機的5倍。沒有了電刷,電機的噪音也會低很多。

arduino直接驅動無刷電機(無刷電機控制教程)1

無刷電機

電調

無刷電機的控制我們需要一個關鍵的模塊——電調。

arduino直接驅動無刷電機(無刷電機控制教程)2

電調

電調,全稱電子調速器,英文Electronic Speed Control,簡稱ESC。它根據控制信号調節電動機的轉速。電調最主要的應用是航模,車模,船模,飛碟,飛盤等等玩具模型上面。這些模型通過電調來驅動電機完成各種指令,模仿其真實工作功能,以達到與真實情況相仿的效果。

我們采用以下規格的外轉子 BLDC電機:它的 KV 額定值為1000。KV值定義是:轉速/V,意思為輸入電壓增加1伏特,無刷電機空轉轉速增加的轉速值。例如:100KV為電壓每增加1V,轉速增加100rpm,100KV的電機在50V電壓值時對應的轉速為:100(KV值)*50(電壓)=5000rpm(轉速),KV值越大,電壓增加,轉速增加的越快。如果我們為這個電機提供 7.4 V的電壓,電機可以達到 7400 RPM。

arduino直接驅動無刷電機(無刷電機控制教程)3

電機

電池

無刷電機非常耗電,最常見的供電方法是使用LiPo電池。LiPo電池全稱Lithium-Polymer Battery 锂聚合物電池,外殼為軟包。LiPo單節電壓為3.7V,稱之為1S。 LiPo電池的“S”号表示該電池有多少節電池,4S LiPo就代表4節3.7V電池包,為13.6V。

arduino直接驅動無刷電機(無刷電機控制教程)4

LiPo電池

我們也可以采用锂離子電池(Li-ion,Lithium Ion Battery),最常見的锂離子電池就是18650電池。其中18表示直徑為18mm,65表示長度為65mm,0表示為圓柱形電池。常見的可充18650锂電池,電壓都是标3.6或者3.7v,充滿電的時候是4.2v,主流的容量從1800mAh到2600mAh,(18650動力電池容量多在2200~2600mAh)。

arduino直接驅動無刷電機(無刷電機控制教程)5

18650電池

在這裡,我們使用 3S LiPo 電池,它有 3 個電池,電壓為 11.1V。所以,我們的電機的轉速最大可達11100RPM。

arduino直接驅動無刷電機(無刷電機控制教程)6

電調的控制

我們選取符合電機要求的 30A ESC電調。 ESC 的一側有三根電線控制電機的三相,另一側有兩根電線,VCC 和 GND,用于外部電源輸入。還有另一組三根線從 ESC 出來,那就是信号線、5V GND。 我們可以通過這裡的電源線為 Arduino 提供5V 穩壓電源。 ESC這功能稱為電池消除電路,顧名思義,它消除了微控制器對單獨電池的需求。

arduino直接驅動無刷電機(無刷電機控制教程)7

其實電調的控制和舵機是相同的。Arduino 控制無刷電機就像使用Arduino控制舵機一樣, 也使用相同類型的控制信号,也就是标準的 50Hz PWM 信号。

arduino直接驅動無刷電機(無刷電機控制教程)8

arduino直接驅動無刷電機(無刷電機控制教程)9

我們在一些應用當中,尤其是遙控飛機中,常常要同時使用舵機和無刷電機,我們就可以使用相同類型的控制器輕松控制它們。我們隻需要使用 Arduino 生成 50Hz PWM 信号,并使用不同的占空比進行調速。

arduino直接驅動無刷電機(無刷電機控制教程)10

Arduino 無刷電機驅動

下面我們将介紹如何使用 Arduino 和 電調ESC控制無刷電機。我們将使用電位計控制電機的速度,下面是電路圖。

arduino直接驅動無刷電機(無刷電機控制教程)11

硬件設備:

  • 無刷電機 × 1
  • 電調 30A × 1
  • 锂電池 × 1
  • Arduino UNO控制器 × 1
  • 電位計 × 1
  • 連接線 × 1

Arduino代碼:

Arduino 代碼非常簡單,隻有幾行代碼。

/* Arduino無刷電機控制 */ #include <Servo.h> Servo ESC; // 創建舵機對象來控制電調 int potValue; //設置模拟引腳的值 void setup() { // 将 ESC 連接到引腳 9 ESC.attach(9,1000,2000); //(引腳,最小脈沖寬度,以微秒為單位的最大脈沖寬度) } void loop() { potValue = analogRead(A0); //讀取電位器的值(0到1023之間的值) potValue = map(potValue, 0, 1023, 0, 180); // 縮放它以與舵機庫一起使用(值在 0 到 180 之間) ESC.write(potValue); // 向ESC發送信号 }

效果展示:

arduino直接驅動無刷電機(無刷電機控制教程)12

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关生活资讯推荐

热门生活资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved