The MOC3021 is an optocoupler with a triac output. It's used to drive a power triac typically to switch mains operated appliances. Triacs can only be used in AC circuits.
You need an optocoupler with a transistor output, preferably one with two LEDs in antiparallel at the input. The SFH620A is such a part.
The two LEDs in antiparallel ensure that the transistor is activated on both half cycles of the mains. Many optocouplers only have 1 LED, that would work, but give you an output pulse of 10ms in a 20ms period for 50Hz. You would need to place a diode in antiparallel to the input also in that case, to protect the LED from overvoltage when reverse polarized.
Important is CTR or Current Transfer Ratio, which indicates how much output current the transistor will sink for a given LED current. CTR is often not very high, but for the SFH620A we can choose a value of 100% minimum, only that's at 10mA in, at 1mA it's only 34% minimum, so that 1mA in means at least 340\$\mu\$A out.
Let's suppose the output goes to a 5V microcontroller and that you would use the 2k\$\Omega\$ pull-up resistor shown in the diagram. If the transistor is off it won't draw current, except for a small leakage current, 100nA maximum, according to the datasheet. So that will cause a voltage drop of 200\$\mu\$V across the resistor, which is more than safe.
If the transistor is on, and it draws 340\$\mu\$A then the voltage drop across the resistor is only 680mV, and that's way too low to get a low level. We'll have to increase either the resistor's value or the current. Since we had a lot of margin on the leakage current we can safely increase the resistor value to 15k\$\Omega\$ for instance. Then 340\$\mu\$A will give a sufficiently low output voltage. (Theoretically 5.1V voltage drop, but there's only 5V available, so it will go to ground.) The voltage drop because of the leakage current is still well within limits at 1.5mV.
If we want to have a CTR of at least 34% at 1mA we have to use the SFH620A-3.
If this would be controlled from a DC source we would almost be done. Just add R1 in series with the LEDs, R2 will probably not be needed. Then R1 \$\leq\$ (\$V_{IN}\$ - \$V_{LED}\$) / 1mA.
But we have to deal with a 230V AC input signal. At the zero crossings there won't be any current, there's little we can do about that. How can we get at least 1mA for most of the cycle without wasting too much power? This is a trade-off. You can have the 1mA for just the maximum voltage, and that will give you only a small pulse, but you'll waste the least power. Or you can go for 1mA for most of the cycle, but then you'll have more current when the voltage is highest. Let's say we want at least a 9ms pulse in a 10ms half period (50Hz). That means the current has to be 1mA at a 9° phase until 171°. 230V AC is 325V peak, but we have to take a -6% tolerance into account, so that's 306V minimum. 306V \$\times\$ sin(9°) = 48V. R1 \$\leq\$ (48V - 1.65V) / 1mA = 46.2k\$\Omega\$. (The 1.65V is the LED's maximum voltage.) The closest E24 value is 43k\$\Omega\$. Then we have more than 1mA at a 9° phase, but what at the voltage's maximum. For that we have to work with the positive tolerance, max. 10%. Then peak voltage is 230V \$\times\$ \$\sqrt{2}\$ \$\times\$ 110% = 358V. Maximum current is then (358V - 1.25V) / 43k\$\Omega\$ = 8.3mA. (The 1.25V is the LED's nominal voltage). That's well below the optocoupler's limit.
We won't be able to do this with just 1 resistor. It probably can't stand the high voltage, and may have power dissipation problems too, we'll come to that in a minute. Peak voltage across the resistor is 357V. The MFR-25 resistor is rated at max 250V, so we'll need at least 2 of them in series. How about power? 230V+10% in 43k\$\Omega\$ is 1.49W. The MFR-25 is only rated at 1/4W, so two of them won't do. Now you can choose to have more of them in series, but that would have to be at least 6, or choose a higher rated resistor. The MFR1WS (same datasheet) is rated at 1W, so 2 in series will do. Remember that we'll have to divide the resistor value by 2: 21.5k\$\Omega\$, which is not an E24 value. We can choose the closest E24 value an d check our calculations, or choose an E96. Let's do the latter.
That's all, folks. :-)
edit
I suggested in comment that there's a lot more which has to be accounted for, this answer could well be 3 times as long. There's for instance the input leakage current of the AVR's I/O pin, which can be ten times as high as the transistor's. (Don't worry, I checked it, and we're safe.)
Why didn't I choose an optocoupler with Darlington output? They have a much higher CTR.
The main reason is the Darlington's saturation voltage, which is much higher than for a common BJT. For this optocoupler for instance it can be as high as 1V. For the ATmega16L you're using the maximum input voltage for a low level is 0.2 \$\times\$ \$V_{DD}\$, or 0.66V at a 3.3V supply. The 1V is too high. That's the main reason.
Another reason could be that it may not really help. We do have enough output current, it's just that the 1mA input current is so high that we need power resistors for them. Darlingtons don't necessarily solve this if they're also only specified at 1mA. At a 600% CTR we'd get 6mA collector current, but we don't need that. Can't we do anything about the 1mA in? Probably. For the optocoupler I mentioned the Electrical Characteristics only talk about 1mA. There's a graph in the datasheet, fig.5: CTR versus forward current, which shows a CTR of more than 300% at 0.1mA. You have to be careful with these graphs. While tables often give you minimum and/or maximum values, graphs usually give you typical values. You may have 300%, but it may be lower. How much lower? It doesn't say. If you build just one product you can try it, but you can't do that for every optocoupler if you want to run a 10k/year production.
It might work. Say you use 100\$\mu\$A in, and at a relatively safe CTR value of 100% you would have 100\$\mu\$A out. You would have to do the calculations again, but your major advantage will be that the input resistors will only dissipate 150mW, instead of 1.5W. It way be worth it.
The resistor value is calculated like any common LED
$$ R= \frac {V_{in}-ledV_F}{I_{LED}} $$
The actual value depends on the current you want through the LED
For 60mA and typical VF= 1.25v
$$ R= \frac {24v-1.25v}{{0.060A}}$$ which results to about 380 Ohm
If you want to calculate for VF= 1.5v
$$ R= \frac {24v-1.5v}{{0.060A}}$$ which results to about 375 Ohm
Peter Bennett made a good point in the comments below about the resistor power rating, make sure it is appropriately sized.
The resistor power is calculated as
$$ P= {I}^2 * R = {0.06}^2 * 380 ohm = 1.368W $$ so a 2W resistor should be good enough
Best Answer
The opto-coupler has a forward transfer characteristic that specifies how much photo-transistor current will result from so much LED current i.e. Ic/If. With your device at If = 1 mA, the minimum figure specified for your range of devices is 13%, so let's work with this.
Your Ic load as shown is approx. 10 uA. I imagine you're driving a further load, probably a logic gate, so let's allow for Ic = 50 uA. You can buffer the opto-isolator output with a transistor if you need any more output current than that. That makes If at least (100/13) x 50 uA or 384.6 uA, so let's work with an If of 400 uA.
You don't say what your application is or what sort of waveform you're looking for from the opto-isolator. I'll have to make a presumption about your circuit so that I can proceed with the arithmetic: the output must pulse logic low while mains is present, it doesn't have to be continuous. Your circuit currently does this, losing output at lower voltages near zero-crossing.
So the series resistor value must be high enough to not dissipate excessive average power, while low enough to let enough If through during the lower part of the mains cycle. Let's start with the latter.
UK mains is 230 Vrms +10%/-6% so the peak voltage of the waveform is (230 x 1.1) x sqrt(2) or 358 V.
The resistance to let 400 uA through at an instantaneous mains voltage level Vm down to, say, 20 V and with the opto-coupler's max. Vf of 1.65 V is:
(20 - 1.65) / 0.0004 = 45,875 = 44 K
From Prms = Vrms^2/R, the average power dissipation in the same resistance from 230 Vrms +10% is :
(230 x 1.1)^2 / 44,000 = 1.45 W
This is unacceptably high for the function being performed, so let's have the opto-coupler work from Vm down to 80 V and try again:
(80 - 1.65) / 0.0004 = 195,875 = 200 K
(230 x 1.1)^2 / 200,000 = 320 mW
This is much more palatable. Now to the implementation itself...
The circuit needs to have Single Point Of Failure (SPOF) protection to operate safely from the mains. This means that the effect of a failure of a single component in your mains-powered circuit needs to be considered for every component. For SPOF, 'failure' means that the component fails short-circuit or open-circuit. Components don't all fail this way in real life but this is how it is considered in SPOF.
Considering SPOF here, a single series resistor could fail short-circuit and destroy the opto-isolator so two series resistors are used instead for SPOF protection. If one fails short-circuit, the other must still be working as we are considering a single point of failure. Each resistor must be rated the handle the full power it would then have to dissipate:
(230 x 1.1)^2 / 100,000 = 640 mW
For reliable circuit operation over a long lifetime, we will derate it for power and use 1 W part. This allows about 50 % margin over what it could ever dissipate against what it can handle continuously dissipating.
So, we finally get to a circuit:
simulate this circuit – Schematic created using CircuitLab
With mains applied, Vout will drive low when mains voltage Vm is above +Vmol or below -Vmol.
Vm for output low (Vmol) is somewhere between an maximum range of 1.65 V and 80 V, depending on the particular opto-isolator and load. But this is only a maximum range and the real transition range will be much narrower than that. As an educated-but-complete guess, it'll be between 30 V and 50 V.
In practice, if the slew rate of Vout is too slow to be used by its loading circuit then pass it through a Schmitt trigger first, such as an op-amp or one (or two, for non-inverted) 74xx14 Schmitt inverters. If you require a continuous level on Vout, use Vout to trigger a retriggerable monostable with a minimum period of 10 ms and take the monostable output as your signal.