// Interactive Photosensor Control // // An example of using analogRead and a photoresistor // to control the how many LED's are on, as in a // meter of some kind // LED Variables int ledPin1 = 11; int ledPin2 = 10; int ledPin3 = 9; int ledPin4 = 8; int ledPin5 = 7; int ledPin6 = 6; int ledPin7 = 5; int ledPin8 = 4; int ledPin9 = 3; int ledPin10 = 2; // Poteniometer variable int photoPin = 1; // Value holder for potentiometer int photoVal = 1; // Hook the photoresistor up like this: // Photo R 10K // +5V o---/\/\/\--.--/\/\/\---o GND // // Depending on your setup, there will be a high and low value range // You can use them to set the limits of your meter display int photoMin = 700; int photoMax = 1020; void setup() { Serial.begin(9600); // Setup the Serial port for(int i=2; i<12; i++) { // Do a for loop to set pins 2 thru 10 Serial.println(i); pinMode(i, OUTPUT); // to OUTPUT } } void loop() { photoVal = analogRead(photoPin); Serial.println(photoVal); int photoRange = photoMax - photoMin; // Get the range of numbers if(photoVal > photoMin + (photoRange/10)) { digitalWrite(ledPin1,HIGH); }else{ digitalWrite(ledPin1,LOW); } if(photoVal > photoMin + ((photoRange/10)*2)) { digitalWrite(ledPin2,HIGH); }else{ digitalWrite(ledPin2,LOW); } if(photoVal > photoMin + ((photoRange/10)*3)) { digitalWrite(ledPin3,HIGH); }else{ digitalWrite(ledPin3,LOW); } if(photoVal > photoMin + ((photoRange/10)*4)) { digitalWrite(ledPin4,HIGH); }else{ digitalWrite(ledPin4,LOW); } if(photoVal > photoMin + ((photoRange/10)*5)) { digitalWrite(ledPin5,HIGH); }else{ digitalWrite(ledPin5,LOW); } if(photoVal > photoMin + ((photoRange/10)*6)) { digitalWrite(ledPin6,HIGH); }else{ digitalWrite(ledPin6,LOW); } if(photoVal > photoMin + ((photoRange/10)*7)) { digitalWrite(ledPin7,HIGH); }else{ digitalWrite(ledPin7,LOW); } if(photoVal > photoMin + ((photoRange/10)*8)) { digitalWrite(ledPin8,HIGH); }else{ digitalWrite(ledPin8,LOW); } if(photoVal > photoMin + ((photoRange/10)*9)) { digitalWrite(ledPin9,HIGH); }else{ digitalWrite(ledPin9,LOW); } if(photoVal >= photoMax) { digitalWrite(ledPin10,HIGH); }else{ digitalWrite(ledPin10,LOW); } }