Здравствуйте. Подскажите, плиз, кто использовал в работе диммер https://ru.aliexpress.com/item/AC-L....html?spm=a2g0v.search0104.0.0.478040f0iW67tf Поделитесь кодом, плиз. Можно ли их 2-3 к одной ардуине подключить? благодарю
это по сути просто усилитель сигнала их можно подключить ровно столько, сколько ШИМ выходов есть у вашей ардуины
Не нужно его ШИМ-ом мучить, он на симисторе, на переменное напряжение с Zero-Сross. Да подключить можно и не один. Главное обеспечить стабильность выдачи импульса открытия симистора, относительно импульса от Zero-Сross.
Я делал диммер на два канала, на AtTiny85. Диммер у меня подключен по UART к ESP, который связан по MQTT с OpenHAB. В такой связке, работает очень стабильно. Для устойчивой работы такого диммера самый лучший вариант – это использование прерываний от таймера. Если использовать регистры, код и пины подключения (как например пин INT0) могут несколько отличаться на разных процессорах.
Код (C++): int AC_LOAD = 3; // Output to Opto Triac pin volatile int dimming = 128; // Dimming level (0-128) 0 = ON, 128 = OFF void setup() { Serial.begin(9600); pinMode(AC_LOAD, OUTPUT); attachInterrupt(0, zero_crosss_int, RISING); } void loop() { for (int i=0; i <= 128; i++){ //72 - 116, 123-128 dimming=i; Serial.println(dimming); delay(100); } } void zero_crosss_int() { int dimtime = (75*dimming); delayMicroseconds(dimtime); digitalWrite(AC_LOAD, HIGH); delayMicroseconds(10); digitalWrite(AC_LOAD, LOW); }
Ну, это так, попробовать только. Тут уже обсуждали данный подход и код. Нужно использовать таймер, тогда процессор не будет судорожно крутиться в delay() в прерывании.