Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!

Но, если вы хотите управлять яркостью лампы освещения, необходимо использовать драйвер без детектора нуля (MOC305X) и самостоятельно открывать его в нужные моменты.
Похоже Вы не учили закон Ома
Интересно на Вашу формулу расчета посмотреть, но все же лучше будет если Вы в расчетах будете использовать закон Ома.
Защищать от чего?
Сами придумали или есть ссылка на первоисточник? Хотелось бы на Ваш код взглянуть, в статье его к сожалению не увидел.
То есть по Вашему эта формула ни какого отношения к закону Ома не имеет?
И еще, при расчете Вы забыли учесть коэффициент «Эффективного напряжения»
Опять Вы гадаете на кофейной гуще? Откройте DS на MOC
Для спонтанного включения лампы придется открыть симистор, а он как мы знаем гальванически развязан от контроллера, а питание контроллера стабилизировано и отфильтрует любую помеху. Наверно помехе как то придется зажечь светодиод оптрона, для открытия симистора?
Может объясните как?
Я то и читать почти не умею.
По моему это Вы статью написали, я Вам ее дописывать не собираюсь.
У меня статья про Dimmer лежит в черновиках, как допишу так сразу выложу
Судя по всему у Вас его просто нет.
// Event queue interrupt
void processQueue() {
static const uint16_t GAP = 20;
uint16_t zeroTime = timer::elapsedSinceZero();
uint16_t next;
if (prevZeroTime > zeroTime) {
guard = false;
}
prevZeroTime = zeroTime;
if (guard) {
OCR5A = max_time(timer::zeroCross() + timer::sinePeriod(), TCNT5 + 5);
return;
}
do {
next = bulbQueue.execute(zeroTime);
zeroTime = timer::elapsedSinceZero();
} while(next < zeroTime + GAP && next >= zeroTime);
if (next == uint16_t(~0)) {
guard = true;
bulbQueue.resetIterator();
OCR5A = max_time(timer::zeroCross() + timer::sinePeriod(), TCNT5 + 5);
if (bulbQueue.swapScheduled()) {
bulbQueue.swap();
interrupts();
bulbQueue.populateMutable();
}
} else {
OCR5A = max_time(timer::zeroCross() + (uint16_t)next, TCNT5 + 5);
}
}
ISR(TIMER5_COMPA_vect) {
processQueue();
}

Скорость вентиляторов можно регулировать с помощью бесступенчатого симисторного регулятора скорости
внимательным чтением datashit'а
Доброго времени суток! Детектор перехода через ноль отвечает только за отпирание или он будет держать симистор открытым до нуля, даже если ик-светодиод уже отключен. Просто думаю: если рулить по переднему фронту, то можно ли будет менять состояние симистора между переходами через ноль, или детектор нуля будет держать состояние до нуля?
Управление мощной нагрузкой переменного тока