Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- ** Plot photoresistor(LDR) response curve
- ** Edward I. Comer December 2012
- */
- // Defines
- #define DELAYTIME 10000 // Delay 10 seconds
- #define MAXLIGHTLEVEL 25 // Max brightness level
- #define STARTLIGHTLEVEL 9 // Starting point
- #define INCREMENT 1 // increment to boost light
- // constants won't change. Used here to
- // set pin numbers:
- const int localLEDPin = 13; // the number of the LED pin
- const int ldrPin = 1; // pin number with LDR
- const int lightPin = 3; // pin for flashlight
- int LightLevel = STARTLIGHTLEVEL; // light brightness 0-to-255
- int ldrValue = 0; // Value read
- void setup() {
- // set the digital pin as output:
- pinMode(localLEDPin, OUTPUT); // set pin 13 as output
- Serial.begin(9600); // opens serial port, sets data rate to 9600 bps
- // Serial.println("ldrtest.ino running");
- // Serial.println("waiting 60 seconds");
- analogWrite(lightPin,0); // settle at starting light level
- delay(10000); // wait 10 secs for LDR to settle
- // delay(30000); // wait 30 secs for LDR to settle
- //Serial.println("\"Light value\",\"LDR value\"");
- }
- void shutdown()
- {
- analogWrite(lightPin,0); // Turn light off
- Serial.print("END");
- Serial.write(0x0a); // newline character for Linux
- // Rapid blink indicates completion of test
- while(1){ // endless loop
- digitalWrite(localLEDPin, HIGH); // sets the LED on
- delay(500); // waits for a second
- digitalWrite(localLEDPin, LOW); // sets the LED off
- delay(500); // waits for a second
- }
- }
- void loop()
- {
- // Turn on local LED to indicate test start
- digitalWrite(localLEDPin, HIGH); // local LED on
- analogWrite(lightPin,LightLevel); // set light brightness
- delay(DELAYTIME); // wait for LDR to settle
- ldrValue = analogRead(ldrPin); // read LDR value
- // Turn on local LED to indicate test stopped
- digitalWrite(localLEDPin, LOW); // local LED off
- Serial.print(LightLevel, DEC); // Print CSV format X-axis
- //Serial.print(", ");
- Serial.print(" ");
- Serial.print(ldrValue, DEC); // Print CSV format Y-axis
- Serial.write(0x0a); // newline character for Linux
- LightLevel += INCREMENT; // increment light brightness
- if(LightLevel > MAXLIGHTLEVEL){
- shutdown();
- }
- LightLevel &= 255; // limit variable to 1-byte
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement