1310servo tuda: различия между версиями
Перейти к навигации
Перейти к поиску
Woronin (обсуждение | вклад) Нет описания правки |
Woronin (обсуждение | вклад) Нет описания правки |
||
Строка 1: | Строка 1: | ||
<syntaxhighlight lang="C++"> | <syntaxhighlight lang="C++"> | ||
////////////////////////////////////////////// | ////////////////////////////////////////////// | ||
// | // 2025.01.21 woronin, umkiedu@gmail.com | ||
// работа с | // работа с шестью Сервомоторами, плавное перемещение от 15 до 180 градусов | ||
// Robot UMKI controller K6_3 | // Robot UMKI controller K6_3 | ||
// повроты серво мотора | // повроты серво мотора | ||
////////////////////////////////////////////// | ////////////////////////////////////////////// | ||
#include <Servo.h> | |||
void setup() // | #define NUM_SERVOS 6 | ||
{ | |||
Servo servos[NUM_SERVOS]; | |||
const int servoPins[] = {9, 10, 11, 12, 13, 14}; // Пин каждого сервопривода | |||
void setup() { | |||
for (int i = 0; i < NUM_SERVOS; ++i) { | |||
servos[i].attach(servoPins[i]); | |||
servos[i].write(90); // Установить все сервоприводы в начальную позицию 90 градусов | |||
} | |||
} | |||
void loop() { | |||
for (int i = 0; i < NUM_SERVOS; ++i) { | |||
moveServo(i, 90, 180, 15); // Повернуть сервопривод от 90 до 180 градусов | |||
delay(3000); // Ждать 3 секунды | |||
moveServo(i, 180, 90, 15); // Вернуться обратно к 90 градусам | |||
delay(500); // Небольшая пауза перед следующим сервоприводом | |||
} | |||
} | } | ||
void | // Функция для плавного перемещения сервопривода от одного угла к другому | ||
{ | void moveServo(int index, int startAngle, int endAngle, int stepDelay) { | ||
for (int angle = startAngle; angle <= endAngle; angle++) { | |||
servos[index].write(angle); | |||
delay(stepDelay); | |||
} | |||
for (int angle = endAngle; angle >= startAngle; angle--) { | |||
servos[index].write(angle); | |||
delay(stepDelay); | |||
} | |||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> |
Текущая версия от 15:47, 21 января 2025
//////////////////////////////////////////////
// 2025.01.21 woronin, umkiedu@gmail.com
// работа с шестью Сервомоторами, плавное перемещение от 15 до 180 градусов
// Robot UMKI controller K6_3
// повроты серво мотора
//////////////////////////////////////////////
#include <Servo.h>
#define NUM_SERVOS 6
Servo servos[NUM_SERVOS];
const int servoPins[] = {9, 10, 11, 12, 13, 14}; // Пин каждого сервопривода
void setup() {
for (int i = 0; i < NUM_SERVOS; ++i) {
servos[i].attach(servoPins[i]);
servos[i].write(90); // Установить все сервоприводы в начальную позицию 90 градусов
}
}
void loop() {
for (int i = 0; i < NUM_SERVOS; ++i) {
moveServo(i, 90, 180, 15); // Повернуть сервопривод от 90 до 180 градусов
delay(3000); // Ждать 3 секунды
moveServo(i, 180, 90, 15); // Вернуться обратно к 90 градусам
delay(500); // Небольшая пауза перед следующим сервоприводом
}
}
// Функция для плавного перемещения сервопривода от одного угла к другому
void moveServo(int index, int startAngle, int endAngle, int stepDelay) {
for (int angle = startAngle; angle <= endAngle; angle++) {
servos[index].write(angle);
delay(stepDelay);
}
for (int angle = endAngle; angle >= startAngle; angle--) {
servos[index].write(angle);
delay(stepDelay);
}
}