Hello
I did in the video project. Circuit 1 would like to add one more LDR
Exit People code :
Serial.print(1-counting);
How do I
2 LDRinput and output ?
int ldr = 0;
int ldrValue = 0;
int ldrTemp = 0;
int ldrMin = 1023;
int ldrMax = 0;
int ldrCompare = 0;
int setldrMin = 0;
int setldrMax = 0;
float setPercentMin = 0;
float setPercentMax = 0;
int counting = 0;
int ser;
int Max = 0;
int Min = 0;
void setup()
{
Serial.begin(57600);
pinMode(10, OUTPUT);
}
void loop()
{
Serial.println("LDR counter by krangul");
Serial.println();
Serial.println("To [c]alibrate laser press: c");
Serial.println("To [t]est min/max value press: t");
Serial.println("To [s]et min/max value limit press: s");
Serial.println("To start counting [m]easure press: m");
Serial.println(".............................................");
Serial.println();
Serial.print("Your ldrMax limit value: "); Serial.print(ldrMax); Serial.print(" - "); Serial.print(setPercentMax); Serial.print("% = "); Serial.print(setldrMax);
Serial.println();
Serial.print("Your ldrMin limit value: "); Serial.print(ldrMin); Serial.print(" + "); Serial.print(setPercentMin); Serial.print("% = "); Serial.print(setldrMin);
Serial.println();
while(Serial.available() == 0);
{
ser = Serial.read();
for(ser; ser == 'c' || ser < 0 ;)
{
calibrate();
break;
}
for(ser; ser == 't';)
{
test();
break;
}
for(ser; ser == 's';)
{
set();
break;
}
for(ser; ser == 'm';)
{
count();
}
}
}
void calibrate()
{
for(int b=0; b<250; b++)
{
read_ldr();
Serial.println(ldr);
ser = Serial.read();
delay(100);
}
Serial.println();
}
void test()
{
for(int b=0; b<250; b++)
{
read_ldr();
Serial.println(ldr);
ldrCompare = ldr;
if (ldrCompare > ldrMax)
{
ldrMax = ldrCompare;
}
if (ldrCompare < ldrMin)
{
ldrMin = ldrCompare;
}
delay(30);
}
Serial.println();
}
void set()
{
Serial.println();
Serial.println("Set your Min percent limit 10-40%");
for(int c=0; c<2; c++)
{
while(Serial.available() == 0);
{
setPercentMin *=10;
setPercentMin += (Serial.read() - '0');
}
}
Serial.println();
Serial.println("Set your Max percent limit 10-40%");
for(int d=0; d<2; d++)
{
while(Serial.available() == 0);
{
setPercentMax *=10;
setPercentMax += (Serial.read() - '0');
}
}
setldrMin = ldrMin + (ldrMin * (setPercentMin*0.01));
setldrMax = ldrMax - (ldrMax * (setPercentMax*0.01));
Serial.println();
}
void count()
{
Serial.println();
Serial.println("#####################################");
Serial.println("## Measurement has been started. ##");
Serial.println("#####################################");
for(;;)
{
read_ldr();
if(ldr>setldrMax)
{
Max=1;
}
if(ldr<setldrMin && Max==1)
{
Max=0;
counting++;
Serial.print(counting);
Serial.println();
tone(10, 6000, 10);
}
}
}
void read_ldr()
{
for(int a=0; a<10; a++)
{
ldrValue=analogRead(0);
ldrTemp = ldrTemp + ldrValue;
delay(1);
if(a==9)
{
ldr=ldrTemp/10;
ldrTemp=0;
}
}
}