Я новичок в Arduino и электронике в целом, но мне нужна помощь в проекте, над которым я работаю. По сути, я хочу иметь возможность управлять состоянием (вкл./выкл.) и направлением двух линейных приводов, которые на самом деле являются двигателями постоянного тока.
Это кажется простым, но проблема в том, что линейные приводы имеют питание 12 В постоянного тока и потребляют 10 ампер тока при полной нагрузке. Я купил внешний блок питания на 25 А, потому что очевидно, что микроконтроллер Arduino не может обеспечить такой большой ток.
Я что-то видел об использовании H-моста для управления направлением каждого двигателя, а затем я прочитал что-то об использовании реле, которое действует как электромеханический переключатель для получения тока от источника питания. Может ли кто-нибудь помочь мне или нарисовать принципиальную схему того, как это выглядит, чтобы я мог собрать это вместе? Я хотел бы знать, как все это работает, и я знаю, что, вероятно, сложно начинать с электроники, но я хочу узнать об этом как можно больше.
Вы можете использовать любой 12-вольтовый регулятор скорости, который принимает ШИМ-сигнал. Таких контроллеров много. Проверьте eBay и Google.
То, что вы будете делать, это использовать сигнал PWM от Arduino для управления регулятором скорости, который «регулирует» напряжение на двигателе. Таким образом, источник питания для двигателя полностью независим от Arduino.
Лично у меня есть опыт использования регуляторов скорости Talun и Jaguar . Они оба очень дорогие, но они дадут вам представление о том, с чего начать поиски.
Взгляните на Pololu High-Power Motor Driver 18v15 . Казалось бы, он соответствует (и даже превосходит) ваши потребности. Я купил один из них на прошлой неделе, и он должен прибыть завтра. Я отредактирую этот ответ своим обзором.
27.03.13
Получил вчера поздно вечером на почте. Собрал сегодня вечером. Завтра будем тестировать.
07.04.13
Мое время с коммутатором было коротким, но невероятно продуктивным. Лодка, в которую был помещен коммутатор, в конце концов затонула, унеся с собой GPS, XBee, Arduino и коммутатор. Переключатель был очень прост в использовании. Пайка прошла быстро, и входящий в комплект конденсатор отлично подошёл для моих целей. Положительная клемма моей батареи подключена к V+
заголовку, а отрицательная клемма подключена к GND
заголовку. Провода двигателя подключены к разъемам OUTA
и OUTB
. Полярность для этих двух разъемов не имеет значения, так как устройство способно ее переключать.
Что касается логики, я подключил контакт Arduino GND
к разъему переключателя GND
. Я не использовал индикаторы флагов FF1
и FF2
ошибок, но их чтение так же просто, как digitalRead
если бы они были подключены к Arduino. Пинцет RESET
действительно удобен в использовании. Просто используйте digitalWrite(resetPin, LOW);
, чтобы перевести плату в спящий режим (это также устраняет любые ошибки). Верните его обратно на высокий уровень, чтобы возобновить нормальную работу.
Есть два способа работы с платой, но я расскажу только о том, который использовал сам, и считаю, что он проще. PIN - DIR
код должен считаться цифровым. Таким образом, вы настраиваете его так же, как любой обычный цифровой выходной контакт на Arduino. Вы тяните штифт HIGH
в одном направлении и LOW
в противоположном направлении. Это эффективно меняет полярность на заголовки OUTA
и OUTB
. Вывод PWM
должен быть подключен к выводу с поддержкой ШИМ на Arduino. На Arduino Uno это контакты 3, 5, 6, 9, 10 и 11. Убедитесь, что выбранный вами контакт не блокируется прерыванием таймера. Управлять скоростью двигателя так же просто, как использовать analogWrite
контакт с номером от 0 (остановлен) до 255 (полная скорость). map
функция будет действительно полезна здесь. Вы можете использовать его, чтобы взять любой разумный диапазон и преобразовать его в нужный вам диапазон (в данном случае 0-255). Я использовал его, чтобы уменьшить 0-255 до 0-100, чтобы создать процент тяги, который я мог бы отобразить, но в этом случае я мог бы просто разделить число на 2,55. ;) Посмотрите этот коммит на GitHub , чтобы увидеть, как я его реализовал. В отличие от этой фиксации, вам не нужно использовать pinMode
вывод PWM.
Единственная «проблема», с которой я столкнулся с платой, заключалась в том, что при работе двигателя он создавал звуковой сигнал в зависимости от скорости. На полной скорости это не было заметно, но на более низких скоростях это было заметно. Я не исправил эту проблему до того, как лодка затонула, но мне сказали, что ее можно решить с помощью библиотеки частот PWM Arduino .
Я надеюсь, что это поможет вам и весело провести время с водителем двигателя. Я определенно купил бы другой, если бы ситуация потребовала этого. Обязательно загляните на страницу продукта Pololu, чтобы получить очень подробное описание всего чипсета.
Это может быть проще и дешевле, если вы использовали реле DPDT для изменения направления вращения двигателя. Вот схема того, что я имею в виду:
смоделируйте эту схему - схема, созданная с помощью CircuitLab
Вывод микроконтроллера, который вы используете на силовом транзисторе (обозначен Q2 на схеме), позволит току течь через реле, направление тока через двигатель зависит от состояния реле. Я использовал эту схему во многих проектах из-за ее простоты, стоимости и присущей реле надежности.
*Небольшое замечание: транзистор, использованный в схеме, не рассчитан на ток 10 ампер. Мне повезло с парным транзистором Дарлингтона tip142, в техническом паспорте указано, что он может выдерживать непрерывный ток 10 ампер. Спецификация: http://www.alldatasheet.com/datasheet-pdf/pdf/25370/STMICROELECTRONICS/TIP142.html
*Убедитесь, что конденсатор, который вы используете в двигателе, может выдерживать много сотен вольт.
* Катушке реле потребуется что-то, чтобы управлять ею, что может потребовать нескольких конфигураций в зависимости от используемого реле.
* Что касается стоимости, реле может стоить до четырех или пяти долларов, то же самое для транзистора.
Грег Харрингтон
Кевин Марк
Грег Харрингтон
Кевин Марк