Hi Guys,
I bought a Digital AC Dimmer Module from InMojo and it worked great for a while until the bridge rectifier popped, I am not sure if the rectifier I ended up with was just a dud.
But now I have a small problem, I cannot get hold of the replacement part in my country for
D1 = DF1504S, and the closest bridge rectifier I can get is the
W10M, our electronics store in my town was out of stock of the
W04M which appears to be the closest match to the
DF1504S so I bought the
W10M hoping it will suffice as a replacement, obviously it is not a SMD type but I can make a plan to fit it on the board.
Our power in my country is rated at
230VAC @ 50hz, so my question is will the
W10M work as a replacement for the
DS1504S/W04M, as it has higher Peak Reverse Voltage, higher RMS Bridge Input Voltage and higher DC Blocking Voltage and the rest of the electrical characteristics are identical...
Here is the datasheet showing the comparative
W04M and
W10M characteristics:
http://www.futurlec.com/Diodes/W04M.shtml and as can be seen here:
http://pdf1.alldatasheet.com/datasheet-pdf/view/82169/COMCHIP/DF1504S.html, the
DF1504S electrical characteristics are identical to the
W04M, so is it possible to use the
W10M and it's higher voltage ratings as a replacement for the
DF1504S/W04MRegards
GrantHere is the schematic and pcb layout:
Sketch for 50hz/*
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);
}
Sketch for 60hz/*
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 :: 60Hz-> 8.33ms (1/2 Cycle)
// (8333us - 8.33us) / 128 = 65 (Approx)
int dimtime = (65*dimming);
delayMicroseconds(dimtime); // Off cycle
digitalWrite(AC_LOAD, HIGH); // triac firing
delayMicroseconds(8.33); // triac On propogation delay
digitalWrite(AC_LOAD, LOW); // triac Off
}
void loop()
{
dimming = 128;
delay(100);
dimming = 75;
delay(100);
dimming = 25;
delay(100);
}