// // Light level detector demonstration. // // Use the two on-board LEDs as light sensors, and graph the brightness. // // That voltage is between zero and the 1.5 volt reference. // There are 1,024 levels in ten bits, so each level is 1.46484375 millivolts. // enum { RED_LED_INPUT=A0, GREEN_LED_INPUT=A6 }; void setup( void ) { analogReference( INTERNAL1V5 ); Serial.begin( 9600 ); pinMode( RED_LED_INPUT, INPUT ); pinMode( GREEN_LED_INPUT, INPUT ); } unsigned int read_led( unsigned int which ) { unsigned long int level = 0; for( unsigned int x = 0; x < 500; x++ ) { level += analogRead( which ); } level /= 500; return level; } void loop( void ) { unsigned int red_level = read_led( RED_LED_INPUT ); unsigned int green_level = read_led( GREEN_LED_INPUT ); for( unsigned int x = 0; x < red_level / 10; x++ ) Serial.print( "*" ); Serial.print( " " ); Serial.println( red_level ); for( unsigned int x = 0; x < green_level / 10; x++ ) Serial.print( "#" ); Serial.print( " " ); Serial.println( green_level ); }