Rc управление ардуино

Тема в разделе "Проводная и беспроводная связь", создана пользователем vlad123419, 25 мар 2016.

  1. ANV

    ANV Гуру

    Как быть... забыть про 1024 :)

    Вариант 1:
    Вместо servo.write использовать writeMicroseconds()

    Вариант 2:
    Код (C++):
       int val = ChannelIn-870;
       val = constrain(val, 0, 2100-870);
       int angle = map(val, 0, 2100-870, 0, 270);
     
  2. Спасибо!.
    А я "с утра неевши" вывернулся так (и ..тоже через map ):
    // put your main code here, to run repeatedly:

    int val = ChannelIn;
    val = map(ChannelIn,1000,2100,0,180); // переводим в значение от 0 до 180)
    // val = map(ChannelIn,1000,2100,0,180); // переводим в значение от 0 до 180)

    int angle = val;
    angle = constrain(angle, 0, 180);
    //myServo.writeMicroseconds(ChannelIn) ;
    myServo.write(angle);

    Serial.print(ChannelIn);Serial.print("\t");
    Serial.print(angle);Serial.print("\t");
    Serial.println(val);

    delay(100);

    Тут наставил кучЮ "проходных" переменных - пытаюсь понять, как вычислить отклонение джойстика от среднего 1500мксек (90*гр) положения -
    для назначение скорости серве через voidservoslow(Servonum,intpos,inttime,intstart).
    Думаю надо модуль разности найти между :

    1500мксек (среднее положение джойстика) и
    read() - Возвращает текущий угол поворота вала серводвигателя (значение, переданное функции write() при последнем вызове).
    servo.read()
    ...Не кстати - а servoslow не будет программулинку тормозить до окончания выполнения ...slow ?
     
  3. Что-то я потерялся второй день ! :
    переустановил ХР (юшку) "новый" ИДЕ и ... servoslow не хочет работать даже в примере
    http://robotday.ru/2015/03/28/сервопривод-tower-pro-9g-sg90/ :( ! А ведь "до .." исправно работал ... Даже скорость сервы и углы потенциометром добился выставлять ! Скетч при Формат С ... пропал - пытаюсь восстановить, но ведь работал(о) !!
    Подскажите, что проверить и исправить ...
     
  4. Подскажите, а есть ли возможность "считать" ШИМ с других ножек ? У меня №2 и №3 энкодером заняты :oops:.
    Он считывает расстояние и от него (расстояния и направления) надо сервой плясать, а вот диапазон сервы и её скорость выставляется с пульта.
    Как быть? делать отдельный мозг под несколько строчек - вроде и не жалко, но ... :( ?