一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Arduino提供的PWM控制功能入門(2)

冬至子 ? 來源:樂文好墨 ? 作者:樂文好墨 ? 2023-10-31 16:37 ? 次閱讀

上回我們用 PWM 控制了一盞 LED 燈的亮度,實現(xiàn)了漸明漸暗的效果。今天就來用 PWM 控制一個直流電機的轉(zhuǎn)速,實現(xiàn)逐漸加速,減速的效果。為了能清除看到效果,筆者還專門用拙劣的手工做了一個紙風(fēng)車,粘到電機轉(zhuǎn)軸上。下面就來動手做實驗。

實驗器材:

  1. Arduino Uno R3 芯片 x1
  2. Adafruit 電機驅(qū)動板(Motor Shield)V1 型 x1
  3. 直流電機 x1
  4. 電線 x2
  5. USB 數(shù)據(jù)線 x1
  6. PC x1

實驗器材一覽如下:

圖片

注意事項:

Adafruit 電機驅(qū)動板是設(shè)計成兼容 Arduino Uno R3 芯片的,可以直接堆疊在 Arduino 上連接。

驅(qū)動板上的 jumper(在標(biāo)注 PWRJMP,意為 power jumper 的位置)是用來決定 Arduino 和驅(qū)動板是否獨立供電的。如果蓋上 jumper,則驅(qū)動板由 Arduino供電;如果拔掉jumper,則驅(qū)動板獨立供電。

驅(qū)動板若要獨立供電,電源接標(biāo)注 EXT_PWR(意為 external power)的 2 個接口。注意不要接反正負極,否則會燒壞驅(qū)動板甚至 Arduino!驅(qū)動板上LED 燈亮,表示驅(qū)動板供電正常。

實驗原理:

PWM 全稱 Pulse Width Modulation,它的原理,簡而言之,是通過產(chǎn)生持續(xù)時間長短不一的數(shù)字脈沖,來模擬連續(xù)變化的電平(“捏造”模擬信號)。注意芯片上的標(biāo)識, pin 號旁邊有 ~ 符號的表示該 pin 支持 PWM。(更詳盡的原理以后再做整理)

實驗步驟:

1.連接硬件:

首先將 Adafruit 電機驅(qū)動板直接堆疊插在 Arduino 板上,注意數(shù)字引腳對數(shù)字引腳,模擬引腳對模擬引腳,就可以很容易安裝好。效果如圖:

圖片

b. Arduino 板用 USB 數(shù)據(jù)線接 PC。這時候 Arduino 和驅(qū)動板都有供電,2 個板子上的 LED 燈常亮;

c. 2 條電線穿進電機的 2 個腳,打個小結(jié)固定一下,連接順序現(xiàn)在來說隨意。這里提一下電線的準(zhǔn)備,用剪刀剪出合適大小的電線后,用剪刀在電線的 2 端各去掉半個手指頭長度的包皮,讓導(dǎo)線頭裸露;

d. 2 條電線另外一端接驅(qū)動板上標(biāo)注 M3(意為 Motor 3)的 2 個腳。用 3 mm 十字螺絲刀擰松 2 個腳的螺絲,把電線放進去 2 只腳的壓片下,然后擰緊螺絲,效果如圖:

圖片

2.下載安裝電機驅(qū)動庫

要用代碼控制 Adafruit 電機驅(qū)動板,可以使用 Adafruit 提供的庫函數(shù),輕松上手。

然后打開 Arduino IDE,在菜單里,點擊“項目”->“加載庫”->“添加一個新 ZIP 庫”,然后選擇剛剛下載的 ZIP 壓縮包就可以了。

3.編寫程序

#include < AFMotor.h >

// 因為電機裝在驅(qū)動板的 M3 位置,所以第一個參數(shù)是 3
// 第 2 個參數(shù)是 PWM 頻率,如果電機接在 M1-M2 位上,則參數(shù)可選
// MOTOR12_64KHZ
// MOTOR12_8KHZ
// MOTOR12_2KHZ 
// MOTOR12_1KHZ
// 如果電機接在 M3-M4 位上,則參數(shù)可選
// MOTOR34_64KHZ
// MOTOR34_8KHZ
// MOTOR34_1KHZ
AF_DCMotor motor(3, MOTOR34_64KHZ);

void setup() {
    // 選擇串口 Baud 率
    Serial.begin(9600);
    Serial.println("Motor test!");
}

void loop() {
    Serial.println("tick");
    // 設(shè)置電機向前運轉(zhuǎn)
    motor.run(FORWARD);
    // 不斷加速
    for (int i = 0; i < 255; i++) {
        motor.setSpeed(i);
        // 等待 0.1 s 讓電機充分加速
        delay(100);
    }
    // 讓電機恒速運轉(zhuǎn) 10 s
    delay(10000);
    // 不斷減速
    for (int i = 255; i > 0; i--) {
        motor.setSpeed(i);
        // 等待 0.1 s 讓電機充分減速
        delay(100);
    }

    Serial.println("tock");
    // 釋放電機,不運轉(zhuǎn)
    motor.run(RELEASE);
    // 停轉(zhuǎn) 1 s
    delay(1000);

    Serial.println("tack");
    // 設(shè)置電機向后運轉(zhuǎn)
    motor.run(BACKWARD);
    // 不斷加速
    for (int i = 0; i < 255; i++) {
        motor.setSpeed(i);
        // 等待 0.1 s 讓電機充分加速
        delay(100);
    }
    // 讓電機恒速運轉(zhuǎn) 10 s
    delay(10000);
    // 不斷減速
    for (int i = 255; i > 0; i--) {
        motor.setSpeed(i);
        // 等待 0.1 s 讓電機充分減速
        delay(100);
    }

    Serial.println("tock");
    // 釋放電機,不運轉(zhuǎn)
    motor.run(RELEASE);
    // 停轉(zhuǎn) 1 s
    delay(1000);
}

燒錄到 Arduino 芯片上,可以看到電機按照我們設(shè)計的一樣,先正向加速運轉(zhuǎn),然后恒速轉(zhuǎn)動 10 秒,然后減速運轉(zhuǎn),停頓 1 秒,然后反向加速運轉(zhuǎn),恒速轉(zhuǎn)動 10 秒,然后減速運轉(zhuǎn),停頓 1 秒,周而復(fù)始。

最后,為了更加明顯的看到電機的轉(zhuǎn)動,筆者給小電機安上了一個粗糙的紙風(fēng)車,效果如下:

圖片

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 直流電機
    +關(guān)注

    關(guān)注

    36

    文章

    1720

    瀏覽量

    71200
  • 電機驅(qū)動
    +關(guān)注

    關(guān)注

    60

    文章

    1286

    瀏覽量

    87419
  • PWM控制
    +關(guān)注

    關(guān)注

    7

    文章

    195

    瀏覽量

    26915
  • Arduino
    +關(guān)注

    關(guān)注

    188

    文章

    6485

    瀏覽量

    189759
收藏 人收藏

    評論

    相關(guān)推薦
    熱點推薦

    第42期《Arduino入門》善假篇 05:舵機的PWM控制原理#硬聲創(chuàng)作季

    PWM控制舵機Arduino
    電子學(xué)習(xí)
    發(fā)布于 :2022年10月28日 21:01:43

    Arduino應(yīng)用之PWM控制直流電機風(fēng)扇

    Arduino應(yīng)用——PWM控制直流電機風(fēng)扇PWM原理實驗器件功能描述如何改變文本的樣式插入鏈接與圖片實現(xiàn)代碼生成一個適合你的列表創(chuàng)建一個表
    發(fā)表于 07-05 07:29

    Arduino入門

    Arduino入門歡迎來到Arduino的世界入門所需Arduino Nano板介紹Arduino
    發(fā)表于 01-21 09:52

    ArduinoPWM控制代碼

    如果你需要一個具體的代碼示例,我可以為你提供一個ArduinoPWM控制代碼。Arduino是一款常用的開源電子原型平臺,它
    發(fā)表于 09-21 08:57

    arduino入門教程 非常適合入門

    arduino入門教程 非常適合入門
    發(fā)表于 09-21 09:20 ?67次下載
    <b class='flag-5'>arduino</b><b class='flag-5'>入門</b>教程 非常適合<b class='flag-5'>入門</b>

    Arduino實踐中科學(xué)邏輯的應(yīng)用和VVVV入門教程

    彩色POV,相機紅外遙控器,玩轉(zhuǎn)arduino控制器-PWM控制電機轉(zhuǎn)速實驗,通過網(wǎng)頁遠程配置及固件更新等資料
    發(fā)表于 11-01 10:51 ?19次下載
    <b class='flag-5'>Arduino</b>實踐中科學(xué)邏輯的應(yīng)用和VVVV<b class='flag-5'>入門</b>教程

    arduino 舵機控制pwm控制小車沖突解決資料下載

    電子發(fā)燒友網(wǎng)為你提供arduino 舵機控制pwm控制小車沖突解決資料下載的電子資料下載,更有其他相關(guān)的電路圖、源代碼、課件教程、中文資料
    發(fā)表于 04-09 08:51 ?2次下載
    <b class='flag-5'>arduino</b> 舵機<b class='flag-5'>控制</b>與<b class='flag-5'>pwm</b><b class='flag-5'>控制</b>小車沖突解決資料下載

    Arduino入門版使用教程.pdf

    Arduino入門版使用教程.pdf
    發(fā)表于 02-14 10:29 ?0次下載

    Arduino入門

    電子發(fā)燒友網(wǎng)站提供Arduino入門板.zip》資料免費下載
    發(fā)表于 07-18 14:46 ?2次下載
    <b class='flag-5'>Arduino</b><b class='flag-5'>入門</b>板

    ARDUINO PWM太陽能充電控制

    電子發(fā)燒友網(wǎng)站提供ARDUINO PWM太陽能充電控制器.zip》資料免費下載
    發(fā)表于 08-01 10:21 ?16次下載
    <b class='flag-5'>ARDUINO</b> <b class='flag-5'>PWM</b>太陽能充電<b class='flag-5'>控制</b>器

    如何使用Arduino生成的PWM控制交流風(fēng)扇的速度

    在這個項目中,我們將演示使用 TRIAC 的 Arduino 交流風(fēng)扇速度控制。這里使用交流信號的相位控制方法來控制交流風(fēng)扇的速度,使用 Ardui
    的頭像 發(fā)表于 08-18 16:26 ?1.2w次閱讀
    如何使用<b class='flag-5'>Arduino</b>生成的<b class='flag-5'>PWM</b>來<b class='flag-5'>控制</b>交流風(fēng)扇的速度

    Arduino PWM控制的對稱電源

    電子發(fā)燒友網(wǎng)站提供Arduino PWM控制的對稱電源.zip》資料免費下載
    發(fā)表于 11-01 14:22 ?0次下載
    <b class='flag-5'>Arduino</b> <b class='flag-5'>PWM</b><b class='flag-5'>控制</b>的對稱電源

    Arduino Uno入門

    電子發(fā)燒友網(wǎng)站提供Arduino Uno入門.zip》資料免費下載
    發(fā)表于 11-21 09:24 ?6次下載
    <b class='flag-5'>Arduino</b> Uno<b class='flag-5'>入門</b>

    帶有Arduino入門套件的秒表

    電子發(fā)燒友網(wǎng)站提供《帶有Arduino入門套件的秒表.zip》資料免費下載
    發(fā)表于 11-22 11:59 ?1次下載
    帶有<b class='flag-5'>Arduino</b><b class='flag-5'>入門</b>套件的秒表

    Arduino提供PWM控制功能入門(1)

    今天來學(xué)習(xí)一下 Arduino 提供PWM 控制功能,它可以用來控制電機轉(zhuǎn)速,LED 明亮等
    的頭像 發(fā)表于 10-31 16:32 ?3181次閱讀
    <b class='flag-5'>Arduino</b><b class='flag-5'>提供</b>的<b class='flag-5'>PWM</b><b class='flag-5'>控制</b><b class='flag-5'>功能</b><b class='flag-5'>入門</b>(1)