Подскажите пожалуйста, возможно ли изменение скважности импульсов с помощью "millis()"

prosto_andriy
Offline
Зарегистрирован: 09.12.2012

В описании о том, как мигать светодиодом без "delay()" интервалы вкл./выкл. светодода равны. А можно ли сделать так, чтобы они были разными. То есть, по-другому говоря, программно задать скважность импульсов.

И можно ли будет управлять этой скважностью в процессе выполнения программы?

step962
Offline
Зарегистрирован: 23.05.2011

- А можно

- И можно

sva1509
Offline
Зарегистрирован: 07.12.2012

Доброго времени суток !

Не понял вопрос. Вы хотите мигать или изменять яркость светодиода ?

Яркость меняется ШИМ (analogWrite());

Мигать без delay можно несколькими способами:

1) спрограммировать таймер и мспользовать прерывание.

2) есть функция millis() возвращает колличество миллисикунд от включения прибора. Переполнение судя по документации ~50 дней. Вы можете считать текущее значение вычитать из него стартовое. Полученное колличество миллисикунд сравнить с необходимым, если да то изменить состояние пина и запомнить текущее как стартовое.

 

prosto_andriy
Offline
Зарегистрирован: 09.12.2012

Благодарю за  ответ! Только что нашел похожую тему на этом форуме.

 В ней есть пример кода управления временными интервалами вкл./выкл. с помощью функции "millis()"

Кому интересно: http://arduino.ru/forum/programmirovanie/kak-vklyuchit-na-nekotoroe-vremya