Привет. Собираюсь собрать хитрое но простое устройство, считающее расстояние, преодоленное человеком на велосипеде. Не столь важно, как я собираюсь реализовать это на деле, просто уточню что буду использовать магнит и сенсор постоянного магнитного поля и светодиод. Мне необходимо сделать программу, мигающую светодиодом с периодом в одну секунду. Сделать это я смогу, используя delay. А вот если мне необходимо в этот момент читать аналоговый сигнал с сенсора? Как быть? Выручайте! Я почему то уверен что все кроется в таймерах, но как их реализовать я не имею представлений.
А как он будет считать растояние? Магнит на колесо и считать сколько раз он прокрутился напротив сенсора. Если так то лучше делать по другому. Сделать обработчик прерываний который будет срабатывать когда сенсор регистрирует магнит. А мигание тогда можно сделать и как обычно.
Прости, что? О каких ты прерваниях говоришь? Я уже все продумал, осталось решить проблему со светодиодом. Кстати, вопрос: "Я получаю инфу с сенсора и хочу выводить на жк экран. Например, обновляя значения каждую секунду. Как быть?"
Ну так ты говоришь что проблема в том, чтобы читать данные с сенсора если вдруг ты ушел в delay. Значит чтение сенсора делаешь в loop функции сам. Но это не самое удачное решение оно клевое только для тестов. А по нормальному МК сам должен вызывать твой код сам следя за данными с сенсора. Можно настроить прерывание например когда на ножке сигнал меняется. Это более правильно чем самому читать данные. А вот остальной код вроде мигания светодиодом можно уже как раз писать в loop как угодно используя delay. Когда данные с сенсора поступят МК прервет этот код и выполнит код прерывания где как раз можно например посчитать что велосипед прокрутил колесо очередной раз. А дальше МК продолжит опять выполнение кода из loop. Получится типа параллельное выполнение кода когда можно не парится по поводу delay функции. В любом случае чтобы использовать таймеры нужно будет писать прерывание. Только его будет вызывать не изменение значения на ножках а сам таймер. Это просто не показать примером там очень много разного. Нужно просто все это прочитать в документации. Еще можно взять например готовую библиотеку вроде MsTimer2 http://arduino.cc/playground/Main/MsTimer2 Но не зная как работают таймеры всеравно не получится писать нормально. Например при работе второго таймера нельзя будет писать в 11 порт насколько помню.
Ладно, с этим понятно. Я еще вопрос выше задал. Как одновременно или каждую секунду выводить еще на жк экран все?
wellgold как раз написал пример. Можно еще использовать вот эту библиотек http://arduino.cc/playground/Code/Timer Там можно до 10 независимых таймеров поставить.