Помогите с Сервой
- Войдите на сайт для отправки комментариев
Привет всем кто шарит в программировании в IDE.
Вот ломаю голову не могу понять в чем ошибка, почему при получении через serial порт 2 Серва с ума сходит?? По идеи она должна замедлить свой ход. Короче кто шарит тот меня поймет.
Не пинайте больно за код, на ходу состряпал не пойму в чем ошибка. За ранее благодарствую!!!
// Sweep
#include <Servo.h>
int incomingByte; // создаём переменную
Servo myservo; // создаём объект для контроля сервы
int pos = pos; // переменная для хранения позиции сервы
void setup()
{
Serial.begin(9600); // инициализируем Serial
myservo.attach(9); // серва подключена к 9-му пину
}
void loop()
{ if (Serial.available() > 0) // если данные не пустые то
incomingByte = Serial.read();// записываем их в переменную
if (incomingByte == '1'){
myservo.write(20); //ставим вал под 20
}
if (incomingByte == '2')
{ for(pos = 10; pos < 179; pos += 1) // от 0 до 180 градусов
myservo.write(pos);
delay(15);
}
}
Серва при получении 2 с ума сходит а должна добавлять по логической 1 каждый круг
Скобки не стоят...... где-то так надо.....
if (incomingByte == '2'){
for(pos = 10; pos < 179; pos += 1) { // от 0 до 180 градусов
myservo.write(pos);
delay(15);
}
}
Но пока будет двигаться от 10-ти до 179 не сможете ничего принять из компорта
грубо 15 * 169 2.35 секунды минимум
Спасибо ) Ураа) только она теперь доходит до 180, и опять в ноль идет и опять по кругую как зделать чтоб дошла и остановилась??
Зарание спасибо!!
все и с этим разобрался спасибо вам большое. Причина решилась добавления в концэ кода incomingByte = 0;
Вот весь кусок
if (incomingByte == '2') {