![]() |
|
![]() |
#1 | |
Junior Member
Регистрация: 18.01.2017
Сообщений: 8
Вес репутации: 0 ![]() |
![]() Цитата:
Признаюсь честно, не так давно заинтересовался программированием МК, причем с целью именно прикладного применения. Язык С++ изучаю уже 3й день и видимо по этому у меня есть вопросы по данному коду ![]() Не сочтите за неуважение! Как я понял, изначально мы назначаем нулевому прерыванию на входе 2 запускать функцию detect_up() при появлении низкого уровня (переход через ноль). Эта функция обнуляет счетчик tic и запускает таймер1 "тикать" с периодичностью 40мкс, заодно переопределяя функцию и условие нулевого прерывания. В это время таймер "тикает", синусоида ползет вверх и когда количество тиков превышает "уровень" диммера, на выход подается единица, лампочка светит с этого момента синусоиды и до её спада до нуля. При переходе через ноль, функция detect_down() останавливает тиканье таймера, обнуляет его и ставит ноль на выходы, "гася лампочку" на какую-то часть периода, до нового запуска цикла. Верно ли я мыслю? Отсюда первый вопрос, почему всего 201 уровень (0...200), если в полупериод 50Гц укладывается 250 отрезков по 40мкс? И ещё объясните пожалуйста значение выражения volatile uint8_t tic? Это что-то связанное с работой регистров? 8 это разрядность таймера? Спасибо за терпение! Простите за тупость ) |
|
![]() |
![]() |
![]() |
#2 |
Junior Member
Регистрация: 18.01.2017
Сообщений: 2
Вес репутации: 0 ![]() |
![]()
Здравствуйте люди добрые! Как можно осуществить задуманную задачу. С одного радио пульта управлять несколькими лампами. Включать, диммировать по раздельности, а так же всё вместе и сразу, то есть управлять 3-5 ардуино с одного пульта и сразу вместе и по раздельности. Плавное включение и отключение
Последний раз редактировалось Volody; 18.01.2017 в 14:13. |
![]() |
![]() |
![]() |
#3 |
Administrator
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,618
Вес репутации: 9824 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]()
Я так понимаю все от кнопок пульта зависит
Если пульт с одной кнопкой , то ни как |
![]() |
![]() |
![]() |
#4 |
Junior Member
Регистрация: 18.01.2017
Сообщений: 8
Вес репутации: 0 ![]() |
![]() |
![]() |
![]() |
![]() |
#5 |
Junior Member
Регистрация: 18.01.2017
Сообщений: 2
Вес репутации: 0 ![]() |
![]()
НУ это и понятно, что с одной кнопкой никак))))). Кнопок на пульте много и это радует). Вот каждую прописать в скетч и назначить ей нужную команду. Как это сделать? Мне нужно даже просто скетч диммирование с радиопульта и всё, остальное примерно сам знаю как и что, а может и нет)
|
![]() |
![]() |
![]() |
#6 | |||
Administrator
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,618
Вес репутации: 9824 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]() Цитата:
Цитата:
Цитата:
volatile – это спецификатор, применяемый при объявлении переменной. Он сообщает компилятору, что значение переменной может изменяться в любой момент – без какого-либо действия со стороны кода, который компилятор обнаруживает поблизости. |
|||
![]() |
![]() |
![]() |
#7 | |
Junior Member
Регистрация: 18.01.2017
Сообщений: 8
Вес репутации: 0 ![]() |
![]() Цитата:
Понял, получается детектор перехода через ноль имеет задержку, её вы и учли, но это в свою очередь означает, что мы не можем включить нагрузку на 100% мощности, т.к. часть синусоиды в любом случае обрезается, верно? И ещё, 40*200 - выбрано опытным путем, как я понимаю? Но мы ведь можем для удобства сделать например 32 мкс период таймера, что бы в 8000мкс укладывалось 250 значений? Или даже 80мкс, что бы 100 значений (100% с шагом 1%). По uint8_t понял. К теме это не относится, дальше сам ) Спасибо за ответ! |
|
![]() |
![]() |
![]() |
#8 | |||
Administrator
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,618
Вес репутации: 9824 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]() Цитата:
Цитата:
Цитата:
|
|||
![]() |
![]() |
![]() |
#9 |
Junior Member
Регистрация: 18.01.2017
Сообщений: 8
Вес репутации: 0 ![]() |
![]() |
![]() |
![]() |
![]() |
#10 |
Administrator
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,618
Вес репутации: 9824 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]()
Извиняюсь, отсечка там не 2 вольта, а побольше. Это зависит от минимального тока срабатывания оптрона
|
![]() |
![]() |
![]() |
Здесь присутствуют: 33 (пользователей: 0 , гостей: 33) | |
|
|