_Shamrock_,
r3d0ut, есть например сервопривод подключенный к ноге 4, через блютуз приходят сигналы в виде букв например (еще хз каким именно образом они там будут приходить через приложение для андроида) - или один раз нажал один раз пришло или непрерывно идут сколько-то раз в секунду пока держишь нажатым - хз

ну короче надо сделать так, чтобы когда приходит сигнал, сервопривод плавно менял угол своего положения до тех пор пока не отожмешь палец с кнопки на телефоне или пока не достигнется край (180 или 0 градусов)
так вот
#include <Servo.h> // подключение библиотеки управления сервоприводом
Servo servoX; // название для привода - "сервоХ"
void setup()
{
servoX.attach(4); // "сервоХ" приделан к 4 пину
servoX.write(90); // начальный угол после включения ставится 90 градусов (на середину)
Serial.begin(9600); // активируется блютуз
}
void loop()
{
while (Serial.available()) // пока есть связь по блютузу
{
int cmd = Serial.read(); // считывается команда с блютуза
int x = servoX.read(); // текущее положение привода записывается в переменную х
switch (cmd) // в зависимости от пришедшей команды делается
{
case 'R': //если пришло R
if (x < 180) { //если текущий угол меньше 180
servoX.write(x + 1); } // устанавливается угол на 1 градус больше текущего
break; // а теперь что?

case 'L':
if (x < 0) {
servoX.write(x - 1); }
break;
delay (20) // тупит 20мс (хз зачем)
} //и идет обратно считывать команду, обновлять переменную текущего угла и т.д.??
}
}
а если новой команды нету? оно просто сидит и ждет? а если придет какая-то команда, которой нет в списке (не R и не L)?
как вообще работает эта хуйня
