Arduino push buton röle kontrolü

soner045

Üye
Katılım
9 Nis 2016
Mesajlar
39
Puanları
1
Yaş
42
Trip süresi boyunca beklemeniz gerekir. Daha sonra açabilirsiniz. Esas neden trip pozisyonuna gittiğini bulmanız gerekir. Konu yanlış yerde. Benim çok anladığım bir konu değil. 5volttan yukarısı bana sıkıntı ;)
Sağolun herzaman yapmıyor 2 ayda bir falan yapıyor dairelerden birinde kısa,devvre veya voltaj dalgalanması olabilir diye düşündüm trşp süresi dedğiniz sıfır yönünde bastırıp tık sesi gelinceye kadarmı ? Kolay gelsin
 
Konu Sah
M

mkrkmzm

Üye
Katılım
31 Eki 2016
Mesajlar
34
Puanları
3
Yaş
34
Hocam ilk enerjiyi verdiğimde rölelerin tümü çekip bırakıyor ardından 2sn sonra hepsi çekiyor butona bastığımda hepsi siniyor 5sn sonra sadece 4 nolu role tekrar çekiyor diğerleri hiç cekmiyor butona bastıkça 4 nolu röle bırakıp 5sn sonra tekrar çekiyor...
 

kocakus

Üye
Katılım
5 Tem 2020
Mesajlar
5
Puanları
3
Yaş
39
Abicim bir ara devreyi kurup bakayım.
 

kocakus

Üye
Katılım
5 Tem 2020
Mesajlar
5
Puanları
3
Yaş
39
Kod:
short butonpin = 3, role1 = 5, role2 =6, role3 = 7, role4 = 8, rolemode = 0;

void setup ()

{

Serial.begin(9600);

pinMode (butonpin , INPUT_PULLUP);

pinMode (role1 , OUTPUT);

pinMode (role2 , OUTPUT);

pinMode (role3 , OUTPUT);

pinMode (role4 , OUTPUT);

}

void loop()

{

if (!digitalRead(butonpin))

{delay(250);

if (rolemode<5)

{

rolemode++;

Serial.println(rolemode);

} else {

rolemode=0;

}

}

switch (rolemode) {

case 0:

digitalWrite(role1,0);

digitalWrite(role2,0);

digitalWrite(role3,0);

digitalWrite(role4,0);

Serial.println("case 0");

break;

case 1:

digitalWrite(role1,1);

digitalWrite(role2,0);

digitalWrite(role3,0);

digitalWrite(role4,0);

Serial.println("case 1");

break;

case 2:

digitalWrite(role1,1);

digitalWrite(role2,1);

digitalWrite(role3,0);

digitalWrite(role4,0);

Serial.println("case 2");

break;

case 3:

digitalWrite(role1,1);

digitalWrite(role2,1);

digitalWrite(role3,1);

digitalWrite(role4,0);

Serial.println("case 3");

break;

case 4:

digitalWrite(role1,1);

digitalWrite(role2,1);

digitalWrite(role3,1);

digitalWrite(role4,1);

delay(5000);

rolemode++;

Serial.println("case 4");

break;

case 5:

digitalWrite(role1,1);

digitalWrite(role2,1);

digitalWrite(role3,1);

digitalWrite(role4,0);

Serial.println("case 5");

break;

}

}
butona yeterince kısa süre basamadığımız için öyle oluyormuş. butona çeyrek saniyeden kısa süre basmalısınız :) ona göre ufak bir ayar daha verdim. şu haliyle baş tarafı yapıyor son adımda ne yapması gerektiğine tam karar veremedim. bir bakın olmazsa bir daha düzeltiriz...

IMG_20200715_003041.jpg
Devreyi şu şekilde kurdum ben.
Butonun bir bacağı gnd üzerinde diğeri d3
Elimde boşta röle olmadığı için LED ile denedim. Ledlerin katotları direnç üzerinden gnd ye gidiyor.
Anotları da ilgili pine bağlı.

Kod:
short butonpin = 3, role1 = 5, role2 =6, role3 = 7, role4 = 8, rolemode = 0;

void setup ()

{

Serial.begin(9600);

pinMode (butonpin , INPUT_PULLUP);

pinMode (role1 , OUTPUT);

pinMode (role2 , OUTPUT);

pinMode (role3 , OUTPUT);

pinMode (role4 , OUTPUT);

}

void loop()

{

if (!digitalRead(butonpin))

{delay(250);

if (rolemode<5)

{

rolemode++;

Serial.println(rolemode);

} else {

rolemode=0;

}

}

switch (rolemode) {

case 0:

digitalWrite(role1,1);

digitalWrite(role2,1);

digitalWrite(role3,1);

digitalWrite(role4,1);

Serial.println("case 0");

break;

case 1:

digitalWrite(role1,0);

digitalWrite(role2,1);

digitalWrite(role3,1);

digitalWrite(role4,1);

Serial.println("case 1");

break;

case 2:

digitalWrite(role1,0);

digitalWrite(role2,0);

digitalWrite(role3,1);

digitalWrite(role4,1);

Serial.println("case 2");

break;

case 3:

digitalWrite(role1,0);

digitalWrite(role2,0);

digitalWrite(role3,0);

digitalWrite(role4,2);

Serial.println("case 3");

break;

case 4:

digitalWrite(role1,0);

digitalWrite(role2,0);

digitalWrite(role3,0);

digitalWrite(role4,0);

delay(5000);

rolemode++;

Serial.println("case 4");

break;

case 5:

digitalWrite(role1,0);

digitalWrite(role2,0);

digitalWrite(role3,0);

digitalWrite(role4,1);

Serial.println("case 5");

break;

}

}
Röleler active low olduğu için burdan devam edelim.
 

Ekli dosyalar

Moderatör tarafında düzenlendi:

Sponsor Bağlantı

Forum istatistikleri

Konular
111,321
Mesajlar
784,098
Kullanıcılar
410,185
Son üye
Bandiniii

Yeni konular

Üst