Официальный сайт компании Arduino по адресу arduino.cc
Помогите Подправить код.
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Сб, 16/02/2019 - 17:35
Нужно добавить в скетч возможность плавно стартовать и останавливать DC мотор. Пытался добавить строки из примеров которые шли с драйвером, но ничего не выходит, знаний не хватает. Строки прилагаю, скетч по запросу. Спасибо.
#include <SoftwareSerial.h> #include <Sabertooth.h> SoftwareSerial SWSerial(NOT_A_PIN, 11); // RX on no pin (unused), TX on pin 11 (to S1). Sabertooth ST(128, SWSerial); // Address 128, and use SWSerial as the serial port. void setup() { SWSerial.begin(9600); ST.autobaud(); } void loop() { int power; // Ramp from -127 to 127 (full reverse to full forward), waiting 20 ms (1/50th of a second) per value. for (power = -127; power <= 127; power ++) { ST.motor(1, power); delay(20); } // Now go back the way we came. for (power = 127; power >= -127; power --) { ST.motor(1, power); delay(20); } }
Стесняюсь спросить у такого продвинутого кодера - а чего делаем-то? Схема есть или это выше Ваших пониманий? А алгоритм? (ну тут наверное совсем не в кассу...)
Прикольный мотор. По чему-то типа RS232/RS485 управляется? Помню, что с похожим тринамиком мы долго долбались, пока поняли что и как надо делать ))
Ну не уверен что этот код вам поможет
Вместо ЛЕД мотор ?
https://www.youtube.com/watch?v=VVQHvDu9Ohk
Извиняюсь, отсутствовал.
qwone, спасибо что откликнулись и за попытку помочь. У вас что-то близкое к решению моей задачи. Не хотел публиковать скетч, т.к. одолжил его у приятеля, но думаю не велика его ценность, публикую..
Кратко о проекте. Телега управляемая RC аппаратурой, будет кататься по горизонтально натянутому канату. Задача избавиться от резких стартов и остановок, которые паразитно сказываются на работе всей системы в целом. Из за резкого торможения и набора скорости, канат начинает колбасить, что сводит на нет всю работу системы. Собственно это все.
А с 25 по 30 строку это что и зачем, по Вашему? Если сами не знаете, то спросите у приятеля. По мне - так сущий бред.
Прямо сейчас убрал эти строки, скетч компилируется, но мотор на команды не реагирует. Я так понимаю это привязка к приемнику. Приятель тоже не силен в программировании. Он где-то на просторах инета его раздобыл.
Замечательно! Теперь смотрим на строки 37-38. Они тоже ничего не делают.
Да и вообще - Ваша программа ничего не делает. Она должна изменять скорость по каким-то условиям, но по факту скорость (speed) зависит от rc1_val, которая никак не изменяется, да и вообще ее значение не определено. Короче - пустышка.
Советую Вам до программирования расписать алгоритм работы Вашего устройства, но не как вначале "на отвали", а вдумчиво. Такой-то датчик (или кнопка) подает сигнал туда-то, если сигнал такой, то скорость снижается на столько-то за такой-то промежуток времени, если сигнал такой, то ускоряется до - за... И т.д. Программа пишется на основании алгоритма работы, а не на том, что Вы где-то скопировали не понимая что.
Кстати, не могу не упомянуть, что на тринамике, с которым я имел дело, акселерация задается отдельной командой и извращений с разгоном через МК не требуется. Не исключено, что нужно несколько раз прочесть документацию на движок.
Вот и я о том же. В примерах драйвера эти команды имеются и прекрасно сами по себе работают, вот только внедрить их в имеющийся скетч никак у меня не выходит.
Для mykaida Я вообще ни капли не программист, немного почитал форум и попробовал некоторые безделушки сделать самостоятельно, но все это начальный уровень. То что мне нужно, хорошо показано в нижеприведенном ролике. Смотрите с 3:06 по 3:18. Скетч что выше работает линейно, а надо с акселерацией как на ролике.
https://www.youtube.com/watch?v=zwbO7pN-BA4
На видео мотор управляется через L298N, а не через RS232 или типа того. Это может оказаться совершенно разными вещами.
Моё мнение: простые советы Вам могут не помочь, нужны специфические знания о том, чем Вы пытаетесь рулить.
Вы абсолютно правы. Ролик я привел в пример для того, чтобы было понятно о чем идет речь. ПДФ используемого мною в этом проекте драйвера можно посмотреть по ссылке: https://www.dimensionengineering.com/datasheets/SyRen50.pdf
Скачать к нему необходимые библиотеки с примерами можно тут: https://www.dimensionengineering.com/info/arduino
Скажите, а зачем смотреть PDF и устанавливать библиотеки. Это ведь вам нужно, а не нам. И что означает единица в строке ST.motor(1, power);. Кажется адрес задавали 128 или это так надо?