#define photoresistance A0
#define THRESHOLD 100
#define PERIOD 15
bool etat_precedant;
bool etat_actuel;
void setup()
{
Serial.begin(9600);
}
void loop()
{
etat_actuel = get_ldr();
if(!etat_actuel && etat_precedant)
{
print_byte(get_byte());
}
etat_precedant = etat_actuel;
}
bool get_ldr()
{
int voltage = analogRead(photoresistance);
return voltage > THRESHOLD ? true : false;
}
char get_byte()
{
char ret = 0;
delay(PERIOD*1.5);
for(int i = 0; i < 8; i++)
{
ret = ret | get_ldr() << i;
delay(PERIOD);
}
return ret;
}
void print_byte(char my_byte)
{
char buff[2];
sprintf(buff, "%c", my_byte);
Serial.print(buff);
}