Программирование

Вопросы по программированию Arduino.

таймер, обработчик, delay() - неск. вопросов по реализации

добрый день

### ЗАДАЧА

некий проек, написанный на "Ардуине/ATmega-328P", в нем активно используется delay()

планируется:

- по событию PCINT -> вызвать обработчик, в нем настроить и запустить таймер (одноразово) (еще не знаю в каком режиме и какой из 3х)
- по срабатыванию таймера (переполнение, сравнени не важно как) -> вызвать обработчик таймера
- в обработчике "сделать нечто" и "самоуничтожится" (отключиться)
- далее управление основному процессу

шаг с вызовом таймера нужен для подавления "шума" на входе PCINT (на "профильных" форумах рекомендуют задержку 50-200 мс)

Отключение - подключение сервы

Кручу серву потенциометром и кнопками перевожу в фиксированные положения. При работе с потенциометром всё хорошо. После перевода в фиксированные положения серва дрожит. При возврате в управление потенциометром опять всё  гуд. Почитал по форуму о подобных случах, перепробовал разные комбинации с MyServo.detach(); - не получается корректной работы. Как правильно отключить серву после окончания движения в фиксированное положение?

Увеличить число выходов с ШИМ

Есть МК с 6-ю PWM.

С помощью какой обвязки добиться следующего:

- увеличить количество PWM до 16-20

- инвертировать полярность, как это делает ULN2003 (все плюсы нагрузки (LED лента 12 В) соединены, коммутируются минусовые выводы)

- нагрузка до 500 мА на каждый канал (можно и больше, если не встанет сильно дороже)

- предусмотреть хоть какую-то защиту от КЗ.

P.S. это вроде называется каскадирование, только как грамотно все это соединить?

Кнопка с залипанием.

Начал разбирать код кнопки с залипанием: нажали загорелся LED, еще раз - потух.

Очень простая задачка, но для меня, новичка, разбор кода немного загнал в тупик. Для анализа использую следующий код из Getting Started with Arduino, который прокомментировал самостоятельно.

Не могу понять, что происходит и для чего мы должны сделать: old_val = val; // val is now old, let's store it

 

Ресурсы доступные загрузчику

Загрузчик имеет такой же доступ ко всем ресурсам (кроме малого размера собственного кода) как у основной программы или наложены ограничения ?

Если такие существуют, где изложены правила  для написания загрузчика?

Периодические действия контроллера. или я изобретаю велосипед?

Всем привет!

Понадобилось написать следующую программу:

Включение и выключение реле в определенные часы. Настройки хранить в ini файле, что бы можно было менять не прошивая контроллер.

Вот получился такой велосипед, подскажите, кто как делает, а то может я хрень какую написал...)))

 

Сохраняемм в ini файле следующие строки

sw01|100-130|450-520|540-600   - для включенния и выключения реле, время в минутах

Компилирование кода извне

Как можно научить ардуину компилировать код, находящийся, например, на SD-карте?

Помогите с enc28j60 (метод Post)

как можно реализовать post-запрос на удаленный сервер (сайт)

void loop ()

Возможно ли  в программном коде ардуино напистаь несколько void loop(1) .... void loop(2)...

Просто в проекте используется задержка в 15 секунд... 

и получается так, что система не следит за другими параметрами в течении 15 секундной задержки....

void loop()

за какое время проходит один цикл loop?