Push Button ile şifreli motor kontrol

Başlatan Ancotar, 27 Mart 2014, 17:35:38

Ancotar

Öncelikle forumda yeniyim oluşturabileceğim sıkıntılar için özür dilerim.
Kendi odama küçük ölçekli bir güvenlik sistem yapmak istiyorum.Motorlar ne alaka derseniz kişisel dolabımın kapanmasını istiyorum.
Aşağıda linkte verdiğim projede şifre 3-1-4-6-enter şeklinde geliştiği takdirde motor çalışmayacak aksi durumlarda motorlar çalışacak. goto komutlarını kullanarak birşeyler denedim lakin sonuç alamadım deneme amaçlı 3'e (d1,d6,d7) ye basıldıgında motor dönsün diyorum ama dönmüyor. Nerede hatam var acaba düzeltebilirmisiniz...



a=input(pin_d1&&pin_d7);                  //a=1;
b=input(pin_d1&&pin_d6);                  //b=2;
c=input(pin_d1&&pin_d6&&pin_d7);          //c=3;
d=input(pin_d1&&pin_d5);                  //d=4;
e=input(pin_d1&&pin_d5&&pin_d7);          //e=5;
f=input(pin_d1&&pin_d5&&pin_d6);          //f=6;
g=input(pin_d1&&pin_d5&&pin_d6&&pin_d7);  //g=7;
h=input(pin_d1&&pin_d4);                  //h=8;
j=input(pin_d1&&pin_d4&&pin_d7);          //j=9;
k=input(pin_d1&&pin_d3);                  //k=0;
Enter=input(pin_d1&&pin_d2);

set_tris_b(0x00);
set_tris_d(0xff);
output_b(0x00);
output_d(0x00);
{
sorgu:
   if(input(pin_d1))
   {
   //output_b(0xff);
   goto passbir;
   }
   if(input(pin_d1)==0)
   {
   goto sorgu;
   }

passbir:
if(c)
   {
   output_b(0xff);
   goto passiki;
   }
else
   {
      if(Enter)
      {
      delay_ms(5000);
      output_b(0xff);
      }
      if(Enter==0)
      {
      goto passbir;
      }
   }

passiki:
if(a)
   {
   output_b(0x00);
   goto passuc;
   }
else
   {
      if(Enter)
      {
      delay_ms(5000);
      output_b(0xff);
      }
      if(Enter==0)
      {
      goto passiki;
      }
   }

passuc:
if(d)
   {
   output_b(0x00);
   goto passort;
   }
else
   {
      if(Enter)
      {
      delay_ms(5000);
      output_b(0xff);
      }
      if(Enter==0)
      {
      goto passuc;
      }
   }

passort:
if(f)
   {
      if(Enter)
      {
      output_b(0x00);
      }
      if(Enter==0)
      {
      goto passort;
      }
   }
else
   {
      if(Enter)
      {
      delay_ms(5000);
      output_b(0xff);
      }
      if(Enter==0)
      {
      goto passort;
      }
   }
}
}

Ancotar


Salih

#2
Bu şekilde kullanman hatalı olur, bana göre.
a=input(pin_d1&&pin_d7);


Şöyle olabilir.

a=(input(pin_d1)&&input(pin_d7));


O kadar yan elemana gerek olmadan, tuş takımını PIC'e direk
bağlayıp okuma yapabilirsin. Sitede ve net de bol miktarda okuma örneği var.