먼저.. 내용을 말씀드리면.. 푸쉬버튼이 눌려졌을때
if문안의 실행문을 통해 밸브를 열고 닫으면서 정해진 양만큼의 물을 줍니다..
데 처음 버튼이 눌려졌을땐 잘 실행 됩니다 약 100만큼은 물을 받아낼수있습니다
근데 한번 더 버튼을 눌려 실행시키게되면 여기서 문제가생깁니다..
한번 더 버튼을 눌리면 2번?이상의 실행을 해서 200정도의 물이 나옵니다;
왜이런걸까요..어느부분이 문제인걸까요.. 기초적인 개념자체가 많이 부족합니다
ㅠㅠㅠ..고민하다가 글써봅니다..
void loop()
{
int smallcup = digitalRead(smallcup_pin);
uservalue=analogRead(A0);
uservalue=map(uservalue,0,1023,0,999);
if(smallcup==0)
{
flagsmallcup=true;
}
if(flagsmallcup ==true)
{
digitalWrite(sol,HIGH);
if(liters>=100)
{
digitalWrite(sol,LOW);
flagsmallcup=false;
liters=0;
pulses=0;
}
}
if(liters>=uservalue)
{
digitalWrite(sol,LOW);
liters=0;
pulses=0;
}
delay(100);