Проект 16. Управляемый сервомотор

Практически каждый человек в современном мире использует мобильный телефон. И используя технологию bluetooth, которая есть в каждом смартфоне, мы научимся управлять сервомотором, передавая угол для поворота с телефона по беспроводной связи!

Оборудование:

(new) bluetooth

Сервопривод

Программирование:

Serial порт

Практика

Напишите программу, которая принимает с телефона целочисленную переменную и устанавливает сервопривод, в тот угол, значение которого хранит переменная. Подберите и установите оптимальный timeout для получения данных.

Дополнительное задание

Измените программу, чтобы сервопривод принимал два значения: минимальный угол и максимальный угол, и перемещался между двумя этими углами.

Решение

Мы рекомендуем сначала освоить материал и попробовать сделать программу самостоятельно! А потом проверить себя, посмотрев наш вариант решения:

#include <Servo.h>
Servo myservo;
void setup() {
  Serial3.begin(9600);
  Serial3.setTimeout(5);
  myservo.attach(9);
}
void loop() {
  if (Serial3.available()) {
    int angle = Serial3.parseInt();
    myservo.write(angle);
  }
}

#include <Servo.h>
Servo myservo;
int min_angle;
int max_angle;
void setup() {
  Serial3.begin(9600);
  Serial3.setTimeout(5);
  myservo.attach(9);
}
void loop() {
  if (Serial3.available()) {
    min_angle = Serial3.parseInt();
    while (!Serial3.available()) {}
    max_angle = Serial3.parseInt();
  }
  myservo.write(min_angle);
  delay(1000);
  myservo.write(max_angle);
  delay(1000);
}