как управлять сервоприводом с ИК приёмника и пульта?

Тема в разделе "Iskra JS, Espruino, Йодо", создана пользователем Sofushka, 7 июн 2017.

  1. Sofushka

    Sofushka Нуб

    Нужно чтобы угол поворота качалки управлялся кнопками + и -
     
  2. mcureenab

    mcureenab Гуру

    Подключить проводами.
    Написать и запустить программу
     
  3. Sofushka

    Sofushka Нуб

    ну это понятно, а вот как её написать?
     
  4. Troll

    Troll Гик

    Ручками
     
  5. caracal

    caracal Нерд

    Только недавно рулил плюс-минусом. Дописал 4 строчки для стервы, не проверял, но должно работать:)

    Код (Javascript):
    var servo = require('@amperka/servo').connect(P13);
    var IR = require('@amperka/ir-receiver').connect(P0);

    var angle = 0;
    var step = 10; // Шаг поворота

    IR.on('receive', function(code, repeat) {
        if (code == 67019103) TurnServo(step);
        if (code == 67076223) TurnServo(-step);
    });

    function TurnServo(step)
    {
        angle += step;
        if (angle >= 180) angle = angle - 180;
        if (angle < 0) angle = angle + 180;
        servo.write(angle);
    }
    ИК на P0, а серва на P13
     
    Последнее редактирование: 9 июн 2017
  6. sys

    sys Злобный Буратино Модератор

    обычный среднестатистический серво не постоянного вращения ( http://amperka.ru/product/servo-fs90 ) имеет угол 180 градусов (а посуществу 170 и меньше). 360 градусов имеют менее распространенные сервы постоянного вращения ( http://amperka.ru/product/servo-fs90r )
     
    caracal нравится это.
  7. caracal

    caracal Нерд

    Спасибо. Дальше примера из коробки Йодо с серовой за ненадобностью не играл)
    Думал она на 360 вертится:confused:

    Поправил. И все равно надо проверять)
     
    Последнее редактирование: 9 июн 2017
  8. mcureenab

    mcureenab Гуру

    Код (C++):
    servo.write(angle);
    Значение angle и фактический угол поворота могут отличаться.
     
    caracal нравится это.