Управление сервомотором в 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 h = 1; // Step of servo position. Servo myservo; void setup() { Serial.begin(9600); myservo.attach(SERVO_PIN); } void loop() { pos += h; if (pos > MAX_POS) { pos = MAX_POS; h = -1; } if (pos < MIN_POS) { pos = MIN_POS; h = 1; } myservo.write(pos); delay(15); }
2. Написать программу для Arduino, которая одновременно управляет поворотом сервомотора и скоростью мигания светодиода. Скорость мигания программно не должна зависеть от скорость вращения сервомотора.