Працюємо з 09:00 до 19:00 без вихідних
Самовивіз - Київ біля ТЦ Квадрат бул.Перова

Опишемо програму управління серво-мотором командами з COM-порта на прикладі контролера Arduino Leonardo.

Управління буде відбуватися в наступному вигляді: в стандартному (або сторонньому) вікні монітора COM-порта вводимо цілу цифру від нуля до 180, натискаємо Enter та серво змінює положення свого плеча на заданий кут. 

Скетч в Arduino IDE виглядає наступним чином:

Текст програми з коментарями такий:

#include <Servo.h>  //підключення бібліотеки servo


Servo myservo;  // створення об'єкта servo для управління мотором
// на більшості плат Arduino можна створити 12 servo об'єктів


String inputString = "";         // змінна типу string для збереження вхідних даних
boolean stringComplete = false;  // флаг дані отримані 


void setup() {
  myservo.attach(9); //вибираємо дев'ятий керуючий дискретний вихід контролера для керування моторчиком 


  //ініціалізація послідовного порта:
  Serial.begin(9600);


  // отримати 200 байтів та записати в змінну inputString:
  inputString.reserve(200);


  myservo.write(0); //виставляємо початкове положення серво в 0 градусів
}


void loop() {
  serialEvent(); //виклик нашої комунікаційної функції


  // друкуємо відповідь в COM-порт та повертаємо серво на заданий кут:
  if (stringComplete) {
    Serial.println(inputString);


    myservo.write(inputString.toInt()); //задання положення серво-машинці з отриманої команди


    // обнулюємо строкову змінну:
    inputString = "";
    stringComplete = false;
  }
}


void serialEvent() {
  while (Serial.available()) {
    // отримати новий байт даних:
    char inChar = (char)Serial.read();


    // додати новий байт до строкової змінної inputString:
    inputString += inChar;


    // якщо вхідний символ є новим рядком, підняти флаг
    // щоб головний цикл обробив прийняту команду:
    if (inChar == '\n') {
      stringComplete = true;
    }


  }
}


Підключаємо серво до плати контролера за таблицею відповідності виводів:

Arduino
 Servo
Нуль живлення
Коричневий дріт
Плюс 5В
Червоний дріт
Дискретний вихід №9
Помаранчевий дріт



В моніторі COM-порта теж необхідно зробити деякі налаштування для коректної роботи проекта. В правому нижньому куті вікна необхідно вибрати наступні значення випадаючих списків "Новая строка" (щоб всі ваші команди з командної строки закінчувались кінцем рядка) та 9600 бод (так як ми налаштували послідовний зв'язок на швидкість обміну 9600).
 
Якщо все налаштовано правильно, то вводячи цифру та натиснувши Enter у вікні монітора COM-порта, серво повернеться на відповідний кут та контролер поверне цю цифру назад в послідовний порт.

Написати відгук

Примітка: HTML размітка не підтримується! Використовуйте звичайтий текст.
    Погано           Добре
Ролик 19мм з підшипником та кріпленням

Ролик 19мм з підшипником та кріпленням

Ролик зі зручним кріпленням для різних конструкцій 3D-принтерівШирина колеса 5,3 ммРізьба болта М6До..

23.68грн.

Модуль реле 2-канальний 5В 10А

Модуль реле 2-канальний 5В 10А

2-канальный модуль реле для підключення напряму до дискретного виходу контролера. Світлодіодна індик..

49.52грн.

Плата контролера STM8S103F3P6

Плата контролера STM8S103F3P6

Плата розробника заснована на контролері STM8S103F3P6Живити можна або через мікро-USB порт або через..

62.53грн.

Модуль зарядки та захисту акумулятора 3,7В або 4,2В 1А

Модуль зарядки та захисту акумулятора 3,7В або 4,2В 1А

Плата для зарядки літіумних акумуляторів 3,6 - 4,2В та живлення його навантаження.Зарядка відбуваєть..

18.90грн.

Муфта на кроковий двигун 6x8x25мм

Муфта на кроковий двигун 6x8x25мм

Ця муфта слугує перехідником між валами 6 мм та 8 мм. Тобто містить з одного боку отвір діаметром 6 ..

43.06грн.