Двигатель постоянного тока шумит, но не вращается

Я слежу за учебным пособием Джереми Блума на YouTube. ссылка я сделал точно такую же схему, как и он. схема

но двигатель постоянного тока просто издает непрерывный звуковой сигнал, когда я запускаю этот код.

int motorPin = 9;

void setup()
{
    pinMode(motorPin, OUTPUT);
}

void loop()

{
    for(int i = 0; i <= 255; i++)
    {
        analogWrite(motorPin, i);
        delay(10);
    }

    delay(500);

    for(int i = 255; i >= 0; i--)
    {
        analogWrite(motorPin, i);
        delay(10);
    }

    delay(500);
}

Я понятия не имею, почему это происходит. был бы рад, если бы кто-нибудь мог мне помочь здесь.

, 👍0

Обсуждение

Каковы характеристики вашего двигателя (текущий рейтинг)? Какую модель транзистора вы использовали?, @alexan_e

Может быть двигатель переменного тока. Попробуйте подключить его напрямую к 9-вольтовой батарее или другому источнику питания и посмотрите, не повернется ли он., @Gerben

Или просто измените контакт 9 на HIGH, чтобы убедиться, что ваша схема работает правильно, инерция не позволяет двигателю вращаться., @Anonymous Penguin


4 ответа


1

analogWrite использует ШИМ. Двигатель, который вы используете, предназначен для работы в импульсном режиме? Попробуйте использовать

digitalWrite(motorPin, HIGH);
,

Вопрос должен заключаться не столько в том, предназначен ли двигатель для импульсной работы, сколько в том, обеспечивают ли рабочий цикл, питание и схема драйвера достаточную мощность. Управление 100% рабочим циклом таким образом действительно является одним из ключевых тестов, которые следует выполнить (за исключением нетипичного случая, когда драйвер способен обеспечить небезопасное количество энергии)., @Chris Stratton


1

Мне интересно, достаточно ли задержки в 10 мс между шагами для того, чтобы мотор среагировал, особенно если его клеммы закрыты колпачком. Кроме того, все это заканчивается через 5 секунд.

Мне кажется, что AnalogWrite генерирует ШИМ-сигнал с частотой около 500 Гц или периодом волны около 2 мс. Так за 10 мс вы получите 5 импульсов одинаковой амплитуды и сглаженных колпачком. При низких значениях «i», скажем, i=10, импульс имеет ширину всего 10/255*2 мс или около 78 мкс. При низких значениях i поворот на 180 градусов должен произойти за то время, когда вы подаете импульс для вращения двигателя, ну, не совсем точно, но достаточно близко.

Большинство небольших двигателей постоянного тока являются двухполюсными, поэтому вы ожидаете хотя бы один поворот на 180 градусов за 5 x 78 мкс или примерно за 400 мкс. Это будет полный оборот примерно за 800 мкс, скажем, 1 мс, или 1000 оборотов за 1 секунду, или 60000 об/мин при старте с места, если рабочий цикл поддерживается постоянным. У вас очень мало мощности при низком «i», поэтому я был бы удивлен, если бы ее хватило, чтобы преодолеть трение и инерцию. Думаю, при более высоких значениях этого недостаточно для преодоления инерции.

Моторный колодец может работать при более высоких значениях "i", но тогда программа немедленно начинает обратный отсчет.

Поэтому я предлагаю вам начать счетчик, скажем, со 125 или даже выше. Также увеличьте задержку между прямым отсчетом и обратным отсчетом, чтобы вы могли увидеть эффект, прежде чем он снова начнет обратный отсчет. Я также хотел бы увеличить задержку между отсчетами, чтобы было больше времени для протекания тока в (индуктивных) обмотках двигателя. Помните, что индуктор сопротивляется изменению тока. Теперь, когда я думаю об этом, это, вероятно, важнее, чем инерция и трение.

Итак, вот задача... Сначала измените задержку между подсчетами и сообщите о своих результатах здесь. Затем сбросьте его и измените другой параметр и так далее. В конце концов вместе внесите ряд изменений... Мне любопытно посмотреть на результат.

Кстати, я подозреваю, что это звук пластин двигателя, меняющих форму на высокой частоте.

Ура! П

,

1

У меня была та же проблема, оказалось, что я неправильно настроил BJT. Я перепутал слив с коллектором.

,

3

Для удобства всех, кто читает книгу Джереми Блюма «Изучение Arduino», у кого возникла та же проблема: он неправильно пометил транзистор в книге, так что коллектор и эмиттер находятся задом наперед. Поверните транзистор в другую сторону, и ваша проблема будет решена.

,