Я пытаюсь понять, как контролировать скорость двигателя постоянного тока 12 В с помощью Arduino и батареи 12 В.
Я хочу разделить «силовую» и «управляющую» части схемы, чтобы Arduino и датчики получали только 5 В.
До сих пор это то, что я пробовал:
Я могу контролировать скорость двигателя, изменяя ШИМ контакта 3 на Arduino. Это открывает транзистор NPN ( BUF654 ).
Проблема в том, что скорость двигателя меняется недостаточно.
От 0% до 50% ШИМ на контакте 3 двигатель глохнет.
Выше 50% двигатель почти достигает максимальной скорости.
Интересно, смогу ли я иметь линейную вариацию:
0% - 10% : very slow
10% - 20% : slow
20% - 50% : normal speed
50% - 80% : fast
80% - 100% : RELEASE THE KRAKEN!
Вот напряжение и ток, которые потребляет двигатель при использовании только батареи или предыдущей схемы:
+----------------------------+---------+--------+
| Directly on 12V battery | 12.7 V | 61 mA |
+----------------------------+---------+--------+
| Arduino circuit (100% PWM) | 12.47 V | 60 mA |
+----------------------------+---------+--------+
| Directly on 9V battery | 9 V | 54 mA |
+----------------------------+---------+--------+
| Arduino circuit (60% PWM) | 9 V | 52 mA |
+----------------------------+---------+--------+
Что я сделал не так? Может ли проблема исходить от моего двигателя?
Ваш диод находится в неправильном положении - он должен быть на двигателе (блокировка!), а не на транзисторе.
Диод предназначен для того, чтобы ток, протекающий в катушке двигателя, продолжал течь в том же направлении, когда транзистор выключается. Когда транзистор выключится, напряжение на коллекторе транзистора возрастет, поскольку оно вытекало из двигателя. От оно поднимется выше напряжения питания и прекратится только при пробое транзистора (или когда он начнет прозваниваться паразитной емкостью). Подключив диод от коллектора транзистора к шине +12 В, вы предотвратите превышение напряжения на транзисторе 12 В и позволите току двигателя продолжать протекать.
То, как у вас есть диод на вашем рисунке, он будет проводить только в том случае, если напряжение упадет ниже земли. Это могло произойти только в том случае, если кто-то механически очень быстро вращал двигатель в обратном направлении (и в результате ваш диод вызвал бы увеличение напряжения на шине 12 В).
Хотя диод находится в необычном положении, схема работает хорошо. Обычно диод размещается на индуктивной нагрузке, то есть на контактах двигателя, очень близко к двигателю (если вы используете длинные провода, это важно). Это помогает подавить электрические скачки, генерируемые двигателем, когда вы его останавливаете, но он продолжает вращаться и действует как генератор в течение очень короткого промежутка времени.
Эти шипы могут убить ваш транзистор. Другое решение — то, что вы сделали — это защитить сам транзистор.
Обратите внимание, что невозможно заставить двигатель постоянного тока вращаться очень медленно. Это происходит из-за механической конструкции двигателя. Если вы используете двигатель без редуктора, вы увидите, что 30%-100% ШИМ имеют некоторое значение, а 0..30% ничего не делают. С мотор-редуктором (шестерни имеют дополнительную нагрузку) вам может потребоваться довести скорость до 50% только для того, чтобы он запустился.
Вы можете сделать несколько вещей:
Может ли это быть статическое трение? Что произойдет, если ваш скетч arduino сначала запустит двигатель (максимальный ШИМ), а затем медленно уменьшит его в течение нескольких секунд?
Мой опыт показывает, что очень сложно медленно запускать двигатель постоянного тока (если, конечно, у вас нет обратной связи по положению или шестерен).
пользователь28910
мимипк
макси
мимипк
макси
Рикардо