вот у меня такой вопрос, я пока новичок в этом деле по ардуино, я смотрю у тебя плата ардуино какая то большая, какая это модель? и второй вопрос, монстр шилд подойдет на плату ардуино UNО ? Заранее благодарю за ответ
Подскажите если подключу на 7,8 и на 4,9 светодиодные ленты мощные, смогу шим сигналами програмно управлять яркостью лент? Мотор шилд меняет напряжение или ток?
+Petro Golovatyi ru.aliexpress.com/item/Free-Shipping-Monster-Moto-Shield-VNH2SP30-stepper-motor-driver-module-high-current-30A-for-arduino/2043047306.html?spm=2114.03020208.8.3.ad3fDJ это он? а вот на один мотор ru.aliexpress.com/item/Free-Shipping-30A-Mini-VNH2SP30-Stepper-Motor-Driver-Monster-Moto-Shield-module-For-Arduino/32247122784.html?detailNewVersion=2&spm=2114.14010208.99999999.262.Mobjl4
Пробежал три круга по футбольному полю (по тому самому, куда ты меня отправил), но требуемого скетча в комментариях так и не нашел. В любом случае огромное тебе СПАСИБО!
несколько ниже нашого разговора есть код, но я продублирую: Код для NANO #include #include #include const uint64_t pipe = 0xF0F1F2F3F4LL; // указываем идентификатор передачи, "труба" RF24 radio(3, 10); // указываем пины CE и CSN void setup(){ radio.begin(); delay(2); radio.setChannel(95); // выбираем канал от 0 до 126 - они имеют разную частоту radio.setDataRate(RF24_1MBPS); radio.setPALevel(RF24_PA_HIGH); radio.openWritingPipe(pipe); // открываем трубу на передачу. } void loop() { int Val[2]; //массив для передачи данных Val[0] = analogRead(4); //считываем значение с джойстиков в масив Val[1] = analogRead(3); radio.write(&Val, sizeof(Val)); // отправляем масив и указываем сколько байт пакет } Код для MEGA 2560 int y = 0; int x = 0; #include #include #include const uint64_t pipe = 0xF0F1F2F3F4LL; // указываем идентификатор передачи, "труба" RF24 radio(3, 10); // указываем пины CE и CSN void setup(){ // TCCR3B = TCCR1B & 0b11111000 | 0x02; //поднимаем частоту шим, если надо // TCCR4B = TCCR1B & 0b11111000 | 0x02; radio.begin(); delay(2); radio.setChannel(95); // выбираем канал от 0 до 126 - они имеют разную частоту radio.setDataRate(RF24_1MBPS); radio.setPALevel(RF24_PA_HIGH); radio.openReadingPipe(1,pipe); // открываем первую трубу с идентификатором "pipe" radio.startListening(); // включаем приемник, начинаем слушать трубу } void loop() { int Val[2]; //масив значений для приема if (radio.available()){ // проверяем не пришло ли что в буфер. radio.read(&Val, sizeof(Val)); // читаем данные, указываем сколько байт читать if (Val[0] < 1023 && Val[0] > 524) //обработка значений и запуск моторов { y = map (Val[0],524,1023,0,255); digitalWrite(8, LOW); digitalWrite(7, HIGH); analogWrite(5, y); } if (Val[1] < 1023 && Val[1] > 524) { x = map (Val[1],524,1023,0,255); digitalWrite(9, HIGH); digitalWrite(4, LOW); analogWrite(6, x); } if (Val[0] < 500 && Val[0] > 0) { y = map (Val[0],500,0,0,255); digitalWrite(7, LOW); digitalWrite(8, HIGH); analogWrite(5, y); } if (Val[1] < 500 && Val[1] > 0) { x = map (Val[1],500,0,0,255); digitalWrite(4, HIGH); digitalWrite(9, LOW); analogWrite(6, x); } } }
Вот это другое дело!!! Огромное тебе, Пётр, СПАСИБО! Теперь загружу код в MEGA 2560 и буду испытывать. Прошу прощения, что сразу не нашел нужный код. Удачи тебе и всех благ!!! С уважением, Мелехов Валерий.
Привет! Ниже в комментах прочитал что этот модуль сгорел. Он не выдержал нагрузки двигателя от шуруповёрта или был подключен другой двигатель? Мне нужно подключить мотор редуктор стеклоподъёмника от ВАЗа. У него потребляемый ток не более 8 А, но вот потребляемый ток при заблокированном выходном вале не более 28 А. Сгорит наверно если вдруг начнет буксовать?
Интересно! Жду продолжения.
+Maxim Kozlov спасибо
Петр, а почему не использовали BTS7960? У них разное назначение?
Интересно и информативно!! Спасибо
пожалуйста
СПАСИБО, Пётр!!!!
всегда пожалуйста
прикольно)) уже устал ждать результат...
+иван биленко спасибо, сейчас не могу подобрать редуктор или цепную передачу с нужным передаточным числом - за этим загвоздка
Привет скажи пожалуйста какая ардуино именно?
Спасибо Пётр.
Как драйверы? При каком токе уже критически греются?
у меня в роботе стоят моторы значительно помощнее и этот драйвер даже в режиме два канала на мотор сгорел за несколько секунд, там ток был около 70а.
Ну 70 это уже далеко за 15 которые по даташиту.
в проекте обороты двигателя цепным редуктором преобразовывали? или штатным от шуриков? только по этому видео разобрался с подключением шилда)
рад что видео помогло, в моем проэкте совсем другие моторы оказались: th-cam.com/video/aV3br_0VHp0/w-d-xo.html
вот у меня такой вопрос, я пока новичок в этом деле по ардуино, я смотрю у тебя плата ардуино какая то большая, какая это модель? и второй вопрос, монстр шилд подойдет на плату ардуино UNО ? Заранее благодарю за ответ
на уно подойдет, у меня плата мега
подписываюсь и жду робота
+ZikValera спасибо за подписку, робот в процессе - наверное прийдется заказывать у токаря нужные звездочки
Petro Golovatyi я тоже думаю, что без токаря будет сложно. При конструировании приходиться изготавливать детали, которых в природе не существует
ZikValera
все верно, но тут у меня токарки будет меньше чем на самодельном минитракторе
Подскажите если подключу на 7,8 и на 4,9 светодиодные ленты мощные, смогу шим сигналами програмно управлять яркостью лент? Мотор шилд меняет напряжение или ток?
+Евгений Ф Если к шилду подключены моторы, то меняется и напряжение и ток (при нагрузке), а светодиодные ленты через шим наверное ток не будут менять.
Здравствуйте. Не знаете ли, а писк моторов как то можно убрать?
надо поднять частоту шим
Спасибо большое за ответ. Попробую.
Владимир Баданов
всегда пожалуйста
How much maximum supply voltage and ampere capable For this shield??
16В, 14А
Как связаться с вами?
А шо с кодом? Есть?))
сколько ампер шуруповертам надо?
+Sbw Ua у меня получальсь до 10ампер
+Petro Golovatyi брали один шилд на оба мотора- для точности поворотов и управляемости не лучше на каждый мотор по шилду одномоторному?
Sbw Ua
думаю так даже точнее будет, кроме того не так просто и этот шилд было найти
+Petro Golovatyi ru.aliexpress.com/item/Free-Shipping-Monster-Moto-Shield-VNH2SP30-stepper-motor-driver-module-high-current-30A-for-arduino/2043047306.html?spm=2114.03020208.8.3.ad3fDJ
это он?
а вот на один мотор
ru.aliexpress.com/item/Free-Shipping-30A-Mini-VNH2SP30-Stepper-Motor-Driver-Monster-Moto-Shield-module-For-Arduino/32247122784.html?detailNewVersion=2&spm=2114.14010208.99999999.262.Mobjl4
Sbw Ua
вроде он только у вас пишет что для шагового мотора
Добрый день, Петр! Хороший получился видеоролик. Но хорошо бы было показать людям и сам код для загрузки в ардуино. Или это коммерческая тайна???
код есть в комментариях
Пробежал три круга по футбольному полю (по тому самому, куда ты меня отправил), но требуемого скетча в комментариях так и не нашел. В любом случае огромное тебе СПАСИБО!
несколько ниже нашого разговора есть код, но я продублирую:
Код для NANO
#include
#include
#include
const uint64_t pipe = 0xF0F1F2F3F4LL; // указываем идентификатор передачи, "труба"
RF24 radio(3, 10); // указываем пины CE и CSN
void setup(){
radio.begin();
delay(2);
radio.setChannel(95); // выбираем канал от 0 до 126 - они имеют разную частоту
radio.setDataRate(RF24_1MBPS);
radio.setPALevel(RF24_PA_HIGH);
radio.openWritingPipe(pipe); // открываем трубу на передачу.
}
void loop()
{
int Val[2]; //массив для передачи данных
Val[0] = analogRead(4); //считываем значение с джойстиков в масив
Val[1] = analogRead(3);
radio.write(&Val, sizeof(Val)); // отправляем масив и указываем сколько байт пакет
}
Код для MEGA 2560
int y = 0;
int x = 0;
#include
#include
#include
const uint64_t pipe = 0xF0F1F2F3F4LL; // указываем идентификатор передачи, "труба"
RF24 radio(3, 10); // указываем пины CE и CSN
void setup(){
// TCCR3B = TCCR1B & 0b11111000 | 0x02; //поднимаем частоту шим, если надо
// TCCR4B = TCCR1B & 0b11111000 | 0x02;
radio.begin();
delay(2);
radio.setChannel(95); // выбираем канал от 0 до 126 - они имеют разную частоту
radio.setDataRate(RF24_1MBPS);
radio.setPALevel(RF24_PA_HIGH);
radio.openReadingPipe(1,pipe); // открываем первую трубу с идентификатором "pipe"
radio.startListening(); // включаем приемник, начинаем слушать трубу
}
void loop()
{
int Val[2]; //масив значений для приема
if (radio.available()){ // проверяем не пришло ли что в буфер.
radio.read(&Val, sizeof(Val)); // читаем данные, указываем сколько байт читать
if (Val[0] < 1023 && Val[0] > 524) //обработка значений и запуск моторов
{
y = map (Val[0],524,1023,0,255);
digitalWrite(8, LOW);
digitalWrite(7, HIGH);
analogWrite(5, y);
}
if (Val[1] < 1023 && Val[1] > 524)
{
x = map (Val[1],524,1023,0,255);
digitalWrite(9, HIGH);
digitalWrite(4, LOW);
analogWrite(6, x);
}
if (Val[0] < 500 && Val[0] > 0)
{
y = map (Val[0],500,0,0,255);
digitalWrite(7, LOW);
digitalWrite(8, HIGH);
analogWrite(5, y);
}
if (Val[1] < 500 && Val[1] > 0)
{
x = map (Val[1],500,0,0,255);
digitalWrite(4, HIGH);
digitalWrite(9, LOW);
analogWrite(6, x);
}
}
}
Вот это другое дело!!! Огромное тебе, Пётр, СПАСИБО! Теперь загружу код в MEGA 2560 и буду испытывать. Прошу прощения, что сразу не нашел нужный код. Удачи тебе и всех благ!!! С уважением, Мелехов Валерий.
Валерий Мелехов
всегда пожалуйста
Hello
Monster Moto Shield VNH2SP30 + bluetooth ch05 + arduino uno
I want to control my dc motor with Bluetooth circuit
МТ ти бистріше склав)))
+Юра Круглый МТ складав разом з пошуком запчастин більше року...
А можно схему подключения скинуть?
схему не рисовал, посмотрите внимательно это видео и там все понятно, есть еще видео о подключении радиомодулей
Пересмотрел Все. Остались вопросы. может в Протеусе есть? А два мотор шилда как подключить?
Alexey Melnikov
в видео сказано какие пины монстра за что отвечают - на них вы и подавайте нужные сигналы
Привет! Ниже в комментах прочитал что этот модуль сгорел. Он не выдержал нагрузки двигателя от шуруповёрта или был подключен другой двигатель? Мне нужно подключить мотор редуктор стеклоподъёмника от ВАЗа. У него потребляемый ток не более 8 А, но вот потребляемый ток при заблокированном выходном вале не более 28 А.
Сгорит наверно если вдруг начнет буксовать?
У меня монстр сгорел на 750Ватном моторе, хотя я и подключал два канала модуля на один мотор
ну так на 12В это и есть 62А, а радиаторы стояли?
code?
Вот скажите он правда держит более 10А О_о?!?
Без радиатора О_о?
не проверял
code please ?
Код для NANO
#include
#include
#include
const uint64_t pipe = 0xF0F1F2F3F4LL; // указываем идентификатор передачи, "труба"
RF24 radio(3, 10); // указываем пины CE и CSN
void setup(){
radio.begin();
delay(2);
radio.setChannel(95); // выбираем канал от 0 до 126 - они имеют разную частоту
radio.setDataRate(RF24_1MBPS);
radio.setPALevel(RF24_PA_HIGH);
radio.openWritingPipe(pipe); // открываем трубу на передачу.
}
void loop()
{
int Val[2]; //массив для передачи данных
Val[0] = analogRead(4); //считываем значение с джойстиков в масив
Val[1] = analogRead(3);
radio.write(&Val, sizeof(Val)); // отправляем масив и указываем сколько байт пакет
}
Код для MEGA 2560
int y = 0;
int x = 0;
#include
#include
#include
const uint64_t pipe = 0xF0F1F2F3F4LL; // указываем идентификатор передачи, "труба"
RF24 radio(3, 10); // указываем пины CE и CSN
void setup(){
// TCCR3B = TCCR1B & 0b11111000 | 0x02; //поднимаем частоту шим, если надо
// TCCR4B = TCCR1B & 0b11111000 | 0x02;
radio.begin();
delay(2);
radio.setChannel(95); // выбираем канал от 0 до 126 - они имеют разную частоту
radio.setDataRate(RF24_1MBPS);
radio.setPALevel(RF24_PA_HIGH);
radio.openReadingPipe(1,pipe); // открываем первую трубу с идентификатором "pipe"
radio.startListening(); // включаем приемник, начинаем слушать трубу
}
void loop()
{
int Val[2]; //масив значений для приема
if (radio.available()){ // проверяем не пришло ли что в буфер.
radio.read(&Val, sizeof(Val)); // читаем данные, указываем сколько байт читать
if (Val[0] < 1023 && Val[0] > 524) //обработка значений и запуск моторов
{
y = map (Val[0],524,1023,0,255);
digitalWrite(8, LOW);
digitalWrite(7, HIGH);
analogWrite(5, y);
}
if (Val[1] < 1023 && Val[1] > 524)
{
x = map (Val[1],524,1023,0,255);
digitalWrite(9, HIGH);
digitalWrite(4, LOW);
analogWrite(6, x);
}
if (Val[0] < 500 && Val[0] > 0)
{
y = map (Val[0],500,0,0,255);
digitalWrite(7, LOW);
digitalWrite(8, HIGH);
analogWrite(5, y);
}
if (Val[1] < 500 && Val[1] > 0)
{
x = map (Val[1],500,0,0,255);
digitalWrite(4, HIGH);
digitalWrite(9, LOW);
analogWrite(6, x);
}
}
}