Оформи код соответствующим тэгом
Добрый день
Захотел управлять пятью серво sg90 при помощи arduino nano, взял два блока питания, один на 5 вольт 2 ампера и запитал от него ардуино, и мощьный блок питания с быстрой зарядкой, им запитал все сервоприводы. в итоге к ардуино у меня сейчас подключается только 5 проводов к пинам D8,9,10,11,12. Во время запуска ардуина начинает лагать а сервоприводы дёргаются на пару милимтеров туда сюда, если подключить ардуино к повербанку по usb(быстрая зарядка), начинает работать лучше, но периодически ардуина перезагружается, это заметно по порядку выполнения скетча. Схема и скетч ниже
У меня есть два предположения:
1-Шумы
2-Нехватка напряжения
Если 1 то наверное можно поставить на D8,9,10,11,12 диоды? Поможет? Так решаются эти проблемы?
Если 2 то даже не представляю что делать
#include <Servo.h>
Servo servo1; // Создаем объект
Servo servo2; // Создаем объект
Servo servo3; // Создаем объект
Servo servo4; // Создаем объект
Servo servo5; // Создаем объект
void setup()
{
servo1.attach(8); // Указываем объекту класса Servo, что серво присоединен к пину 9
servo2.attach(9); // Указываем объекту класса Servo, что серво присоединен к пину 9
servo3.attach(10); // Указываем объекту класса Servo, что серво присоединен к пину 9
servo4.attach(11); // Указываем объекту класса Servo, что серво присоединен к пину 9
servo5.attach(12); // Указываем объекту класса Servo, что серво присоединен к пину 9
servo1.write(0); // Выставляем начальное положение
servo2.write(0); // Выставляем начальное положение
servo3.write(0); // Выставляем начальное положение
servo4.write(0); // Выставляем начальное положение
servo5.write(0); // Выставляем начальное положение
}
void loop()
{
servo1.write(0); // Выставляем начальное положение
servo2.write(0); // Выставляем начальное положение
servo3.write(0); // Выставляем начальное положение
servo4.write(0); // Выставляем начальное положение
servo5.write(0); // Выставляем начальное положение
delay(1000);
servo1.write(180); // Выставляем начальное положение
servo2.write(180); // Выставляем начальное положение
servo3.write(180); // Выставляем начальное положение
servo4.write(180); // Выставляем начальное положение
servo5.write(180); // Выставляем начальное положение
delay(1000);
}
Захотел управлять пятью серво sg90 при помощи arduino nano, взял два блока питания, один на 5 вольт 2 ампера и запитал от него ардуино, и мощьный блок питания с быстрой зарядкой, им запитал все сервоприводы. в итоге к ардуино у меня сейчас подключается только 5 проводов к пинам D8,9,10,11,12. Во время запуска ардуина начинает лагать а сервоприводы дёргаются на пару милимтеров туда сюда, если подключить ардуино к повербанку по usb(быстрая зарядка), начинает работать лучше, но периодически ардуина перезагружается, это заметно по порядку выполнения скетча. Схема и скетч ниже
У меня есть два предположения:
1-Шумы
2-Нехватка напряжения
Если 1 то наверное можно поставить на D8,9,10,11,12 диоды? Поможет? Так решаются эти проблемы?
Если 2 то даже не представляю что делать
#include <Servo.h>
Servo servo1; // Создаем объект
Servo servo2; // Создаем объект
Servo servo3; // Создаем объект
Servo servo4; // Создаем объект
Servo servo5; // Создаем объект
void setup()
{
servo1.attach(8); // Указываем объекту класса Servo, что серво присоединен к пину 9
servo2.attach(9); // Указываем объекту класса Servo, что серво присоединен к пину 9
servo3.attach(10); // Указываем объекту класса Servo, что серво присоединен к пину 9
servo4.attach(11); // Указываем объекту класса Servo, что серво присоединен к пину 9
servo5.attach(12); // Указываем объекту класса Servo, что серво присоединен к пину 9
servo1.write(0); // Выставляем начальное положение
servo2.write(0); // Выставляем начальное положение
servo3.write(0); // Выставляем начальное положение
servo4.write(0); // Выставляем начальное положение
servo5.write(0); // Выставляем начальное положение
}
void loop()
{
servo1.write(0); // Выставляем начальное положение
servo2.write(0); // Выставляем начальное положение
servo3.write(0); // Выставляем начальное положение
servo4.write(0); // Выставляем начальное положение
servo5.write(0); // Выставляем начальное положение
delay(1000);
servo1.write(180); // Выставляем начальное положение
servo2.write(180); // Выставляем начальное положение
servo3.write(180); // Выставляем начальное положение
servo4.write(180); // Выставляем начальное положение
servo5.write(180); // Выставляем начальное положение
delay(1000);
}
Вложения
-
309.7 KB Просмотры: 14
-
333.7 KB Просмотры: 14
Изменено: