цифровая электроника
вычислительная техника
встраиваемые системы

 
» » » Как подключить к Arduino несколько серводвигателей и управлять ими в произвольном порядке



Как подключить к Arduino несколько серводвигателей и управлять ими в произвольном порядке

Автор: Mike(admin) от 17-11-2023, 03:55

В рамках данного проекта рассматривается, как подключить несколько серводвигателей к Arduino и заставить их запускаться случайным образом, а также случайным образом задерживать свои валы в пределах заданного диапазона.


Как подключить к Arduino несколько серводвигателей и управлять ими в произвольном порядке

Для начала подключим несколько сервоприводов к Arduino UNO, как показано на следующей схеме подключения.


Как подключить к Arduino несколько серводвигателей и управлять ими в произвольном порядке

У Uno есть проблемы с постоянным питанием нескольких сервоприводов напряжением 5 В, поэтому мы рекомендуем использовать источник питания 5 В. Сигнальные провода подключатся к контактам Uno 9, 10 и 11, а питание и земля каждого сервопривода должны быть подключены к источнику питания. Убедитесь, что вы подключили заземление источника питания к заземлению Uno.


Подключите Arduino к компьютеру и откройте новый скетч в Arduino IDE. Скопируйте и вставьте следующий код.



Servo tail; // создаем объект для управления сервомотором
Servo head; // создаем объект для управления сервомотором
Servo eyes; // создаем объект для управления сервомотором
// данным образом может быть создано до 12 объектов для Arduino Uno

void loop_tail() {
 int t1 = random(0, 170); // определяем переменную и устанавливаем величину шага сервопривода от 0 до 170 градусов
 int t2 = random(500, 800); // определяем переменную и устанавливаем случайную задержку 
 int t3 = random(400, 1000); // определяем переменную и устанавливаем нейтральную случайную задержку

 tail.write(t1); // делаем положение сервопривода случайным
 delay(t2); // запускаем случайную задержку
 tail.write(0); // сбрасываем сервопривод в нейтральное положение
 delay(t3); // запускаем нейтральную случайную задержку
}

void loop_head() {
 int h1 = random(0, 170); // определяем переменную и устанавливаем величину шага сервопривода от 0 до 170 градусов
 int h2 = random(500, 800); // определяем переменную и устанавливаем случайную задержку
 int h3 = random(400, 1000); // определяем переменную и устанавливаем нейтральную случайную задержку

 head.write(h1); // делаем положение сервопривода случайным
 delay(h2); // запускаем случайную задержку
 head.write(0); // сбрасываем сервопривод в нейтральное положение
 delay(h3); // запускаем нейтральную случайную задержку
}

void loop_eyes() {
 int e1 = random(0, 170); // определяем переменную и устанавливаем величину шага сервопривода от 0 до 170 градусов
 int e2 = random(500, 800); // определяем переменную и устанавливаем случайную задержку 
 int e3 = random(400, 1000); // определяем переменную и устанавливаем нейтральную случайную задержку     

 eyes.write(e1); // делаем положение сервопривода случайным
 delay(e2); // запускаем случайную задержку
 eyes.write(0); // сбрасываем сервопривод в нейтральное положение
 delay(e3); // запускаем нейтральную случайную задержку           
}

void setup() {
  tail.attach(9); // назначаем сервомотор на линию 9
  head.attach(10); // назначаем сервомотор на линию 10
  eyes.attach(11); // назначаем сервомотор на линию 11
}

void loop() {
  byte randNum = random(3); // максимальный диапазон чисел
  switch (randNum) // переключение между случайными числами, назначенными в этом цикле
  {
    case 0:
      loop_tail();
      break;
    case 1:
      loop_head();
      break;
    case 2:
      loop_eyes();
      break;
  }            
}

Код прокомментирован достаточно подробно, поэтому все должно быть понятно.




© digitrode.ru


Теги: Arduino, сервомотор




Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.

Комментарии:

Оставить комментарий