Tự làm máy rửa tay tự động với cảm biến siêu âm và Arduino pro mini

Tự làm máy rửa tay tự động với cảm biến siêu âm và Arduino pro mini

Code
//------------------khai bao bien----------

int TT=0;

//---------------- define pin ------------------

#define LOA    11

#define ROLE    12

#define TRIG  8

#define ECHO  7



//---------------- valuable ------------------

unsigned long xung;

int distance, khoangcach,lap;

void do_khoang_cach()

{

  digitalWrite(TRIG , LOW);   delayMicroseconds(2);

  digitalWrite(TRIG , HIGH); delayMicroseconds(10);

  digitalWrite(TRIG , LOW);

  xung = pulseIn(ECHO, HIGH, 1500);

  distance = xung / 29.1 / 2;

  if(distance <= 0) {khoangcach = 0;}

  else {khoangcach = distance;}

}



void setup()

{



    pinMode(LOA, OUTPUT);

    pinMode(ROLE, OUTPUT);

    pinMode(TRIG , OUTPUT);

    pinMode(ECHO , INPUT);             



}



void loop()

{                                                                                                                                                                                                       

 

                   do_khoang_cach();

                   if ((khoangcach > 2)&&(khoangcach <= 15))

                          {  delay(10);

                            do_khoang_cach();

                           if ((khoangcach > 2)&&(khoangcach <= 15)) 

                             {         

                              bat_den();delay(1000);tat_may();                         

                              }

                         

                         

                           }



}



//--------------------------------------- chuong trinh con -------------------------------------------

void hengio_tat(unsigned long t)

{

  unsigned long  i;



  for(i=0;i<=t;i++)

  {             do_khoang_cach();

              if ((khoangcach > 2)&&(khoangcach <= 15))

                {

                  do_khoang_cach();

                 if ((khoangcach > 2)&&(khoangcach <= 15)) 

                   { 

                    lap =!lap; delay(10);               

                    break;

                   }

                }

  }





}



void pip_1()

{

  digitalWrite(LOA,HIGH);

  delay(200);

  digitalWrite(LOA,LOW);

  delay(100);

}

void pip_2()

{

  digitalWrite(LOA,HIGH);

  delay(100);

  digitalWrite(LOA,LOW);

  delay(50);

  digitalWrite(LOA,HIGH);

  delay(100);

  digitalWrite(LOA,LOW);

  delay(50);

}





void bat_may()

{ pip_1();

  digitalWrite(ROLE,HIGH);

}

void tat_may()

{ pip_2();

  digitalWrite(ROLE,LOW);

}

Nhận xét