Физические основы робототехники
Семинар 4
Управление сервомотором в Arduino
1. Написать программу для Arduino, под управлением которой
сервомотор вращается последовательно по часовой стрелке,
а затем против часовой стрелки. В рабочем цикле программы
позиция сервомотора изменяется по формуле:
pos = pos + step, или pos += step
где pos - текущая позиция, угол поворота, сервомотора, в градусах,
step - шаг изменения угла поворота.
Измените нижеприведенный пример прошивки так, чтобы
1) вращение сервомотора происходило в пределах от 45 до 135 градусов;
2) по часовой стрелке сервомотор вращался с больше скоростью, чем
в противоположном направлении
Пример
#include <Servo.h> #define SERVO_PIN 9 #define MAX_POS 180 #define MIN_POS 0 int pos = 0; int step = 1; Servo myservo; void setup() { Serial.begin(9600); myservo.attach(SERVO_PIN); } void loop() { pos += step; if (pos > MAX_POS) { pos = MAX_POS; step = -1; } if (pos < MIN_POS) { pos = MIN_POS; step = 1; } myservo.write(pos); delay(15); }
2. Написать программу для Arduino, которая одновременно
управляет поворотом сервомотора и скоростью мигания
светодиода. Скорость мигания программно не должна зависеть
от скорость вращения сервомотора.