#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); } }
Практически каждый человек в современном мире использует мобильный телефон. И используя технологию 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); }