极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 16140|回复: 11

請問是否可以直接用 PWM 控制馬達的轉速?

[复制链接]
发表于 2014-3-22 18:36:25 | 显示全部楼层 |阅读模式
剛拿到一個普通的 3-6V 馬達, 想用 UNO 直接去控制它的速度.

直接連到 3.3V 或 5V 都沒問題, 可以轉動, 但只是定速.
當我連到 D9 的 PWM pin, 再嘗試以 analogWrite 去設定速度, 就完全不轉動.
甚至我直接在 D9 輸出 255, 也沒有反應.

我用的只係一般2 pin 的馬達, 舵航 或 步進 馬達控制板好像不合用.

請問如果我想控制馬達的轉速, 是否可以直接用 UNO 板連線?  需要加上什麼東西嗎?
還是要購買專用的控制板?  
回复

使用道具 举报

发表于 2014-3-22 21:30:05 | 显示全部楼层
单片机不能直接驱动功率器件,你要加功放,例如H桥或者驱动芯片
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-3-22 22:49:55 | 显示全部楼层
qptimus 发表于 2014-3-22 21:30
单片机不能直接驱动功率器件,你要加功放,例如H桥或者驱动芯片

oh, 明白.  原來不可以單獨用 PWH 控制, 看來是我想得太簡單了.

回复 支持 反对

使用道具 举报

发表于 2014-3-23 00:01:15 来自手机 | 显示全部楼层
小心烧芯片!
回复 支持 反对

使用道具 举报

发表于 2014-3-23 03:06:05 | 显示全部楼层
数字引脚提供的电流不能高于40mA,根本带不动电机,没烧芯片就是万幸
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-3-23 11:54:08 | 显示全部楼层
本帖最后由 Super169 于 2014-3-23 11:58 编辑

oh...原來有這樣的限制, 沒留意, 以後要多加小心了, 幸好芯片沒燒掉.
剛剛再 check 過, 原來自己的馬達控制模塊 L293D motor control shield 除了可以控制 servo 及 stepper 以外, 還可以對 dc motor 控速, 當初只為 stepper 而買, 一直無留意.

但 L293D motor control shield 有個問題, 由於是 shield 的緣故, 不知它用了那些 pin, 模塊上亦沒有接口, 插上了之後, 就不可以加其他 sensor.
加上 screw shield 後, 也不知那個接口還可以用.
回复 支持 反对

使用道具 举报

发表于 2014-3-23 16:12:34 | 显示全部楼层
D0,D1,D2,D13,A0~A5没有用  D6,D7可以控制左上角的两个舵机插口
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-3-23 18:37:05 | 显示全部楼层
____消失灬 发表于 2014-3-23 16:12
D0,D1,D2,D13,A0~A5没有用  D6,D7可以控制左上角的两个舵机插口

唔該哂, 我試下拉幾條線比 sensor 同 OLED 用先.
D0/D1 基本上都唔用 (留比 PC), 即係 digital 得番 D2/D13, 無哂 PWM....真係去得幾盡.
好在 A4-A5 無用, I2C 既仲用得番.

我另外有塊 serial 16 servo control, 不知是否可以 control 一般 DC motor (初步睇可能唔得, 佢既 command 只接受 角度 而不是 速度).

唔知有無 I2C / SPI / 串口 既 motor controller, 可以唔駛用咁多 I/O.
回复 支持 反对

使用道具 举报

发表于 2014-3-23 22:49:01 | 显示全部楼层
那个啥  我有点看不懂      OLED不是用在I2C吗   serial 16 servo control是16位舵机驱动吧  这个驱动可以用串口驱动  就是D0和D1脚驱动     如果你只是驱动两个直流电机的话  可以用L298N驱动
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-3-24 01:04:44 | 显示全部楼层
____消失灬 发表于 2014-3-23 22:49
那个啥  我有点看不懂      OLED不是用在I2C吗   serial 16 servo control是16位舵机驱动吧  这个驱动可以用 ...

我想要驅動四個直流馬達 (前後及速度), 另外再加一些不同的 傳感.

如果用 L293D, 就會用了很多 I/O.

L298N 好像要用 4 個 I/O 控制 2 隻, 兩張 L298N 的話就是 8 個 I/O 了, 跟 L293D 差不多.  

但如果用 16 servo control, 不知是否可以用來控制一般直流馬達, 如果可以的話就最好了, 那是串口的, 兩個 I/O 就可以控制 16 台.  但我之前測試時, 那些命令都是在指定時間去到某個位置, 好像不可以控制速度和方向 (勉強說是可以, 但只在 360 度內轉動, 又是兩回事了).  如果可以, 就是最好了.

請問如果需要驅動四個直流電機 (只需前後及速度), 用那個方法可以最省 I/O 呢?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-3-24 01:14:42 | 显示全部楼层
oh, 在網上再找找看, 原來是有 i2c 的控制板 (Adafruit Motor Shield V2), 淘寶也有一塊 "直流伺服 PID电机 驱动模块 串口/I2C控制 闭环反馈 arduino例程".....但價錢....可能多買一塊 nano/pro mini, 用串口連線再接 L293D, 功能更好, 而且便宜得多.
回复 支持 反对

使用道具 举报

发表于 2014-3-24 09:38:57 | 显示全部楼层
Super169 发表于 2014-3-24 01:04
我想要驅動四個直流馬達 (前後及速度), 另外再加一些不同的 傳感.

如果用 L293D, 就會用了很多 I/O.

好像舵机控制器  控制不了直流电机
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|联系我们|极客工坊

GMT+8, 2026-6-10 04:31 , Processed in 0.052780 second(s), 21 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表