Using LEDs as sensors

E-mail PDF

Yesterday I went to the "Bastelabend" at the C4 Labs in Cologne. There were a lot of interesting projects and someone mentioned that you can use LEDs as sensors when you change the potential.

For more information follow this link.

I hooked up my arduino and ripped some code together.

int LED_anode[] = {2,4,6};
int LED_cathode[] = {3,5,7};
int LED_max[] = {0,0,0};
int LED_min[] = {0,0,0};

int t_delay = 1000;

int value;

void setup()
{

//deactivates pullup
_SFR_IO8(0x35) |= 4;
_SFR_IO8(0x35) |= (1<<4);

for( int i=0; i <= 2 ; i++ )
{

pinMode(LED_anode[i],   OUTPUT);
pinMode(LED_cathode[i], OUTPUT);

}

Serial.begin(9600);

Serial.println("Calibration");

for( int i=0; i <= 2 ; i++ )
{

Serial.println("MAX LED ");
Serial.print(i);
delay(t_delay);
LED_max[i] = LEDget(i);
delay(t_delay);

}

for( int i=0; i <= 2 ; i++ )
{

Serial.println("MIN LED ");
Serial.print(i);
delay(t_delay);
LED_min[i] = LEDget(i);
delay(t_delay);

}

}

void loop()
{
value = 0;

for( int i=0; i <= 2 ; i++ )
{

Serial.print(i);
Serial.print(": ");
Serial.println(map( LEDget(i), LED_min[i], LED_max[i], 0, 255 ), DEC);

}
}

int LEDget(int i)
{

int value = 0;

digitalWrite(LED_anode[i],   HIGH);
digitalWrite(LED_cathode[i], LOW);   

digitalWrite(LED_anode[i],   LOW);
digitalWrite(LED_cathode[i], HIGH);

pinMode(LED_cathode[i],  INPUT);

while(digitalRead(LED_cathode[i]) != 0)
value++;
pinMode(LED_cathode[i],  OUTPUT);

digitalWrite(LED_anode[i],   HIGH);
digitalWrite(LED_cathode[i], LOW);

return value;

}

There is a calibration cycle at the beginning. When measuring the minimum value the LEDs should be completely covered.
Since the LEDs go thruogh the same cycle when calibrating as when in use the measured values shouldn't be affected by the LEDs themselves.

 
Comments (2)
2 Tuesday, 15 December 2009 00:22
Arne Rick
there is more to come;)
1 Saturday, 05 December 2009 15:55
Freiefall
Das ding war schon cool. Aber wenn man das mal weiterdenkt, kann man damit so geile Sachen bauen... ich denke da an gekoppelte LEDs, die unterschiedlich hell sind, und damit verbundene Soundausgabe. Und eine ganze Wand voll mit den Dingern. Woha.
Please register or login to add your comments to this article.




follow-tweet-image