// Даём понятное имя пину сервопривода головы #define PIN_SRV_HEAD 8 void setup() { } void loop() { // Устанавливаем вал сервопривода на 0° headMap(0); // Ждём 1 секунду delay(1000); // Устанавливаем вал сервопривода на 90° headMap(90); // Ждём 1 секунду delay(1000); // Устанавливаем вал сервопривода на 180° headMap(180); // Ждём 1 секунду delay(1000); // Устанавливаем вал сервопривода на 90° headMap(90); // Ждём 1 секунду delay(1000); } // Управление сервоприводом захвата с помощью функции map() // Угол задаётся в градусах от 0° до 180° void headMap(int pos) { // Преобразуем угол [0…180] в ширину импульса [544…2400] мкс int wait = map(pos, 0, 180, 544, 2400); // Отправляем серию управляющих импульсов for (int i = 0; i <= 50; i++) { digitalWrite(PIN_SRV_HEAD, HIGH); delayMicroseconds(wait); digitalWrite(PIN_SRV_HEAD, LOW); delay(20); } }