Заказ под Ардуино Uno

Тема в разделе "Закажу проект", создана пользователем Riper69, 13 окт 2016.

  1. Riper69

    Riper69 Нуб

    Привет всем!
    Заказ на скетч.
    Основной алгоритм:
    По фронту или спаду (должно меняться программно в зависимости от применяемого типа датчика: прямой\инверсный) приходящего на дискретный вход Ардуино UNO импульса должен появляться прямоугольный импульс на дискретном выходе, длительность которого зависит от напряжения на аналоговом входе (от движка потенциометра). Диапазон рабочей частоты 20-100 Гц.

    Зависимость линейная, но диапазон длительности выходного импульса начинается не от нуля, и положения потенциометра могут быть не крайними. В принципе, рабочая область является отрезком прямой y=kx+b, область значений отрезка ограничена, при выходе за пределы присваивается граничное значение (типа constrain, если не ошибаюсь).
    y=kx+b, где
    y- длительность выходного импульса, мсек (ориентировочно от 2 до 10)
    k- коэффициент угла наклона
    x- напряжение на аналоговом входе (ориентировочно от 0,5 до 4,8 Вольт)
    b- коэффициент
    Дополнительно двумя отдельными переключателями (подают логическую единицу на дискретные входы) можно менять заранее прописанные в программе значения коэффициента k. Например: не включены- начальный коэффициент, включили один переключатель- коэффициент увеличился на 5%, включили второй и выключили первый- увеличился на 10%, включили оба- уменьшился на 5% от начального (конкретные цифры будут подбираться при наладке).

    Дополнительные функции:
    При отсутствии входных импульсов более 3 секунд, на одном из свободных дискретных выходов должен установиться уровень логического нуля, при наличии импульсов, возобновлении импульсов и первые 5 секунд после подачи питания, всегда единица (выход на ключ MOSFET).

    Дополнительные требования:
    Корректировка должна осуществляться вводом понятных цифровых значений в программный код без выполнения каких либо калибровочных запоминающих действий. Возможность замены уравнения. Инструкция и подробное пошаговое описание скетча для понимания пользователем низкого уровня. Требуется простое решение без всяких прерываний, запоминаний, ожиданий или еще чего для стабильной и безглюковой работы.

    Цена вопроса и нужно ли будет менять скетч для использования на Ардуино Нано?
     
  2. Onkel

    Onkel Гуру

    находится в противоречии с
    Впрочем, если реализация на arduino ide - принципиальное требование, то могу сделать и на аrduino ide.
    Пишите ydom@mail.ru решим вопрос.
     
  3. ostrov

    ostrov Гуру

    На Нано можно. И на Про Мини можно, даже лучше. )
    Можно и на голом МК.
     
  4. Onkel

    Onkel Гуру

    не, на голом мк нельзя. пока еще не придумали автономные мк, работающие без питания.
     
  5. ostrov

    ostrov Гуру

    А Нано без питания придумали?
     
  6. Riper69

    Riper69 Нуб

    Немного уточню:
    По фронту приходящего на дискретный вход Ардуино UNO импульса должен появляться прямоугольный
    импульс на дискретном выходе, длительность которого зависит от напряжения на аналоговом входе. Диапазон рабочей Частоты 20-100 Гц.
    Рабочая область является отрезком прямой y=6x+2000 (коэффициенты могут меняться при наладке).
    Область значений отрезка ограничена, при выходе за пределы присваивается граничное значение (пока изначально Y не может быть менее 2000 и более 10000 мксек, но понадобится корректировка при наладке).
    x- напряжение на аналоговом входе ориентировочно от 100 до 980 (от 0,5 до 4,8 Вольт), но тоже может понадобиться корректировка).

    Дополнительные функции:
    1. Подачей высокого уровня на один из дискретных входов, коэффициент при Х меняется с 6 на другой (таких входов надо парочку для наглядности экспериментов при наладке).
    2. При отсутствии входных импульсов более 5 секунд, на одном из дискретных выходов должен установиться уровень логического нуля, при наличии импульсов, возобновлении импульсов и первые 5 секунд после подачи питания, всегда единица (выход на ключ MOSFET).
    Подробное пошаговое описание скетча для понимания при сборке схемы и наладке (распиновка, смена коэффициентов, границы значений, замена уравнения).
    Нужен только скетч.
    Планируемый бюджет 2000 рублей.
     
  7. ostrov

    ostrov Гуру

    Уточнение бюджета сняло много вопросов. )
     
  8. Riper69

    Riper69 Нуб

    Есть таксисты аэропортовские и есть те, с которыми люди реально ездят, так что не отвлекайтесь, а то очередной рейс прозеваете.)
    И не бюджет, а планируемый бюджет, который кстати больше средней зарплаты по нашему региону за один рабочий день. Или Вам неделя потребуется на такую программулину?
     
  9. ostrov

    ostrov Гуру

    Работы тут на час или два, как пойдет. Настраивается прерывание по таймеру и один регистр регулируется в зависимости от аналогового сигнала. Ну, плюс дополнительные хотелки, еще минут 10. Больше времени уйдет на тестирование и настройку, корректировку как вы ее называете. Причем, все равно придется это делать вам, так как подгонять нужно под конкретный потенциометр, да и у того показания будут плавать на несколько единиц даже если его не трогать.
     
  10. Riper69

    Riper69 Нуб

    Я поэтому и прошу описание, чтобы самому оптимальный режим коэффициентами подобрать, возможно даже уравнение заменить придется. Плавание показаний на несколько единиц не существенно. Мне просто нужен скетч и понимание, как он работает. Железо, сборку и наладку буду делать сам.
     
  11. Riper69

    Riper69 Нуб

    Частота на входе постоянно меняется, и выходной импульс должен всегда появляться по фронту входного без пропусков, плюс/минус небольшое время на обработку. Прерывание по таймеру где не читал, не пойму, как работает, и кто там кого ждет, т.е. не ясен ход выполнения.
     
  12. ostrov

    ostrov Гуру

    По таймеру прерывание может осуществляться двумя путями: по сравнению, когда значение специального регистра сравняется с регистром счетчика и по переполнению, когда регистр счетчика перевалит через максимум. По результатам разницы никакой, кому что нравится больше. Мне - первый вариант. Давайте может сделаю, если никто не взялся еще.

    Просто не могу обещать сверхскорость, так как:
    [​IMG]
     
  13. Riper69

    Riper69 Нуб

    Спасибо всем, кто откликнулся! Вопрос решен.