// Подключаем сервопривод к пину 9 через библиотеку Servo var servo = require("@amperka/servo").connect(P9); // Создаём таймер, тикающий каждые 1 секунды var timerServo = require("@amperka/timer").create(3); // Задаём минимальный и максимальный угол поворота var MIN_ANGLE = 0; var MAX_ANGLE = 180; var MID_ANGLE = (MIN_ANGLE + MAX_ANGLE) / 2; // Переменная для хранения текущей позиции сервомотора var pos = MIN_ANGLE; // Функция вращения сервопривода function startServo() { servo.write(pos); // Запускаем таймер timerServo.run(); } // Подписываемся на событие таймера timerServo.on("tick", function () { // Неважно, какое было прошлое состояние угла // Устанавливаем среднее положение servo.write(MID_ANGLE); // Запускаем мотор в противоположную сторону // От прошлого положения через одну секунду setTimeout(function () { if (pos == MIN_ANGLE) { pos = MAX_ANGLE; } else if (pos == MAX_ANGLE) { pos = MIN_ANGLE; } startServo(); }, 1500); }); // Запускаем функцию вращения мотора startServo();