Maths/Mathematics/Calculation
2 complete tide cycle/2 sine curve (one day)
>25 hours
>1,500 mins
>90,000 secs
Tinker Inc.
Pump Rate
> 200 or 250 or 288 or 300 liters/hour
> 0.05556 or 0.06944 or 0.08 or 0.08333 liters/sec (4.s.f)
> 55.556 or 69.444 or 80 or 83.333 ml/sec
>1/18 or 5/72 or 2/25 or 1/12 liters/sec
Volume of water to be transferred
>(water level)*(length of tank)*(breadth of tank)
>20cm*30cm*19cm [This calculation is the outside of the tank,not accurate]
>20cm x 29cm x 18cm
>0.2m x 0.29m x 0.18m
>0.01044 m^3
>10.44 litres
Time taken for 10.44 litres
>10.44l / (1/18)liters/s = 187.92 sec
>10.44l / (5/72)liters/s = 150.336 sec
>10.44l / (2/25)liters/s = 130.5 sec
>10.44l / (1/12)liters/s = 125.28 sec
Time Taken for the highest amplitude to the lowest amplitude
>90,000 secs/4 >900 secs/4 (scaled down)
>22,500 secs >225 secs (scaled down)
Therefore, for the highest amplitude to the lowest amplitude of the sine curve, we will pump a total of 187.92 secs discounting the pause time.
And the achieved time must be 225 secs.
Therefore the pause time
>225 secs-187.92 secs
>225 secs-188 secs(3 s.f)
>37 secs
Due, to the fact that 37 is relatively divisible by 8. We will pause the pump 8 times; each time 4.625 secs = 4625 milli-secs
Experiment_01 (Status: Active) INVALID
on ( 10 )secs
off (4.625 )secs
on ( 15 )secs
off (4.625 )secs
on ( 20 )secs
off (4.625 )secs
on ( 25 )secs
off (4.625 )secs
on ( 73 )secs
off (4.625 )secs
on ( 20 )secs
off (4.625 )secs
on ( 15 )secs
off (4.625 )secs
on ( 10 )secs
off (4.625 )secs
>next pump
Experiment_01 (Codes)
#define RELAY1 7
#define RELAY2 8
#define Grove_Water_Sensor1 12
#define Grove_Water_Sensor2 13
void setup()
{
pinMode(RELAY1, OUTPUT);
pinMode(RELAY2, OUTPUT);
pinMode(Grove_Water_Sensor1, INPUT);
pinMode(Grove_Water_Sensor2, INPUT);
}
void loop()
{
if(digitalRead(Grove_Water_Sensor1)== HIGH){
digitalWrite(RELAY1,HIGH);
delay(10000);
digitalWrite(RELAY1,LOW);
delay(4625);
digitalWrite(RELAY1,HIGH);
delay(15000);
digitalWrite(RELAY1,LOW);
delay(4625);
digitalWrite(RELAY1,HIGH);
delay(20000);
digitalWrite(RELAY1,LOW);
delay(4625);
digitalWrite(RELAY1,HIGH);
delay(25000);
digitalWrite(RELAY1,LOW);
delay(4625);
digitalWrite(RELAY1,HIGH);
delay(73000);
digitalWrite(RELAY1,LOW);
delay(4625);
digitalWrite(RELAY1,HIGH);
delay(20000);
digitalWrite(RELAY1,LOW);
delay(4625);
digitalWrite(RELAY1,HIGH);
delay(15000);
digitalWrite(RELAY1,LOW);
delay(4625);
digitalWrite(RELAY1,HIGH);
delay(10000);
digitalWrite(RELAY1,LOW);
delay(4625);
}else{
digitalWrite(RELAY1,LOW);
}
if(digitalRead(Grove_Water_Sensor2)== HIGH){
digitalWrite(RELAY2,HIGH);
delay(10000);
digitalWrite(RELAY2,LOW);
delay(4625);
digitalWrite(RELAY2,HIGH);
delay(15000);
digitalWrite(RELAY2,LOW);
delay(4625);
digitalWrite(RELAY2,HIGH);
delay(20000);
digitalWrite(RELAY2,LOW);
delay(4625);
digitalWrite(RELAY2,HIGH);
delay(25000);
digitalWrite(RELAY2,LOW);
delay(4625);
digitalWrite(RELAY2,HIGH);
delay(73000);
digitalWrite(RELAY2,LOW);
delay(4625);
digitalWrite(RELAY2,HIGH);
delay(20000);
digitalWrite(RELAY2,LOW);
delay(4625);
digitalWrite(RELAY2,HIGH);
delay(15000);
digitalWrite(RELAY2,LOW);
delay(4625);
digitalWrite(RELAY2,HIGH);
delay(10000);
digitalWrite(RELAY2,LOW);
delay(4625);
}else{
digitalWrite(RELAY2,LOW);
}
}
Pump for 187.92
Stop for 37.08
Experiment_02 (Status: Active) INVALID
off (3.708 )secs
on ( 10 )secs
off (3.708 )secs
on ( 15 )secs
off (3.708 )secs
on ( 20 )secs
off (3.708 )secs
on ( 25 )secs
off (3.708 )secs
on ( 36.5 )secs
off ( 3.708)secs
on ( 36.5 )secs
off (3.708 )secs
on ( 20 )secs
off (3.708 )secs
on ( 15 )secs
off (3.708 )secs
on ( 10 )secs
off (3.708 )secs
>next pump
off (3.708 )secs
on ( 10 )secs
off (3.708 )secs
on ( 15 )secs
off (3.708 )secs
on ( 20 )secs
off (3.708 )secs
on ( 36.5 )secs
off ( 3.708)secs
on ( 36.5 )secs
off (3.708 )secs
on ( 25 )secs
off (3.708 )secs ------> 25 secs below linear part to get a symmetrical curve
on ( 20 )secs
off (3.708 )secs
on ( 15 )secs
off (3.708 )secs
on ( 10 )secs
off (3.708 )secs
Graph (according to 2ml/s pump rate)
Graph (according to 55.556ml/s pump rate)
Experiment_03 {Status: Active}
900 secs
¼ x 900= 225 secs
in 225 secs {187.92 pumping, 37.08 rest}
Experiment_03 Codes
#define RELAY1 8
#define RELAY2 7
void setup()
{
pinMode(RELAY1, OUTPUT);
pinMode(RELAY2, OUTPUT);
}
void loop()
{
digitalWrite(RELAY1,HIGH);
delay(10000);
digitalWrite(RELAY1,LOW);
delay(3090);
digitalWrite(RELAY1,HIGH);
delay(12500);
digitalWrite(RELAY1,LOW);
delay(3090);
digitalWrite(RELAY1,HIGH);
delay(15000);
digitalWrite(RELAY1,LOW);
delay(3090);
digitalWrite(RELAY1,HIGH);
delay(17500);
digitalWrite(RELAY1,LOW);
delay(3090);
digitalWrite(RELAY1,HIGH);
delay(20000);
digitalWrite(RELAY1,LOW);
delay(3090);
digitalWrite(RELAY1,HIGH); //START OF LINEAR
delay(18960);
digitalWrite(RELAY1,LOW);
delay(3090);
digitalWrite(RELAY1,HIGH);
delay(18960);
digitalWrite(RELAY1,LOW);
delay(3090); //END OF LINEAR
digitalWrite(RELAY1,HIGH);
delay(20000);
digitalWrite(RELAY1,LOW);
delay(3090);
digitalWrite(RELAY1,HIGH);
delay(17500);
digitalWrite(RELAY1,LOW);
delay(3090);
digitalWrite(RELAY1,HIGH);
delay(15000);
digitalWrite(RELAY1,LOW);
delay(3090);
digitalWrite(RELAY1,HIGH);
delay(12500);
digitalWrite(RELAY1,LOW);
delay(3090);
digitalWrite(RELAY1,HIGH);
delay(10000);
digitalWrite(RELAY1,LOW);
delay(3090);
//END OF RELAY1
//START OF RELAY2
digitalWrite(RELAY2,HIGH);
delay(10000);
digitalWrite(RELAY2,LOW);
delay(3090);
digitalWrite(RELAY2,HIGH);
delay(12500);
digitalWrite(RELAY2,LOW);
delay(3090);
digitalWrite(RELAY2,HIGH);
delay(15000);
digitalWrite(RELAY2,LOW);
delay(3090);
digitalWrite(RELAY2,HIGH);
delay(17500);
digitalWrite(RELAY2,LOW);
delay(3090);
digitalWrite(RELAY2,HIGH);
delay(20000);
digitalWrite(RELAY2,LOW);
delay(3090);
digitalWrite(RELAY2,HIGH); //START OF LINEAR
delay(18960);
digitalWrite(RELAY2,LOW);
delay(3090);
digitalWrite(RELAY2,HIGH);
delay(18960);
digitalWrite(RELAY2,LOW);
delay(3090); //END OF LINEAR
digitalWrite(RELAY2,HIGH);
delay(20000);
digitalWrite(RELAY2,LOW);
delay(3090);
digitalWrite(RELAY2,HIGH);
delay(17500);
digitalWrite(RELAY2,LOW);
delay(3090);
digitalWrite(RELAY2,HIGH);
delay(15000);
digitalWrite(RELAY2,LOW);
delay(3090);
digitalWrite(RELAY2,HIGH);
delay(12500);
digitalWrite(RELAY2,LOW);
delay(3090);
digitalWrite(RELAY2,HIGH);
delay(10000);
digitalWrite(RELAY2,LOW);
delay(3090);
} //END OF CODE