Управление мощной сетевой нагрузкой, при помощи симистора и ардуино, файлы и код из видео
печатная плата в формате .lay
за основу взята плата отсюда. код взят отсюда
/* AC Light Dimmer - Inmojo AC Voltage dimmer with Zero cross detection Author: Charith Fernanado http://www.inmojo.com charith@inmojo.com License: Released under the Creative Commons Attribution Share-Alike 3.0 License. http://creativecommons.org/licenses/by-sa/3.0 Target: Arduino Attach the Zero cross pin of the module to Arduino External Interrupt pin Select the correct Interrupt # from the below table Pin | Interrrupt # | Arduino Platform --------------------------------------- 2 | 0 | All 3 | 1 | All 18 | 5 | Arduino Mega Only 19 | 4 | Arduino Mega Only 20 | 3 | Arduino Mega Only 21 | 2 | Arduino Mega Only */ int AC_LOAD = 3; // Output to Opto Triac pin int dimming = 128; // Dimming level (0-128) 0 = ON, 128 = OFF void setup() { pinMode(AC_LOAD, OUTPUT); // Set the AC Load as output attachInterrupt(0, zero_crosss_int, RISING); // Choose the zero cross interrupt # from the table above } void zero_crosss_int() // function to be fired at the zero crossing to dim the light { // Firing angle calculation :: 50Hz-> 10ms (1/2 Cycle) // (10000us - 10us) / 128 = 75 (Approx) int dimtime = (75*dimming); delayMicroseconds(dimtime); // Off cycle digitalWrite(AC_LOAD, HIGH); // triac firing delayMicroseconds(10); // triac On propogation delay digitalWrite(AC_LOAD, LOW); // triac Off } void loop() { dimming = 128; delay(100); dimming = 75; delay(100); dimming = 25; delay(100); }