Blink без delay и с регулировкой яркости

Megawollt
Offline
Зарегистрирован: 06.12.2015

Нужно получить блинк на ШИМ выходе с возможностью регулировки яркости и интервала. У кого есть пример?

Клапауций 232
Offline
Зарегистрирован: 05.04.2016

Megawollt пишет:

Нужно получить блинк на ШИМ выходе с возможностью регулировки яркости и интервала. У кого есть пример?

у меня есть, а у тебя нет.

я себе написал, а ты - лентяй.

Megawollt
Offline
Зарегистрирован: 06.12.2015

Библиотеки пишут с этой же целью :)

Клапауций 232
Offline
Зарегистрирован: 05.04.2016

Megawollt пишет:

Библиотеки пишут с этой же целью :)

если бы все умники сидели и ждали, когда какой-то лох напишет за них библиотеки, то ничего бы написано не было.

в реальности - всё с точностью до наоборот: лохи ждут подачек от умников.

Sanchogus
Offline
Зарегистрирован: 02.01.2015

Megawollt пишет:

Нужно получить блинк на ШИМ выходе с возможностью регулировки яркости и интервала. У кого есть пример?

Читай millis();

Дели его целочисленно на число, например 1000мс - это 1 сек.

if ((millis() % 1000) > 500)

digitalWrite(1,1);//если остаток от деления больше 500мс

else//иначе

digitalWrite(1,0);

 

Для регулировки яркости впихнуть вместо диджитал аналограйт и в него переменную яркости.

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Megawollt пишет:

Нужно получить блинк на ШИМ выходе с возможностью регулировки яркости и интервала. У кого есть пример?

Время написания такого примера - минуты три-четыре, т.е. меньше, чем найти его в гугле, скачать. установить и просмотреть.

Сколько Вы потратили на попытки его написать? Где Ваш код и что с ним не так?

Если не пытались и не хотите пытаться, то идите в "Ищу исполнителя", там Вам напишут.

Sanchogus
Offline
Зарегистрирован: 02.01.2015

Что ж вы злые тут такие, может у человека 3й день ардуина на руках и впервые программирует. :)

Клапауций 232
Offline
Зарегистрирован: 05.04.2016

Sanchogus пишет:

Что ж вы злые тут такие, может у человека 3й день ардуина на руках и впервые программирует. :)

мы злые - ты добрый.

мы кушаем попкорн - ты работаешь.

Sanchogus
Offline
Зарегистрирован: 02.01.2015

Набрать код одной рукой пока завтракаешь - это не работа. :)

Прочем это уже оффтоп пошел.

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Sanchogus пишет:

Что ж вы злые тут такие, может у человека 3й день ардуина на руках и впервые программирует. :)

В Вашем посте ключевой слово "программирует". Пусть напишет хоть что-нибудь, пусть неработающее - ему помогут. А так, "по-щучьему веленью" не выйдет.

Вот когда у Вас впервые на руках кран для кухни, Вы что делаете? Дайте угадаю, либо ставите его сами, либо вызываете сантехника и платите ему денюшку.

Здесь же человеку предлагают ещё и третий вариант - начни ставить сам, а не получится - поможем.

В чём проблема? Какие претензии?

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Sanchogus пишет:

Набрать код одной рукой пока завтракаешь - это не работа. :)

Точно? А что это?

Вы когда едете в такси 10 минут, Вы платите? Или считаете, что 10 минут баранку покрутить - не работа?

Megawollt
Offline
Зарегистрирован: 06.12.2015

Ок. Спасибо

Megawollt
Offline
Зарегистрирован: 06.12.2015

Sanchogus пишет:

Megawollt пишет:

Нужно получить блинк на ШИМ выходе с возможностью регулировки яркости и интервала. У кого есть пример?

Читай millis();

Дели его целочисленно на число, например 1000мс - это 1 сек.

if ((millis() % 1000) > 500)

digitalWrite(1,1);//если остаток от деления больше 500мс

else//иначе

digitalWrite(1,0);

 

Для регулировки яркости впихнуть вместо диджитал аналограйт и в него переменную яркости.

Скажите, а почему именно деление с остатком? Как можно регулировать время свечения и время паузы?

Sanchogus
Offline
Зарегистрирован: 02.01.2015

Т.к. тебе пофиг сейчас 30000мс или 1234мс или хрен знает сколько. Остаток от деления на 1000 даст число от 0 до 1000-1

В зависимости от условия

if ((millis() % 1000) > 500)

digitalWrite(1,1);//если остаток от деления больше 500мс

else//иначе

digitalWrite(1,0);

Получаем нужный коэф. заполнения/скважность.

Когда значение миллисекунд будет не 0 или 1000 и т.д., а например 501, 1501 и т.д., то остаток от деления вернет 501 и условие выполняется, следовательно врубаем свет.

Если вместо 500 сделать переменную, то изменяя её значение изменим коэф. заполнения, а следовательно и яркость.

А если вместо деления на 1000 сделать тоже переменную, то можно регулировать и частоту этого ШИМа.