Inside a potentiometer:
Pulse Width Modulation:
const int ledPin = 2; bool ledState = LOW; // a really longer number with no + or - sign unsigned long toggleTime = 0; int triggerInterval = 500; void setup() { pinMode(ledPin, OUTPUT); Serial.begin(9600); } void loop() { // read the analog input int knobValue = analogRead(A0); // map that input to a range appropriate for our use // in this case, we take the range of the photocell and map it to millis between 10 & 500 // this is the blink interval for the LED triggerInterval = map(knobValue, 190, 860, 10, 500); // print out the original value and the mapped value on the same line Serial.print(knobValue); Serial.print(" "); Serial.println(triggerInterval); // if the current time (millis) is more than the exact time when we are supposed to toggle if (millis() > toggleTime) { // flip the LED to the opposite of what it was ledState = !ledState; // set the next time the LED should toggle // to the current time + whatever the blink interval amount of time is toggleTime = millis() + triggerInterval; } // turn the LED on or off based on the ledState vaviable digitalWrite(ledPin, ledState); }