using System; using System.Net; using System.Net.Sockets; using System.Threading; using Microsoft.SPOT; using Microsoft.SPOT.Hardware; using SecretLabs.NETMF.Hardware; using SecretLabs.NETMF.Hardware.Netduino; namespace Theremin { public class Program { public static void Main() { AnalogInput ldr = new AnalogInput(AnalogChannels.ANALOG_PIN_A0); PWM buzzer = new PWM(PWMChannels.PWM_PIN_D3, 3000, 0.5, false); OutputPort[] leds = { new OutputPort(Pins.GPIO_PIN_D9, false), new OutputPort(Pins.GPIO_PIN_D8, false), new OutputPort(Pins.GPIO_PIN_D10, false), new OutputPort(Pins.GPIO_PIN_D7, false), new OutputPort(Pins.GPIO_PIN_D11, false), new OutputPort(Pins.GPIO_PIN_D6, false), new OutputPort(Pins.GPIO_PIN_D12, false), new OutputPort(Pins.GPIO_PIN_D5, false), new OutputPort(Pins.GPIO_PIN_D13, false), new OutputPort(Pins.GPIO_PIN_D4, false) }; buzzer.Start(); while (true) { double darkness = ldr.Read(); buzzer.Frequency = 1000 + 3000 * darkness; int segmentCount = (int)System.Math.Round(10.0 * darkness); for (int i = 0; i < leds.Length; ++i) leds[i].Write(i <= segmentCount); } } } }