Два регулятора с одним потенциометром
- Войдите на сайт для отправки комментариев
Пнд, 07/05/2018 - 21:02
Добрый день, коллеги! Вопрос такого характера, имею ардуино, потенциометр и два регулятора оборотов подключенных к бессколекторным двигателям.
Суть вопроса, как реализовать в коде, чтобы один из моторов, при вращении потенциометра, вращался в 2,3 или 4 раза медленнее, по отношению ко второму. Код предоставляю.
#include <Servo.h> Servo motor_left; Servo motor_right; int mot_pin_left = 1; //Подключаем левый мотор к пину 1 int mot_pin_right = 2; //Подключаем правый мотор к пину 2 int js_position = 1500; //Начальная позиция, всегда 1.5 мс для регуляторов бесколлекторных двигателей int max_position = 2300; //Максимальное значение ШИМ 2.3 мс int min_position = 800; //Минимальное значени ШИМ 0.8 мс int start = 1; //Флаг задержки запуска void setup() { motor_left.attach(mot_pin_left, js_position, max_position); //Инициальзация левого мотора (порт, начальная позиция, максимальная позиция) !!! motor_right.attach(mot_pin_right, js_position, max_position); //Инициальзация правого мотора (порт, начальная позиция, максимальная позиция) !!! } void loop() { //Начальная установка регуляторов в нулевое положение if(start == 1) { motor_left.write(js_position); motor_right.write(js_position); delay(700); start = 0; } js_position = analogRead(A0); //Считывание положения потенциометра js_position = map(js_position, 0, 1023, 75, 140); //Преобразование положения потенциометра в угол поворота motor_left.write(js_position); //Записываем положение и отправляем на регулятор левого мотора motor_right.write(js_position); //Записываем положение и отправляем на регулятор правого мотора delay(20); //Задержка цикла 20 мс }
Суть вопроса, как реализовать в коде, чтобы один из моторов, при вращении потенциометра, вращался в 2,3 или 4 раза медленнее, по отношению ко второму. Код предоставляю.
Здравствуйте! Введите переменную, которая будет зависеть от положения резистора, и будет собой представлять делитель на 2, 3 или 4.
Спасибо, понял, но какое значение делить на 2,3,4?
значение , которое Вы передаете на тот мото, который должен крутиться медленнее.
Можно так попробовать.
А зачем Вам так надо сделать?
я так понял речь о скорости, а не о угле поворота.
Да, о скорости вращения мотора
Теперь правый мотор совем не крутится.
Делаю для машинки, чтобы передние колеса крутились быстрее задних.
Теперь правый мотор совем не крутится.
Делаю для машинки, чтобы передние колеса крутились быстрее задних.
Не крутится - выведите в монитор значения которые получаются, и срасните с теми, которые Вы хотели бы увидеть.
Мотор крутится в промежутке от 79 до 140, при делении на 2, значения не попадают в этот диапазон. Получается надо как-то выставить минимум 79, и максимум, напрмер, 100. А как?
Мотор крутится в промежутке от 79 до 140, при делении на 2, значения не попадают в этот диапазон. Получается надо как-то выставить минимум 79, и максимум, напрмер, 100. А как?
Мотор крутится в промежутке от 79 до 140, при делении на 2, значения не попадают в этот диапазон. Получается надо как-то выставить минимум 79, и максимум, напрмер, 100. А как?
А смысл? Как Вы потом собираетесь делить это на 2 и на 4? Оно же из интервала вылетит.
Тогда уж дедлить надо не само число, а его превышение над 79.
Я так понимаю, что человеку нужно, чтобы один из моторов крутился в 2 раза медленнее второго.
Вне зависимости от нагрузки.
И законы физики его не волнуют.
Если на один мы подаем 79, то сколько надо подавать на второй, чтобы он крутился вдвое медленнее?
спасибо, этот способ работает!!!
Я так понимаю, что человеку нужно, чтобы один из моторов крутился в 2 раза медленнее второго.
Вне зависимости от нагрузки.
И законы физики его не волнуют.
Если на один мы подаем 79, то сколько надо подавать на второй, чтобы он крутился вдвое медленнее?
Здравствуйте, 79 это минимальное значение. И была задача чтобы переднее шасси крутилось быстрее чем заднее. И нужно было чтобы при увеличении газа, переднее шасси увеличивал скорость, а заднее шасси увеличивал скорость медленнее.
Думаю, что тут вам нужно почитать про алгоритмы разгона/торможения моторов в 3D принтерах. Вам нужна трапециевидная характеристика, только для одного мотора (пары моторов) с более пологим боковыми сторонами. Тогда шасси будут разгонятся с разными ускорениями, но в итоге выйдут на одно и то же значение.