An experiment with polarized light, a LEGO apparatus, and an Arduino light sensor-and what I learned when the measurements did not match the expected curve.
In my fifth year of high school, I investigated Malus’s law: how the intensity of polarized light changes as we rotate a polarizing filter. I built an apparatus using LEGO, a laser diode, two polarizers, a photoresistor, and an Arduino Uno. The experiment brought together the physics of light and the electronics needed to measure it.
The most interesting part came when the first results did not follow the curve I expected. I had to look beyond the optical setup and question how I was converting the sensor readings into light intensity. Here, I’ll walk through the experiment, the original measurements, and the limits of the interpretation I used at the time.
Information:
You can download all 65 readings as a CSV, with column definitions and calculation notes. The interactive charts below use my experimental data. Hover or tap a point for its voltage and resistance, drag to zoom, and click a legend entry to hide or show a series. Double-click the plot to reset its view; a static chart is available below each plot.
A linearly polarized light wave has an electric field that oscillates along a fixed direction perpendicular to the direction of propagation.
An ideal linear polarizer transmits the electric-field component parallel to its transmission axis. If the incident field has amplitude \(E_0\) and makes an angle \(\theta\) with that axis, the transmitted amplitude is
\[E = E_0\cos\theta.\]Because intensity is proportional to the square of the field amplitude, we obtain Malus’s law:
Here, \(I_0\) is the intensity of the linearly polarized beam immediately before the analyzer, which is the second polarizer in my apparatus. The angle \(\theta\) is measured between the transmission axes of the two filters. For the ideal case, parallel axes transmit the maximum, crossed axes transmit no light, and a 45° angle gives half the maximum. This is the projection argument described in OpenStax’s explanation of polarization.
| Relative angle | Ideal transmitted fraction |
|---|---|
| 0° | 100% |
| 30° | 75% |
| 45° | 50% |
| 60° | 25% |
| 90° | 0% |
| 180° | 100% |
I suggest keeping the distinction between field amplitude and intensity in mind: the projection gives a cosine, while the intensity follows its square. The pattern repeats every 180°, since reversing a filter’s axis gives the same transmission direction.
My optical path was straightforward:
Laser → fixed polarizer → rotating analyzer → photoresistor.
The first polarizer established a fixed polarization direction, while the second let me vary the angle without rotating the laser itself. The laser pointed downward through the filters toward the sensor. I used a white LEGO support to hold the components and allow manual adjustment of their alignment. The presentation also describes an opaque cardboard enclosure around the structure to reduce interference from room light. The detector was an LDR, or light-dependent resistor: its resistance decreases as more light reaches it.
The circuit used a nominal 5 V supply and a 100 kΩ fixed resistor in series with the LDR. The fixed-resistor value appears in both the presentation’s circuit diagram and the spreadsheet formulas. The voltage was measured across the LDR, rather than across the fixed resistor.
Calling the measured voltage \(V\), the supply \(V_s\), and the fixed resistance \(R_f\), the divider gives
\[V=V_s\frac{R_{\mathrm{LDR}}}{R_f+R_{\mathrm{LDR}}}.\]Solving for the sensor resistance gives
\[R_{\mathrm{LDR}}=R_f\frac{V}{V_s-V}.\]For example, the first set’s reading at 0° was 0.4494 V. Using the nominal circuit values, we obtain
\[R_{\mathrm{LDR}}=100\,\mathrm{k\Omega}\times\frac{0.4494}{5-0.4494} \approx9.8756\,\mathrm{k\Omega}.\]The direction of the response can seem surprising at first: more light lowers the LDR resistance, which also lowers the voltage measured across it. We therefore cannot treat the voltage itself as a quantity proportional to light intensity.
Before interpreting the two-filter measurements, I rotated a single filter relative to the stationary laser and support. The detected signal changed with orientation. In my original report, I interpreted this as evidence that the laser beam was partially polarized.
{"data":[{"type":"scatter","mode":"lines+markers","name":"Detector proxy","x":[0.0,15.0,30.0,45.0,60.0,75.0,90.0,105.0,120.0,135.0,150.0,165.0,180.0],"y":[0.8182583813098417,0.8522383220883779,0.9935660358304668,1.0,0.9944009115316024,0.9720371434461642,0.9297366756921266,0.890241398112152,0.8658665342427451,0.8505622594986362,0.853288919371921,0.8772352785885851,0.9050078817784579],"customdata":[[0.4626,10.195266011372151,0.0],[0.4458,9.788766413420579,15.0],[0.3873,8.396383896633207,30.0],[0.385,8.342361863488623,45.0],[0.387,8.389334489486236,60.0],[0.3952,8.582348853370396,75.0],[0.4117,8.97282217814877,90.0],[0.4284,9.370898591302826,105.0],[0.4394,9.634697188966364,120.0],[0.4466,9.808055518952871,135.0],[0.4453,9.77671416339166,150.0],[0.4342,9.50983398309168,165.0],[0.422,9.217999126256005,180.0]],"marker":{"color":"#477fbc","symbol":"circle","size":8},"line":{"color":"#477fbc"},"hovertemplate":"Plot angle: %{x}°\u003cbr\u003eRelative signal: %{y:.4f}\u003cbr\u003eVoltage: %{customdata[0]:.4f} V\u003cbr\u003eResistance: %{customdata[1]:.4f} kΩ\u003cbr\u003eRecorded angle: %{customdata[2]}°\u003cextra\u003e%{fullData.name}\u003c/extra\u003e"}],"layout":{"title":{"text":"Single-filter control","font":{"size":17}},"autosize":true,"height":440,"margin":{"l":65,"r":20,"t":60,"b":115},"xaxis":{"title":{"text":"Single-filter angle (degrees)"},"dtick":30,"range":[-4.0,184.0],"automargin":true},"yaxis":{"title":{"text":"Normalized inverse resistance"},"tickformat":".0%","range":[0.75,1.04],"automargin":true},"legend":{"orientation":"h","x":0,"y":-0.25},"hovermode":"closest","dragmode":"zoom","showlegend":false}} This chart uses normalized inverse resistance as a sensor proxy, rather than a calibrated intensity measurement. Its vertical axis starts at 75% to make the variation visible. The control suggested that I should not assume the incident beam was unpolarized, although it did not independently determine its degree of polarization. Alignment changes could also affect such a measurement.
Keeping the first polarizer fixed gave the main experiment a defined input polarization while I rotated only the analyzer. The familiar statement that a polarizer transmits half the incident intensity applies to ideal, unpolarized incident light; it should not be assumed for this laser. For the angular comparison, I instead worked with relative signals.
My initial analysis assumed a simple inverse relationship between resistance and light level \(L\):
\[R=\frac{k}{L}.\]If that model were adequate, an unknown constant \(k\) would cancel when taking a ratio:
\[\frac{L}{L_{\mathrm{ref}}}=\frac{R_{\mathrm{ref}}}{R}.\]The report initially used a reference measurement with only the fixed polarizer in place. For Set 1, that reference was 0.4492 V, corresponding to approximately 9.8708 kΩ. The workbook also normalized each two-filter sweep to its own inferred maximum, using the minimum resistance in that sweep. I use this second convention consistently in the comparison charts:
\[y_{\mathrm{inverse}}=\frac{R_{\min}}{R}.\]This normalization makes the maximum equal to one, but it does not establish an absolute light calibration or measure the analyzer’s insertion loss. The first sweep shows why that distinction matters.
| Angle | Measured voltage (V) | Derived resistance (kΩ) | Inverse-model ratio | Ideal \(\cos^2\theta\) |
|---|---|---|---|---|
| −45° | 0.4950 | 10.9878 | 0.8988 | 0.5000 |
| 0° | 0.4494 | 9.8756 | 1.0000 | 1.0000 |
| 30° | 0.5097 | 11.3511 | 0.8700 | 0.7500 |
| 45° | 0.5535 | 12.4480 | 0.7934 | 0.5000 |
| 60° | 0.6676 | 15.4095 | 0.6409 | 0.2500 |
| 90° | 4.0088 | 404.4391 | 0.0244 | 0.0000 |
At 45°, this conversion suggests roughly 79% of the maximum, whereas the ideal prediction is 50%. The differences are too large to describe as a close quantitative match. The readings at −45° and +45° also differ, even though the ideal curve is symmetric. A sensor conversion alone cannot explain every feature of the data.
I then explored an empirical exponential conversion:
\[L=\alpha e^{-\beta R}.\]Normalizing to the same sweep’s maximum removes \(\alpha\):
\[y_{\mathrm{exponential}}=\frac{L}{L_{\max}} =e^{\beta(R_{\min}-R)}.\]The workbook uses \(\beta=0.47\,\mathrm{k\Omega}^{-1}\) for Sets 1, 2, and 3. When resistance is expressed in ohms, the equivalent value is \(4.7\times10^{-4}\,\mathrm{\Omega}^{-1}\). The units must match so that the exponent is dimensionless.
{"data":[{"type":"scatter","mode":"lines","name":"Ideal cos² θ","x":[-90,-89,-88,-87,-86,-85,-84,-83,-82,-81,-80,-79,-78,-77,-76,-75,-74,-73,-72,-71,-70,-69,-68,-67,-66,-65,-64,-63,-62,-61,-60,-59,-58,-57,-56,-55,-54,-53,-52,-51,-50,-49,-48,-47,-46,-45,-44,-43,-42,-41,-40,-39,-38,-37,-36,-35,-34,-33,-32,-31,-30,-29,-28,-27,-26,-25,-24,-23,-22,-21,-20,-19,-18,-17,-16,-15,-14,-13,-12,-11,-10,-9,-8,-7,-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90],"y":[3.749399456654644e-33,0.00030458649045213797,0.0012179748700878838,0.0027390523158633455,0.004865965629214833,0.007596123493895964,0.010926199633097178,0.014852136862001765,0.019369152030840574,0.02447174185242323,0.03015368960704583,0.036408072716606336,0.0432272711786996,0.05060297685041647,0.058526203570536506,0.06698729810778066,0.07597595192178701,0.08548121372247917,0.0954915028125263,0.10599462319663908,0.11697777844051105,0.12842758726130296,0.14033009983067438,0.15267081477050132,0.16543469682057088,0.17860619515673035,0.1921692623371709,0.20610737385376346,0.22040354826462666,0.2350403678833976,0.2500000000000001,0.26526421860705457,0.28081442660546124,0.2966316784620999,0.31269670329204396,0.3289899283371657,0.3454915028125263,0.3621813220915005,0.37903905220016615,0.3960441545911204,0.41317591116653485,0.43041344951996724,0.4477357683661733,0.4651217631279373,0.4825502516487495,0.5000000000000001,0.5174497483512506,0.5348782368720626,0.5522642316338268,0.5695865504800327,0.5868240888334652,0.6039558454088797,0.6209609477998338,0.6378186779084996,0.6545084971874737,0.6710100716628343,0.6873032967079559,0.7033683215379002,0.7191855733945387,0.7347357813929455,0.7500000000000001,0.7649596321166023,0.7795964517353735,0.7938926261462367,0.8078307376628292,0.8213938048432696,0.834565303179429,0.8473291852294987,0.8596699001693257,0.8715724127386971,0.8830222215594891,0.894005376803361,0.9045084971874736,0.9145187862775208,0.924024048078213,0.9330127018922194,0.9414737964294635,0.9493970231495835,0.9567727288213006,0.9635919272833937,0.9698463103929541,0.9755282581475768,0.9806308479691596,0.9851478631379982,0.9890738003669027,0.9924038765061041,0.9951340343707851,0.9972609476841365,0.9987820251299122,0.9996954135095479,1.0,0.9996954135095479,0.9987820251299122,0.9972609476841365,0.9951340343707851,0.9924038765061041,0.9890738003669027,0.9851478631379982,0.9806308479691596,0.9755282581475768,0.9698463103929541,0.9635919272833937,0.9567727288213006,0.9493970231495835,0.9414737964294635,0.9330127018922194,0.924024048078213,0.9145187862775208,0.9045084971874736,0.894005376803361,0.8830222215594891,0.8715724127386971,0.8596699001693257,0.8473291852294987,0.834565303179429,0.8213938048432696,0.8078307376628292,0.7938926261462367,0.7795964517353735,0.7649596321166023,0.7500000000000001,0.7347357813929455,0.7191855733945387,0.7033683215379002,0.6873032967079559,0.6710100716628343,0.6545084971874737,0.6378186779084996,0.6209609477998338,0.6039558454088797,0.5868240888334652,0.5695865504800327,0.5522642316338268,0.5348782368720626,0.5174497483512506,0.5000000000000001,0.4825502516487495,0.4651217631279373,0.4477357683661733,0.43041344951996724,0.41317591116653485,0.3960441545911204,0.37903905220016615,0.3621813220915005,0.3454915028125263,0.3289899283371657,0.31269670329204396,0.2966316784620999,0.28081442660546124,0.26526421860705457,0.2500000000000001,0.2350403678833976,0.22040354826462666,0.20610737385376346,0.1921692623371709,0.17860619515673035,0.16543469682057088,0.15267081477050132,0.14033009983067438,0.12842758726130296,0.11697777844051105,0.10599462319663908,0.0954915028125263,0.08548121372247917,0.07597595192178701,0.06698729810778066,0.058526203570536506,0.05060297685041647,0.0432272711786996,0.036408072716606336,0.03015368960704583,0.02447174185242323,0.019369152030840574,0.014852136862001765,0.010926199633097178,0.007596123493895964,0.004865965629214833,0.0027390523158633455,0.0012179748700878838,0.00030458649045213797,3.749399456654644e-33],"line":{"color":"#477fbc","width":2},"hovertemplate":"Angle: %{x}°\u003cbr\u003eIdeal fraction: %{y:.4f}\u003cextra\u003e%{fullData.name}\u003c/extra\u003e"},{"type":"scatter","mode":"markers","name":"Inverse model","x":[-90.0,-75.0,-60.0,-45.0,-30.0,-15.0,0.0,15.0,30.0,45.0,60.0,75.0,90.0],"y":[0.07201364845587911,0.5136474133381966,0.7817378003421097,0.8987812462958596,0.9364241690984422,0.975848884220842,1.0,0.9513948763806261,0.8700117729237857,0.7933504584463503,0.6408798613247215,0.3250174273371359,0.024418068584717716],"customdata":[[2.8915,137.13540431586438,-90.0],[0.8063,19.22645873572263,-75.0],[0.5608,12.63290683005947,-60.0],[0.495,10.987791342952276,-45.0],[0.477,10.546097722750387,-30.0],[0.4595,10.120030833608634,-15.0],[0.4494,9.875620797257504,0.0],[0.4702,10.380149233961765,15.0],[0.5097,11.35113466806227,30.0],[0.5535,12.44799280332846,45.0],[0.6676,15.409472809528207,60.0],[1.1652,30.384896213622614,75.0],[4.0088,404.43906376109766,90.0]],"marker":{"color":"#b95757","symbol":"circle","size":8},"line":{"color":"#b95757"},"hovertemplate":"Plot angle: %{x}°\u003cbr\u003eRelative signal: %{y:.4f}\u003cbr\u003eVoltage: %{customdata[0]:.4f} V\u003cbr\u003eResistance: %{customdata[1]:.4f} kΩ\u003cbr\u003eRecorded angle: %{customdata[2]}°\u003cextra\u003e%{fullData.name}\u003c/extra\u003e","error_x":{"type":"constant","value":2,"visible":true,"color":"#b95757","thickness":1,"width":3}},{"type":"scatter","mode":"markers","name":"Exponential model","x":[-90.0,-75.0,-60.0,-45.0,-30.0,-15.0,0.0,15.0,30.0,45.0,60.0,75.0,90.0],"y":[1.0566612405692836e-26,0.012340190400589252,0.2736447804429161,0.5929055565616757,0.7296982729691777,0.8914796068087235,1.0,0.7888900154529627,0.49982786027973874,0.2984911953637495,0.07420598692320296,0.00006511475092602985,2.8996044742841536e-81],"customdata":[[2.8915,137.13540431586438,-90.0],[0.8063,19.22645873572263,-75.0],[0.5608,12.63290683005947,-60.0],[0.495,10.987791342952276,-45.0],[0.477,10.546097722750387,-30.0],[0.4595,10.120030833608634,-15.0],[0.4494,9.875620797257504,0.0],[0.4702,10.380149233961765,15.0],[0.5097,11.35113466806227,30.0],[0.5535,12.44799280332846,45.0],[0.6676,15.409472809528207,60.0],[1.1652,30.384896213622614,75.0],[4.0088,404.43906376109766,90.0]],"marker":{"color":"#479061","symbol":"square","size":8},"line":{"color":"#479061"},"hovertemplate":"Plot angle: %{x}°\u003cbr\u003eRelative signal: %{y:.4f}\u003cbr\u003eVoltage: %{customdata[0]:.4f} V\u003cbr\u003eResistance: %{customdata[1]:.4f} kΩ\u003cbr\u003eRecorded angle: %{customdata[2]}°\u003cextra\u003e%{fullData.name}\u003c/extra\u003e","error_x":{"type":"constant","value":2,"visible":true,"color":"#479061","thickness":1,"width":3}}],"layout":{"title":{"text":"Set 1 · β = 0.47 kΩ⁻¹","font":{"size":17}},"autosize":true,"height":440,"margin":{"l":65,"r":20,"t":60,"b":115},"xaxis":{"title":{"text":"Relative polarizer angle θ (degrees)"},"dtick":30,"range":[-94.0,94.0],"automargin":true},"yaxis":{"title":{"text":"Inferred light / inferred maximum"},"tickformat":".0%","range":[-0.045,1.08],"automargin":true},"legend":{"orientation":"h","x":0,"y":-0.25},"hovermode":"closest","dragmode":"zoom","showlegend":true}} The red points use the original inverse model, while the green points use the exponential model. The blue line is the ideal prediction, and the horizontal bars show the report’s ±2° angular uncertainty. Both sets of points come from the same measured voltages. The curve changes because the conversion changes, rather than because I collected a new set of readings.
The exponential model brings many points closer to the expected shape, but substantial discrepancies remain. For example, the converted values at −45° and +45° are approximately 0.593 and 0.298, compared with a theoretical value of 0.5 for both. I would describe this as improved agreement under an empirical model, rather than a precise verification of the law.
An LDR is not automatically a calibrated light meter. Its response depends on the particular sensor and the illumination conditions, as discussed in Adafruit’s photocell guide. The exponential expression here was an exploratory approximation from my original project, not a universal law for photoresistors.
The workbook contains two further sweeps analyzed with the same value of \(\beta\). They cover 0° to 180°, rather than the −90° to +90° interval used in Set 1.
{"data":[{"type":"scatter","mode":"lines","name":"Ideal cos² θ","x":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180],"y":[1.0,0.9996954135095479,0.9987820251299122,0.9972609476841365,0.9951340343707851,0.9924038765061041,0.9890738003669027,0.9851478631379982,0.9806308479691596,0.9755282581475768,0.9698463103929541,0.9635919272833937,0.9567727288213006,0.9493970231495835,0.9414737964294635,0.9330127018922194,0.924024048078213,0.9145187862775208,0.9045084971874736,0.894005376803361,0.8830222215594891,0.8715724127386971,0.8596699001693257,0.8473291852294987,0.834565303179429,0.8213938048432696,0.8078307376628292,0.7938926261462367,0.7795964517353735,0.7649596321166023,0.7500000000000001,0.7347357813929455,0.7191855733945387,0.7033683215379002,0.6873032967079559,0.6710100716628343,0.6545084971874737,0.6378186779084996,0.6209609477998338,0.6039558454088797,0.5868240888334652,0.5695865504800327,0.5522642316338268,0.5348782368720626,0.5174497483512506,0.5000000000000001,0.4825502516487495,0.4651217631279373,0.4477357683661733,0.43041344951996724,0.41317591116653485,0.3960441545911204,0.37903905220016615,0.3621813220915005,0.3454915028125263,0.3289899283371657,0.31269670329204396,0.2966316784620999,0.28081442660546124,0.26526421860705457,0.2500000000000001,0.2350403678833976,0.22040354826462666,0.20610737385376346,0.1921692623371709,0.17860619515673035,0.16543469682057088,0.15267081477050132,0.14033009983067438,0.12842758726130296,0.11697777844051105,0.10599462319663908,0.0954915028125263,0.08548121372247917,0.07597595192178701,0.06698729810778066,0.058526203570536506,0.05060297685041647,0.0432272711786996,0.036408072716606336,0.03015368960704583,0.02447174185242323,0.019369152030840574,0.014852136862001765,0.010926199633097178,0.007596123493895964,0.004865965629214833,0.0027390523158633455,0.0012179748700878838,0.00030458649045213797,3.749399456654644e-33,0.00030458649045213374,0.0012179748700878752,0.0027390523158633325,0.004865965629214847,0.007596123493895981,0.010926199633097199,0.014852136862001736,0.019369152030840543,0.024471741852423196,0.030153689607045793,0.036408072716606295,0.04322727117869955,0.050602976850416516,0.05852620357053656,0.06698729810778072,0.07597595192178694,0.08548121372247912,0.09549150281252623,0.105994623196639,0.11697777844051097,0.12842758726130288,0.14033009983067446,0.15267081477050137,0.16543469682057094,0.17860619515673024,0.19216926233717094,0.20610737385376335,0.22040354826462671,0.2350403678833975,0.24999999999999978,0.2652642186070547,0.28081442660546113,0.2966316784620999,0.3126967032920438,0.3289899283371657,0.34549150281252616,0.3621813220915005,0.37903905220016615,0.39604415459112013,0.41317591116653485,0.43041344951996713,0.4477357683661733,0.4651217631279372,0.48255025164874965,0.4999999999999999,0.5174497483512506,0.5348782368720626,0.5522642316338264,0.5695865504800327,0.5868240888334649,0.6039558454088797,0.6209609477998338,0.6378186779084998,0.6545084971874736,0.6710100716628346,0.6873032967079559,0.7033683215379,0.7191855733945387,0.7347357813929453,0.7500000000000001,0.7649596321166023,0.7795964517353735,0.7938926261462365,0.8078307376628292,0.8213938048432696,0.8345653031794289,0.8473291852294987,0.8596699001693254,0.8715724127386971,0.8830222215594888,0.894005376803361,0.9045084971874736,0.9145187862775209,0.924024048078213,0.9330127018922192,0.9414737964294635,0.9493970231495833,0.9567727288213006,0.9635919272833937,0.9698463103929541,0.9755282581475766,0.9806308479691596,0.9851478631379982,0.9890738003669027,0.9924038765061041,0.9951340343707851,0.9972609476841365,0.9987820251299122,0.9996954135095479,1.0],"line":{"color":"#477fbc","width":2},"hovertemplate":"Angle: %{x}°\u003cbr\u003eIdeal fraction: %{y:.4f}\u003cextra\u003e%{fullData.name}\u003c/extra\u003e"},{"type":"scatter","mode":"markers","name":"Inverse model","x":[0.0,15.0,30.0,45.0,60.0,75.0,90.0,105.0,120.0,135.0,150.0,165.0,180.0],"y":[0.9876413426922199,0.963281795598464,0.9336774918817105,0.8519826939353281,0.7248322946517831,0.3691747050600644,0.00997439749612284,0.3217559785344712,0.6993501884203877,0.867081024589614,0.9486042877592475,0.9854892134648722,1.0],"customdata":[[0.4533,9.969868256097827,0.0],[0.4637,10.221987081983116,15.0],[0.477,10.546097722750387,30.0],[0.518,11.557340473003123,45.0],[0.598,13.584734211721944,60.0],[1.0528,26.67207134171058,75.0],[4.5401,987.1928680147853,90.0],[1.1716,30.602862814752896,105.0],[0.6171,14.07971890757261,120.0],[0.5099,11.356094519053029,135.0],[0.4702,10.380149233961765,150.0],[0.4542,9.991640635311716,165.0],[0.4482,9.846654070917,180.0]],"marker":{"color":"#b95757","symbol":"circle","size":8},"line":{"color":"#b95757"},"hovertemplate":"Plot angle: %{x}°\u003cbr\u003eRelative signal: %{y:.4f}\u003cbr\u003eVoltage: %{customdata[0]:.4f} V\u003cbr\u003eResistance: %{customdata[1]:.4f} kΩ\u003cbr\u003eRecorded angle: %{customdata[2]}°\u003cextra\u003e%{fullData.name}\u003c/extra\u003e","error_x":{"type":"constant","value":2,"visible":true,"color":"#b95757","thickness":1,"width":3}},{"type":"scatter","mode":"markers","name":"Exponential model","x":[0.0,15.0,30.0,45.0,60.0,75.0,90.0,105.0,120.0,135.0,150.0,165.0,180.0],"y":[0.9437342502499895,0.8382771416623076,0.7198312162258471,0.44752511990333244,0.17257943320051855,0.0003678092423861735,3.203673259877119e-200,0.00005797967095677414,0.136758255087953,0.4919210658506083,0.7782225617463124,0.9341262437566602,1.0],"customdata":[[0.4533,9.969868256097827,0.0],[0.4637,10.221987081983116,15.0],[0.477,10.546097722750387,30.0],[0.518,11.557340473003123,45.0],[0.598,13.584734211721944,60.0],[1.0528,26.67207134171058,75.0],[4.5401,987.1928680147853,90.0],[1.1716,30.602862814752896,105.0],[0.6171,14.07971890757261,120.0],[0.5099,11.356094519053029,135.0],[0.4702,10.380149233961765,150.0],[0.4542,9.991640635311716,165.0],[0.4482,9.846654070917,180.0]],"marker":{"color":"#479061","symbol":"square","size":8},"line":{"color":"#479061"},"hovertemplate":"Plot angle: %{x}°\u003cbr\u003eRelative signal: %{y:.4f}\u003cbr\u003eVoltage: %{customdata[0]:.4f} V\u003cbr\u003eResistance: %{customdata[1]:.4f} kΩ\u003cbr\u003eRecorded angle: %{customdata[2]}°\u003cextra\u003e%{fullData.name}\u003c/extra\u003e","error_x":{"type":"constant","value":2,"visible":true,"color":"#479061","thickness":1,"width":3}}],"layout":{"title":{"text":"Set 2 · β = 0.47 kΩ⁻¹","font":{"size":17}},"autosize":true,"height":440,"margin":{"l":65,"r":20,"t":60,"b":115},"xaxis":{"title":{"text":"Relative polarizer angle θ (degrees)"},"dtick":30,"range":[-4.0,184.0],"automargin":true},"yaxis":{"title":{"text":"Inferred light / inferred maximum"},"tickformat":".0%","range":[-0.045,1.08],"automargin":true},"legend":{"orientation":"h","x":0,"y":-0.25},"hovermode":"closest","dragmode":"zoom","showlegend":true}} {"data":[{"type":"scatter","mode":"lines","name":"Ideal cos² θ","x":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180],"y":[1.0,0.9996954135095479,0.9987820251299122,0.9972609476841365,0.9951340343707851,0.9924038765061041,0.9890738003669027,0.9851478631379982,0.9806308479691596,0.9755282581475768,0.9698463103929541,0.9635919272833937,0.9567727288213006,0.9493970231495835,0.9414737964294635,0.9330127018922194,0.924024048078213,0.9145187862775208,0.9045084971874736,0.894005376803361,0.8830222215594891,0.8715724127386971,0.8596699001693257,0.8473291852294987,0.834565303179429,0.8213938048432696,0.8078307376628292,0.7938926261462367,0.7795964517353735,0.7649596321166023,0.7500000000000001,0.7347357813929455,0.7191855733945387,0.7033683215379002,0.6873032967079559,0.6710100716628343,0.6545084971874737,0.6378186779084996,0.6209609477998338,0.6039558454088797,0.5868240888334652,0.5695865504800327,0.5522642316338268,0.5348782368720626,0.5174497483512506,0.5000000000000001,0.4825502516487495,0.4651217631279373,0.4477357683661733,0.43041344951996724,0.41317591116653485,0.3960441545911204,0.37903905220016615,0.3621813220915005,0.3454915028125263,0.3289899283371657,0.31269670329204396,0.2966316784620999,0.28081442660546124,0.26526421860705457,0.2500000000000001,0.2350403678833976,0.22040354826462666,0.20610737385376346,0.1921692623371709,0.17860619515673035,0.16543469682057088,0.15267081477050132,0.14033009983067438,0.12842758726130296,0.11697777844051105,0.10599462319663908,0.0954915028125263,0.08548121372247917,0.07597595192178701,0.06698729810778066,0.058526203570536506,0.05060297685041647,0.0432272711786996,0.036408072716606336,0.03015368960704583,0.02447174185242323,0.019369152030840574,0.014852136862001765,0.010926199633097178,0.007596123493895964,0.004865965629214833,0.0027390523158633455,0.0012179748700878838,0.00030458649045213797,3.749399456654644e-33,0.00030458649045213374,0.0012179748700878752,0.0027390523158633325,0.004865965629214847,0.007596123493895981,0.010926199633097199,0.014852136862001736,0.019369152030840543,0.024471741852423196,0.030153689607045793,0.036408072716606295,0.04322727117869955,0.050602976850416516,0.05852620357053656,0.06698729810778072,0.07597595192178694,0.08548121372247912,0.09549150281252623,0.105994623196639,0.11697777844051097,0.12842758726130288,0.14033009983067446,0.15267081477050137,0.16543469682057094,0.17860619515673024,0.19216926233717094,0.20610737385376335,0.22040354826462671,0.2350403678833975,0.24999999999999978,0.2652642186070547,0.28081442660546113,0.2966316784620999,0.3126967032920438,0.3289899283371657,0.34549150281252616,0.3621813220915005,0.37903905220016615,0.39604415459112013,0.41317591116653485,0.43041344951996713,0.4477357683661733,0.4651217631279372,0.48255025164874965,0.4999999999999999,0.5174497483512506,0.5348782368720626,0.5522642316338264,0.5695865504800327,0.5868240888334649,0.6039558454088797,0.6209609477998338,0.6378186779084998,0.6545084971874736,0.6710100716628346,0.6873032967079559,0.7033683215379,0.7191855733945387,0.7347357813929453,0.7500000000000001,0.7649596321166023,0.7795964517353735,0.7938926261462365,0.8078307376628292,0.8213938048432696,0.8345653031794289,0.8473291852294987,0.8596699001693254,0.8715724127386971,0.8830222215594888,0.894005376803361,0.9045084971874736,0.9145187862775209,0.924024048078213,0.9330127018922192,0.9414737964294635,0.9493970231495833,0.9567727288213006,0.9635919272833937,0.9698463103929541,0.9755282581475766,0.9806308479691596,0.9851478631379982,0.9890738003669027,0.9924038765061041,0.9951340343707851,0.9972609476841365,0.9987820251299122,0.9996954135095479,1.0],"line":{"color":"#477fbc","width":2},"hovertemplate":"Angle: %{x}°\u003cbr\u003eIdeal fraction: %{y:.4f}\u003cextra\u003e%{fullData.name}\u003c/extra\u003e"},{"type":"scatter","mode":"markers","name":"Inverse model","x":[0.0,15.0,30.0,45.0,60.0,75.0,90.0,105.0,120.0,135.0,150.0,165.0,180.0],"y":[0.9971329738209929,0.9805556312422383,0.9301292143728864,0.7787156112653494,0.6069452049977182,0.21095904246197614,0.004701772655263891,0.2304092835870471,0.6022377285758974,0.8209427070086952,0.9256829428394101,0.9848843821506321,1.0],"customdata":[[0.3365,7.215610592902327,0.0],[0.3418,7.337598213902366,15.0],[0.359,7.735401853048912,30.0],[0.4229,9.239474776605276,45.0],[0.5299,11.85432093241762,60.0],[1.2716,34.105782641347496,75.0],[4.6933,1530.2575806977493,90.0],[1.1898,31.226707259461445,105.0],[0.5336,11.946981909367722,120.0],[0.4029,8.764220921885537,135.0],[0.3606,7.772556796137431,150.0],[0.3404,7.305348098549231,165.0],[0.3356,7.194923248434955,180.0]],"marker":{"color":"#b95757","symbol":"circle","size":8},"line":{"color":"#b95757"},"hovertemplate":"Plot angle: %{x}°\u003cbr\u003eRelative signal: %{y:.4f}\u003cbr\u003eVoltage: %{customdata[0]:.4f} V\u003cbr\u003eResistance: %{customdata[1]:.4f} kΩ\u003cbr\u003eRecorded angle: %{customdata[2]}°\u003cextra\u003e%{fullData.name}\u003c/extra\u003e","error_x":{"type":"constant","value":2,"visible":true,"color":"#b95757","thickness":1,"width":3}},{"type":"scatter","mode":"markers","name":"Exponential model","x":[0.0,15.0,30.0,45.0,60.0,75.0,90.0,105.0,120.0,135.0,150.0,165.0,180.0],"y":[0.9903240641419021,0.9351416781216966,0.7756724533007354,0.38253343482058244,0.11192604800157728,0.000003213647687711207,1.302798860768e-311,0.000012435708759569342,0.10715621342549318,0.47827475684070836,0.762244607629027,0.9494241087157609,1.0],"customdata":[[0.3365,7.215610592902327,0.0],[0.3418,7.337598213902366,15.0],[0.359,7.735401853048912,30.0],[0.4229,9.239474776605276,45.0],[0.5299,11.85432093241762,60.0],[1.2716,34.105782641347496,75.0],[4.6933,1530.2575806977493,90.0],[1.1898,31.226707259461445,105.0],[0.5336,11.946981909367722,120.0],[0.4029,8.764220921885537,135.0],[0.3606,7.772556796137431,150.0],[0.3404,7.305348098549231,165.0],[0.3356,7.194923248434955,180.0]],"marker":{"color":"#479061","symbol":"square","size":8},"line":{"color":"#479061"},"hovertemplate":"Plot angle: %{x}°\u003cbr\u003eRelative signal: %{y:.4f}\u003cbr\u003eVoltage: %{customdata[0]:.4f} V\u003cbr\u003eResistance: %{customdata[1]:.4f} kΩ\u003cbr\u003eRecorded angle: %{customdata[2]}°\u003cextra\u003e%{fullData.name}\u003c/extra\u003e","error_x":{"type":"constant","value":2,"visible":true,"color":"#479061","thickness":1,"width":3}}],"layout":{"title":{"text":"Set 3 · β = 0.47 kΩ⁻¹","font":{"size":17}},"autosize":true,"height":440,"margin":{"l":65,"r":20,"t":60,"b":115},"xaxis":{"title":{"text":"Relative polarizer angle θ (degrees)"},"dtick":30,"range":[-4.0,184.0],"automargin":true},"yaxis":{"title":{"text":"Inferred light / inferred maximum"},"tickformat":".0%","range":[-0.045,1.08],"automargin":true},"legend":{"orientation":"h","x":0,"y":-0.25},"hovermode":"closest","dragmode":"zoom","showlegend":true}} A fourth measurement set records a run made under different conditions. It uses \(\beta=0.07\,\mathrm{k\Omega}^{-1}\), rather than 0.47. The spreadsheet notes better shielding from ambient light and warmer, more humid conditions as possible reasons for differences between runs; these were proposed explanations, rather than separately measured causes. It also flags possible positioning errors in the first and last readings.
{"data":[{"type":"scatter","mode":"lines","name":"Ideal cos² θ","x":[-90,-89,-88,-87,-86,-85,-84,-83,-82,-81,-80,-79,-78,-77,-76,-75,-74,-73,-72,-71,-70,-69,-68,-67,-66,-65,-64,-63,-62,-61,-60,-59,-58,-57,-56,-55,-54,-53,-52,-51,-50,-49,-48,-47,-46,-45,-44,-43,-42,-41,-40,-39,-38,-37,-36,-35,-34,-33,-32,-31,-30,-29,-28,-27,-26,-25,-24,-23,-22,-21,-20,-19,-18,-17,-16,-15,-14,-13,-12,-11,-10,-9,-8,-7,-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90],"y":[3.749399456654644e-33,0.00030458649045213797,0.0012179748700878838,0.0027390523158633455,0.004865965629214833,0.007596123493895964,0.010926199633097178,0.014852136862001765,0.019369152030840574,0.02447174185242323,0.03015368960704583,0.036408072716606336,0.0432272711786996,0.05060297685041647,0.058526203570536506,0.06698729810778066,0.07597595192178701,0.08548121372247917,0.0954915028125263,0.10599462319663908,0.11697777844051105,0.12842758726130296,0.14033009983067438,0.15267081477050132,0.16543469682057088,0.17860619515673035,0.1921692623371709,0.20610737385376346,0.22040354826462666,0.2350403678833976,0.2500000000000001,0.26526421860705457,0.28081442660546124,0.2966316784620999,0.31269670329204396,0.3289899283371657,0.3454915028125263,0.3621813220915005,0.37903905220016615,0.3960441545911204,0.41317591116653485,0.43041344951996724,0.4477357683661733,0.4651217631279373,0.4825502516487495,0.5000000000000001,0.5174497483512506,0.5348782368720626,0.5522642316338268,0.5695865504800327,0.5868240888334652,0.6039558454088797,0.6209609477998338,0.6378186779084996,0.6545084971874737,0.6710100716628343,0.6873032967079559,0.7033683215379002,0.7191855733945387,0.7347357813929455,0.7500000000000001,0.7649596321166023,0.7795964517353735,0.7938926261462367,0.8078307376628292,0.8213938048432696,0.834565303179429,0.8473291852294987,0.8596699001693257,0.8715724127386971,0.8830222215594891,0.894005376803361,0.9045084971874736,0.9145187862775208,0.924024048078213,0.9330127018922194,0.9414737964294635,0.9493970231495835,0.9567727288213006,0.9635919272833937,0.9698463103929541,0.9755282581475768,0.9806308479691596,0.9851478631379982,0.9890738003669027,0.9924038765061041,0.9951340343707851,0.9972609476841365,0.9987820251299122,0.9996954135095479,1.0,0.9996954135095479,0.9987820251299122,0.9972609476841365,0.9951340343707851,0.9924038765061041,0.9890738003669027,0.9851478631379982,0.9806308479691596,0.9755282581475768,0.9698463103929541,0.9635919272833937,0.9567727288213006,0.9493970231495835,0.9414737964294635,0.9330127018922194,0.924024048078213,0.9145187862775208,0.9045084971874736,0.894005376803361,0.8830222215594891,0.8715724127386971,0.8596699001693257,0.8473291852294987,0.834565303179429,0.8213938048432696,0.8078307376628292,0.7938926261462367,0.7795964517353735,0.7649596321166023,0.7500000000000001,0.7347357813929455,0.7191855733945387,0.7033683215379002,0.6873032967079559,0.6710100716628343,0.6545084971874737,0.6378186779084996,0.6209609477998338,0.6039558454088797,0.5868240888334652,0.5695865504800327,0.5522642316338268,0.5348782368720626,0.5174497483512506,0.5000000000000001,0.4825502516487495,0.4651217631279373,0.4477357683661733,0.43041344951996724,0.41317591116653485,0.3960441545911204,0.37903905220016615,0.3621813220915005,0.3454915028125263,0.3289899283371657,0.31269670329204396,0.2966316784620999,0.28081442660546124,0.26526421860705457,0.2500000000000001,0.2350403678833976,0.22040354826462666,0.20610737385376346,0.1921692623371709,0.17860619515673035,0.16543469682057088,0.15267081477050132,0.14033009983067438,0.12842758726130296,0.11697777844051105,0.10599462319663908,0.0954915028125263,0.08548121372247917,0.07597595192178701,0.06698729810778066,0.058526203570536506,0.05060297685041647,0.0432272711786996,0.036408072716606336,0.03015368960704583,0.02447174185242323,0.019369152030840574,0.014852136862001765,0.010926199633097178,0.007596123493895964,0.004865965629214833,0.0027390523158633455,0.0012179748700878838,0.00030458649045213797,3.749399456654644e-33],"line":{"color":"#477fbc","width":2},"hovertemplate":"Angle: %{x}°\u003cbr\u003eIdeal fraction: %{y:.4f}\u003cextra\u003e%{fullData.name}\u003c/extra\u003e"},{"type":"scatter","mode":"markers","name":"Inverse model","x":[-90.0,-75.0,-60.0,-45.0,-30.0,-15.0,0.0,15.0,30.0,45.0,60.0,75.0,90.0],"y":[0.06607887817886342,0.020957999834314702,0.20145097246735502,0.40964538241485404,0.7033434481242812,0.91306796742235,1.0,0.8582788560507721,0.6867011653566929,0.42012032546328343,0.2095850763333819,0.018063924522304962,0.06827638884591043],"customdata":[[2.6394,111.81055663814286,90.0],[3.8951,352.5296406914652,105.0],[1.3417,36.67550501599103,120.0],[0.764,18.035882908404155,135.0],[0.4753,10.50456383848653,150.0],[0.3743,8.091748275936615,165.0],[0.344,7.3883161512027495,180.0],[0.3963,8.608293329278624,195.0],[0.4857,10.759143167268457,210.0],[0.7478,17.5861906777668,225.0],[1.3032,35.25210993291495,240.0],[4.0177,409.0094675760967,255.0],[2.5986,108.21187640543015,270.0]],"marker":{"color":"#b95757","symbol":"circle","size":8},"line":{"color":"#b95757"},"hovertemplate":"Plot angle: %{x}°\u003cbr\u003eRelative signal: %{y:.4f}\u003cbr\u003eVoltage: %{customdata[0]:.4f} V\u003cbr\u003eResistance: %{customdata[1]:.4f} kΩ\u003cbr\u003eRecorded angle: %{customdata[2]}°\u003cextra\u003e%{fullData.name}\u003c/extra\u003e","error_x":{"type":"constant","value":2,"visible":true,"color":"#b95757","thickness":1,"width":3}},{"type":"scatter","mode":"markers","name":"Exponential model","x":[-90.0,-75.0,-60.0,-45.0,-30.0,-15.0,0.0,15.0,30.0,45.0,60.0,75.0,90.0],"y":[0.0006691135146782996,3.2173025951465164e-11,0.12872161618793768,0.474577818652348,0.8040150121815691,0.9519523968675462,1.0,0.9181464197284663,0.7898139314090077,0.48975441036455536,0.14220784921482904,6.172633740653404e-13,0.0008607992689752376],"customdata":[[2.6394,111.81055663814286,90.0],[3.8951,352.5296406914652,105.0],[1.3417,36.67550501599103,120.0],[0.764,18.035882908404155,135.0],[0.4753,10.50456383848653,150.0],[0.3743,8.091748275936615,165.0],[0.344,7.3883161512027495,180.0],[0.3963,8.608293329278624,195.0],[0.4857,10.759143167268457,210.0],[0.7478,17.5861906777668,225.0],[1.3032,35.25210993291495,240.0],[4.0177,409.0094675760967,255.0],[2.5986,108.21187640543015,270.0]],"marker":{"color":"#479061","symbol":"square","size":8},"line":{"color":"#479061"},"hovertemplate":"Plot angle: %{x}°\u003cbr\u003eRelative signal: %{y:.4f}\u003cbr\u003eVoltage: %{customdata[0]:.4f} V\u003cbr\u003eResistance: %{customdata[1]:.4f} kΩ\u003cbr\u003eRecorded angle: %{customdata[2]}°\u003cextra\u003e%{fullData.name}\u003c/extra\u003e","error_x":{"type":"constant","value":2,"visible":true,"color":"#479061","thickness":1,"width":3}}],"layout":{"title":{"text":"Set 4 · β = 0.07 kΩ⁻¹","font":{"size":17}},"autosize":true,"height":440,"margin":{"l":65,"r":20,"t":60,"b":115},"xaxis":{"title":{"text":"Relative polarizer angle θ (degrees)"},"dtick":30,"range":[-94.0,94.0],"automargin":true},"yaxis":{"title":{"text":"Inferred light / inferred maximum"},"tickformat":".0%","range":[-0.045,1.08],"automargin":true},"legend":{"orientation":"h","x":0,"y":-0.25},"hovermode":"closest","dragmode":"zoom","showlegend":true}} For this chart, I shifted Set 4’s recorded angles from 90°–270° to −90°–90° by subtracting 180°. This leaves the theoretical cosine-squared values unchanged. I kept all 13 measurements, including the two flagged endpoints.
To compare the curves numerically for this article, I recalculated the root-mean-square deviation from the ideal prediction:
\[\mathrm{RMSE}=\sqrt{\frac{1}{N}\sum_{i=1}^{N} \left(y_i-\cos^2\theta_i\right)^2}.\]Each row below uses all 13 points, with equal weight and the workbook’s original \(\beta\) value. These are descriptive deviations in normalized units, not uncertainty estimates or formal goodness-of-fit tests.
| Measurement set | Inverse-model RMSE | Exponential-model RMSE | \(\beta\) (kΩ⁻¹) |
|---|---|---|---|
| Set 1 | 0.278 | 0.116 | 0.47 |
| Set 2 | 0.266 | 0.058 | 0.47 |
| Set 3 | 0.205 | 0.070 | 0.47 |
| Set 4 | 0.058 | 0.056 | 0.07 |
The exponential conversion reduces the deviation in the first three sets, while Set 4 shows only a small difference between the two conversions. The change in \(\beta\) is also a reason to avoid treating it as a transferable sensor calibration.
The experiment showed a repeatable dependence of the detected signal on the relative orientation of the polarizers. Its broad pattern is consistent with the expected transmission maximum for aligned filters and minimum for crossed filters. It also exposed how strongly an inferred intensity curve can depend on the detector model.
There is an important limit to the calibration argument: I selected an empirical conversion because it made the data resemble the law I wanted to test. That agreement cannot independently validate both Malus’s law and the sensor conversion. An independent calibration would be needed to separate those questions.
The source material does not provide repeated-reading scatter, a complete voltage uncertainty budget, or an independently measured light-to-resistance calibration. For that reason, I have not added vertical error bars or claimed agreement within experimental uncertainty. The recorded decimal places describe the stored readings, rather than establishing their accuracy.
The divider also becomes sensitive to voltage error as its reading approaches the supply:
\[\frac{dR}{dV}=R_f\frac{V_s}{(V_s-V)^2}.\]That matters near crossed polarizers, where a high LDR resistance pushes the measured voltage toward 5 V. Background light, imperfect extinction, alignment, sensor response time, and heating are further effects I would investigate before assigning a discrepancy to the optical law.
If I repeated the project, I would first calibrate the detector independently, record dark readings, repeat each angle, and measure the supply voltage. I would also compare the result with a photodiode operated in a characterized linear regime. Those changes would make the comparison less dependent on choosing a convenient conversion afterward.
I have provided a CSV containing all 65 readings and the derived quantities used here, with column definitions and calculation notes. It includes the laser control and Sets 1–4. The CSV and charts are a new extraction of the original workbook; the RMSE comparison is an additional calculation for this article.
Looking back, the most useful lesson was learning to question the measurement chain. The Arduino supplied voltages, the circuit let me derive resistances, and only a further model turned those resistances into relative light levels. Understanding each of those steps was as much a part of the experiment as rotating the polarizers.
Here are some more articles you might like to read next: