Arduinoda yardım istiyen gelebilir

Cevabınız için teşekkür ederim. Rica etsem gerekli olan mosfetin logic level olanının linkini paylaşır mısınız ? elektronik ile bilgilerim kısıtlı yanlış ekipmanı alabilirim.
 
Son düzenleme:
irl540 logic leveldir doğrudan arduinoya bağlayabilirsin. Bobine paralel ters bi diyot bağlamayı unutma yoksa selenoid bıraktığında bişeyler yanabilir
 
Son düzenleme:
Kardeşim öncelikle şöyle söyleyim ileri ve geri için tanımladığın değişkenler int yani sayı okumaya çalıştığın pinler ise bool yani bir veya sıfır olabilir , ikincisi if koşulunda ikisini de HIGH vermişsin bu imkansız. Aşağıdaki kodu dene bi:
Kod:
int E1=9;

int E2=8;

int R1=3;

int R2=2;







void setup() {

  Serial.begin(9600);

  pinMode(E1, INPUT);

  pinMode(E2, INPUT);

  pinMode(R1, OUTPUT);

  pinMode(R2, OUTPUT);

  digitalWrite(R1,LOW);

  digitalWrite(R2,LOW);



}



void loop()

{



if (digitalRead(E1) && !digitalRead(E2))

{

  digitalWrite(R1,HIGH);

  delay(250);

  digitalWrite(R1,LOW);

}



else if(!digitalRead(E1) && digitalRead(E2)){

  digitalWrite(R2,HIGH);

  delay(250);

  digitalWrite(R2,LOW);

}

}
sag sol hareketti algılayacak şekilde olmadı kod. flip flop gibi yer değiştiriyor çıkışlar. birde çıkış verince oylece kalıyor yani 250ms tetikleyip durmuyor. and komutu buna uymadı heralde yanlışmıyım acaba ?
 

Ekli dosyalar

  • rotary-300x229.jpg
    rotary-300x229.jpg
    9.5 KB · Görüntüleme: 2
Çıkışın sabit kalması normal çünkü sensör tam ortada kalamıyor ya ileri ya geri pozisyonunda olduğu için çıkışlarda haliyle ya ileri ya geri rölesini çekecek. Eğer aynı pozisyonda sabit kalacaksa iki tane flag tanımlaman lazım.
Kod:
int E1=9;



int E2=8;



int R1=3;



int R2=2;



bool ileri =0;

bool geri =0;











void setup() {



  Serial.begin(9600);



  pinMode(E1, INPUT);



  pinMode(E2, INPUT);



  pinMode(R1, OUTPUT);



  pinMode(R2, OUTPUT);



  digitalWrite(R1,LOW);



  digitalWrite(R2,LOW);







}







void loop()



{







if (digitalRead(E1) && !digitalRead(E2) && !ileri)



{

geri=0;

  digitalWrite(R1,HIGH);



  delay(250);



  digitalWrite(R1,LOW);

ileri =1;

}







else if(!digitalRead(E1) && digitalRead(E2) && !geri){



ileri =0;

  digitalWrite(R2,HIGH);



  delay(250);



  digitalWrite(R2,LOW);

geri=1;

}



}
 
Moderatör tarafında düzenlendi:
benim arduino projem var.Bu projede bir sorunla karşılaştım.Bebek bezinden çıkan nemi veya ıslaklık anlayıp öten bir proje yapmak istiyorum ama bunun için hangi sensörü kullanacağıma karar veremedim.
 

Forum istatistikleri

Konular
128,180
Mesajlar
915,673
Kullanıcılar
449,945
Son üye
kerim2756

Yeni konular

Geri
Üst