Двигатель моего торгового автомата постоянного тока 12 В иногда вращается на 1 дополнительный оборот на 360 градусов. Какие могут быть причины?
иметь главную плату с цепью управления двигателем, а также рядами и столбцами для управления рядами и столбцами торгового автомата.
Я внес изменения в мотор двумя способами:
А. Я прикрепил изображение для схемы
В этом дизайне у меня есть плюсы и минусы
ПЛЮСЫ: 1. Останавливается в исходном положении после одного оборота. 2. Обнаруживает строку и столбец машины
МИНУСЫ: 1. Иногда он не останавливается в исходном положении или совершает более 1 оборота
Б. Я прикрепил изображение другой диаграммы
В этом дизайне тоже есть свои плюсы и минусы
ПЛЮСЫ: 1. Он идеально останавливается в исходном положении после одного оборота.
МИНУСЫ: 1. Не обнаруживает ROW
Пожалуйста, предложите, что я должен следовать и что я должен внести изменения в схему.
Вот видео
https://drive.google.com/open?id=1N7ItjeU84JiDAOquAD6SGHkVWufDT40K
https://drive.google.com/open?id=1VX9yncrm6pcr1IBQsNvVZ1yR0UMflJKA
@sugandha sharma, 👍-1
Обсуждение1 ответ
"Он немного поворачивается вперед, например, на 10 % больше, с задержкой 3,1 секунды"
"Я просто хочу повернуть двигатель из исходного положения в исходное положение, когда я подам сигнал один раз. Но я не знаю, какую временную задержку мне следует использовать?"
Больше 2,0 и меньше 3,1! Если 3,1 сек дает 110% вращение, то нужно (100/110)*3,1 = 2,818 сек. для получения 100%.
Я понимаю, что дополнительные 10 % – это приблизительная оценка, не соответствующая трем знакам после запятой, но я бы использовал 2,82 в качестве отправной точки и увеличивал или уменьшал ее, пока не получите желаемое значение поворота.
Помните, что синхронизация двигателя для достижения расстояния по своей природе будет неточной из-за несоответствия скорости ускорения и скорости вращения двигателя, из-за различий в его температуре, напряжении питания и нагрузке, но это должно помочь вам начать. Для долгосрочной точности, т. е. если вам нужно, чтобы он всегда возвращался в фиксированное положение, вам понадобится некоторая обратная связь по положению, которая может быть такой же простой, как флажок на валу двигателя, прерывающий фотоэлемент. И даже это будет иметь некоторую степень несоответствия из-за скорости движения по инерции, когда вы отключите питание, но, по крайней мере, эти ошибки не будут накапливаться.
Обновление:
2.82, Мой мотор каждый раз вращается на 10 % меньше и меняет свое положение при каждом обороте
Справа — 2,82 было первым приближением. Если это слишком мало, попробуйте разделить разницу между 2,81 и 3,1. Если это окажется слишком маленьким, разделите разницу между ним и 3,1; или если он был слишком большим, попробуйте разделить разницу между 2.1 и им. Сделайте это еще несколько раз, пока не получите приемлемо близкое значение.
Тогда прочитайте, что я сказал о накоплении ошибок. Arduino никогда не знает, каково положение двигателя, поэтому он не может скорректировать любое превышение или недорегулирование. Если вам нужна точность и повторяемость, вам придется добавить какое-то определение положения или переключиться на использование шагового двигателя и управлять количеством шагов, которое делает один полный оборот (и его все равно придется запускать из известного положения ).
Какая обратная связь по позиции? У двигателя есть концевой выключатель, но я не мог управлять концевым выключателем. Можете ли вы помочь мне в этом?, @sugandha sharma
С 2.82 мой двигатель каждый раз вращается на 10% меньше и меняет свое местоположение при каждом обороте., @sugandha sharma
@sugandhasharma Вероятно, управление двигателем так, как вы пытаетесь, работает более или менее правильно только для нескольких оборотов. Благодаря количеству катушек/магнитов двигатель имеет стабильные положения под определенными углами. Остановка в положениях между этими углами может не сработать., @Sim Son
@Sim Son Если вы знаете об этом, пожалуйста, дайте мне знать. Я также приложил блок-схему и видео. https://drive.google.com/open?id=15CmMVI410zq1Vc2Wl7yseq9n4T8Q1rMm, @sugandha sharma
Я чувствую, что вы, возможно, создаете решение, которое будет работать только в течение короткого периода времени. Время, которое вы рассчитаете, будет соответствовать условиям окружающей среды, которые у вас есть прямо сейчас. Поскольку температура, влажность и возраст двигателя меняются, трение будет меняться, что, вероятно, повлияет на количество времени, которое двигатель должен быть активным, чтобы добраться до желаемого положения. Вы должны серьезно подумать о подходе, который говорит «Я здесь», когда мотор достигает желаемого положения. Это упомянутый ответ @jrobert как «обратная связь по позиции», вы должны исследовать (искать) его., @GMc
В этом двигателе есть концевой микропереключатель, но он не работает. Общий переключатель подключен к земле через модуль MOSFET. NO подключен к земле через модуль MOSFET. Он запускает двигатель, но не останавливается на своем исходном месте., @sugandha sharma
Если это так, то вам нужно это исправить. Либо почините переключатель на двигателе (вероятно, это непросто), либо сделайте отдельный переключатель, который будет работать рядом с двигателем., @GMc
Еще одна проблема, о которой я забыл упомянуть в своем комментарии выше (но упоминается в ответе), — это накопление ошибки. Допустим, вы можете полностью остановить двигатель в пределах 0,1 мм от того места, где он должен работать, используя только время. Это очень хорошо, но всего через 10 циклов он сместится на 1 см. После 100 циклов он сместится на 1 см и так далее. Как упомянул jrobert, обратная связь по положению может избежать этой проблемы., @GMc
Кто-нибудь знает причину? Это действительно очень важно для меня., @sugandha sharma
Если цепь переключателя не останавливает двигатель, проверьте саму цепь переключателя. Это действительно прерывает питание? Если он останавливает двигатель, но позволяет ему двигаться по инерции за пределами дома, вам может потребоваться использовать более низкую скорость двигателя, чтобы уменьшить движение по инерции., @JRobert
- Управление скоростью вентилятора с помощью библиотеки Arduino PID
- Как устранить шум от вентилятора 12 В с ШИМ-управлением на низкой скорости
- Arduino uno + cnc Shield v3 + драйвер шагового двигателя A4988 + AccelStepper?
- Как заставить сервопривод вращаться на угол больше 180°
- Почему Adafruit motor shield не крутит моторы?
- Как управлять 6 шаговыми двигателями с помощью Arduino?
- Пропорциональный контроль расхода воды
- L298N Dual Motor Controller Enable Pin имеет питание, но двигатели не работают
он вращается дополнительно, потому что он запрограммирован на это, @jsotola
Вы запрограммировали задержку в 3,1 секунды, но ваши комментарии говорят о том, что вы планировали задержку в 2 секунды. Вы видите на 50 % дополнительную ротацию?, @JRobert
Я тестировал его с разными временными задержками. Забыл удалить комментарий., @sugandha sharma
Не 50% дополнительно. Он немного вращается вперед, например, на 10% больше с задержкой 3,1 секунды,, @sugandha sharma
Почему вы выбрали 2 секунды? Разве более короткая задержка не даст желаемого поворота?, @JRobert
Я не выбрал 2 секунды. Это только что было написано в комментариях., @sugandha sharma
Я просто хочу повернуть двигатель из исходного положения в исходное положение, когда я подаю сигнал один раз. Но я не знаю, какую задержку времени я должен использовать?, @sugandha sharma
Посмотрите это видео https://drive.google.com/open?id=15CmMVI410zq1Vc2Wl7yseq9n4T8Q1rMm, @sugandha sharma
для чего используются контакты NO и NC?, @jsotola
выяснить ... использовать омметр, чтобы узнать, когда концевой выключатель замыкается или размыкается, @jsotola
@sugandhasharma, каковы результаты тестирования коммутатора?, @jsotola
jsotola, когда переключатель не нажат, C подключается к NC, а когда переключатель нажат, C подключается к NO., @sugandha sharma