Световой диммер
- Войдите на сайт для отправки комментариев
Пт, 18/10/2013 - 14:57
Собрал эту схему: http://cxem.net/arduino/arduino71.php. Если принудительно подать высокий сигнал на третий цифровой вывод, то семистор открывается, но обрабатывать прерывания с второго цифрового пина(датчик пересечения нуля(4n25)) ардуина не хочет. Использовал я про мини.
Скетч:
int AC_LOAD = 3; // Output to Opto Triac pin int AC_VOLTAGE = 180; // Dimming level (0-128) 0 = ON, 128 = OFF void setup() { pinMode(AC_LOAD, OUTPUT);// Set AC Load pin as output attachInterrupt(0 , zero_crosss_int, RISING); // Choose the zero cross interrupt # from the table above pinMode(13, OUTPUT); } // the interrupt function must take no parameters and return nothing void zero_crosss_int() // function to be fired at the zero crossing to dim the light { // Firing angle calculation : 1 full 50Hz wave =1/50=20ms // Every zerocrossing thus: (50Hz)-> 10ms (1/2 Cycle) For 60Hz => 8.33ms // 10ms=10000us // (10000us - 10us) / 128 = 75 (Approx) For 60Hz =>65 digitalWrite(13, HIGH); int dimtime = (AC_VOLTAGE/31); // For 60Hz =>65 delay(10+dimtime); // Off cycle digitalWrite(AC_LOAD, HIGH); // triac firing delayMicroseconds(1.2); // triac On propogation delay (for 60Hz use 8.33) digitalWrite(AC_LOAD, LOW); // triac Off digitalWrite(13, LOW); } void loop() { }
Если после датчика нуля подключить светодиод, то он едва заметно мерцает(прерывания присутствуют, но контроллер их не видит).
Помогите, кто может)
P.S. выложил я измененный скетч, но пробовал я и оригинал:
вы 4n25 к какому входу ардуино подключили? может просто не на тот вход подключили и поэтому прерываний нет? Ну и конечно подключение оптрона к сети и к аржуино надо парочку раз перепроверить и наличие контакта и отсутствие замыканий и то что выводы не перепутаны. Схема простая, если правильно собрать она не может не заработать. Если есть осциллограф или логический анализатор - легко посмотерть что там происходит
скетч жутко кривой, начиная с того, что delayMicroseconds принимает только целые числа http://arduino.cc/en/Reference/DelayMicroseconds и заканчивая тем, что внутри прерываний использованы тупые задержки
у вас задача какая? если вы хотите сделать диммер у которого будет уровень задан константой в программе как в вашем скетче - оно еще как-то будет работать, но если вы хотите извне менять, то лучше переписать код убрав delay из обработки прерываний заменив на исопльзование прерываний по таймеру
Не смотря на срок давности, хочу все-таки ответить)
Скетч, не смотря на свою кривизну работает, в тот раз мне попался дохлый оптрон - заменил. В процессе откладки добавил подтягивающий к нулю резистор к управляющему выводу(накапливался заряд и переодически moc3021 самопроизвольно открывался). Теперь все работает =)
По классике - полезно симистор шунтировать снабберной цепочкой. http://forum.easyelectronics.ru/viewtopic.php?f=14&t=2671&view=previous цепочка R=39 и C=0.01.
Да, кстате, о цепочке.
Она всегда 39 и 0.01? Или как-то считается? Мощность нагрузки 3 Вт (светодиодная сборка), но это какая-то явно индуктивная сборка - когда втыкаешь/вынимаешь с розетки, видна искра. Столкнулся с проблемой в модели светофора, он с такими лампами постоянно перезагружается или вообще виснет, несмотря на watchdog (питается от сети через китайский импульсный блок 5В 1А). Если вместо импульсника поставить трансформатор, выпрямитель и 7805, то всё равно идут косяки, а если запитать от USB - никаких проблем. С лампочками на 12В этих проблем не было, поставил бы их да начальство упёрлось, типа "уплочено, детали закуплены" и т. п. Понимаю что оффтоп но вроде как защита к этой теме хоть как-то относится.
Просвятите, т. к. в аналоговой электронике - полный нуб, и из приборов только китайский тестер, осциллограф только в мечтах.
Снаберная цепочка нужна чтобы предотвратить самопроизвольное открытие семистора, хотя такое открытие может генерить лишние помехи
в вашем случае снабер не помешает как и дополнительный фильтр по питанию. Плата ардуино?
Да, кстате, о цепочке. Она всегда 39 и 0.01? Или как-то считается?
Говорят, что как-то считается, но эти номиналы подходят для достаточно широкого диапазона мощностей.
Если надо гасить искру на вилке-розетке, то это лучше делать с помощью NTC-резистора, по аналогии с компьютерным блоком питания...
Снаберная цепочка нужна чтобы предотвратить самопроизвольное открытие семистора, хотя такое открытие может генерить лишние помехи
в вашем случае снабер не помешает как и дополнительный фильтр по питанию. Плата ардуино?
В его случаи снабер будет лишним, так как через эту цепь будет течь ток и светодиоды будут постоянно, светиться
Да, кстати, пробовал поставить 120 Ом и 0.047 мкФ, сборки светились. С резистором 240 Ом норм, но всё же бывают висяки. Плата не дуино, собрано на отдельной меге.
Схема на каждый канал такая:
Разводка такая:
фотка паршивая так что макет вот:
Кислотно-зелёная яркая дорожка вдоль релюх - общий провод 220. Она разведена прямо рядом с плюсом питания, идущим к обмоткам и защитным диодам, и батя уже не раз сказал на эту тему "ой зря ты так, зря зря зря зря зря зря". Если непонятно что слева - там зарезервировано SPI и два провода (для nRF24L01, на случай синхронизации нескольких по радио), один вход под оптрон, один выход под три транзистора (для светодиодов в других оптронах, на случай синхро по кабелю).
По схеме R2 и C1 напаяно уже сверху навесным монтажом. Как уже писалось выше - тупит меньше чем раньше, но всё же немного есть. С вероятностью ~70% вешается после 15 минут работы. С питанием всё чотко, мощный блок с электролитом 3300 и керамикой 0.1, и непосредственно возле МК ещё керамика.
Уже жалею что не сказал заказчику сразу сделать на светодиодной ленте, рулили бы обычными TIP122 и не знали бы проблем...
Кислотно-зелёная яркая дорожка вдоль релюх - общий провод 220. Она разведена прямо рядом с плюсом питания, идущим к обмоткам и защитным диодам, и батя уже не раз сказал на эту тему "ой зря ты так, зря зря зря зря зря зря".
Это не страшно, а вот красную петлю по всей плате - я бы "срезал" перемычкой в середине. Она, скорее всего, и ловит помеху от искры в реле... Еще и питание силовое и процессорное не разделено ничем...
Поставь злектролит 47-100мкф и керамику 0,1мкф по питанию контроллера. Паять нужно максимально близко к самому контроллеру
0.1 рядом с МК уже есть, а 47.0-100.0 это мысль, надо поставить. Не разделил питание реле от МК т. к. из соображений "в схеме старого светофора на микросхемах серии К155 было так же", да и едят они не ахти, 70 мА каждая, то есть запас по питанию трёхкратный.
По искрогасящей цепочке интересно сколько что может быть максимум и как оно влияет. Если верно помню, вроде чем больше конденсатор, тем бОльший ток можно коммутировать. Т. е. в этом случае должно быть само то маленький конденсатор и большой резистор. Поправьте если не правильно.
на своей плате ресет к плюсу подтянули?
Красный провод возле сетевого зелёного - не хорошо. Действительно, лучше всю петлю красного убрать, а пустить перемычку к реле. Танталовый конденсатор на 10...47 мкФ 10 В по питанию микроконтроллера не помешает.