Arduino push buton röle kontrolü

mkrkmzm

Üye
Katılım
31 Eki 2016
Mesajlar
34
Puanları
3
Yaş
34
Slm arkadaşlar arduino ile ilgili bir projem var ama kodlama kısmında hiç bilgim yok
Sorum bir buton olacak
1. Basışta röle 1 devreye girecek
2. Basışta röle 2
3. Basışta röle 3
4. Basışta röle 4 çekecek ama 5 sn
5. Basışta ilk çeken 3 röle bırakıp dongü başa dönecek...
Buton kartta nereye takılacak falan bilgi istiyorum yardımcı olacak arkadaşlara şimdiden teşekkür ederim...
 

mehmetemin

Katılımcı Üye
Katılım
28 Eyl 2006
Mesajlar
355
Puanları
58
Konum
Konya
Google
 

kocakus

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



void setup ()

{

pinMode (butonpin , INPUT_PULLUP);

pinMode (role1 , OUTPUT);

pinMode (role2 , OUTPUT);

pinMode (role3 , OUTPUT);

pinMode (role4 , OUTPUT);

}



void loop()

{

if (!digitalRead(butonpin))

{

if (rolemode<6)

{

rolemode++

} else {

rolemode=0

}

}

switch (rolemode) {

case 0:

digitalWrite(role1,0);

digitalWrite(role2,0);

digitalWrite(role3,0);

digitalWrite(role4,0);

break;

case 1:

digitalWrite(role1,1);

digitalWrite(role2,0);

digitalWrite(role3,0);

digitalWrite(role4,0);

break;

case 2:

digitalWrite(role1,1);

digitalWrite(role2,1);

digitalWrite(role3,0);

digitalWrite(role4,0);

break;

case 3:

digitalWrite(role1,1);

digitalWrite(role2,1);

digitalWrite(role3,1);

digitalWrite(role4,0);

break;

case 4:

digitalWrite(role1,1);

digitalWrite(role2,1);

digitalWrite(role3,1);

digitalWrite(role4,1);

delay(5000);

rolemode++;

break;

case 5:

digitalWrite(role1,1);

digitalWrite(role2,1);

digitalWrite(role3,1);

digitalWrite(role4,0);

break;

}
Kafadan cep telefonuyla bu kadar yazdım. Çalışan çalışmayan yerini yazarsanız bakarız.

En sonda bir tane daha } olacak
switch yapısını kapatmışım ama loop u kapatmamışım üzgünüm. Bir de umarım soruyu doğru anlıyorumdur. Butonun bir ucu dijital pinlerden 3 e diğer ucu gnd hattına bağlanacak. pinMode INPUT_PULLUP tanımladığımız için zaten buton basılı değilken high durumda basıldığında low olmasını bekliyoruz. ! İşareti durumu terse çevirmek için kullanıldı... Röleler standart röle bağlantısı yapılmalı.
 
Moderatör tarafında düzenlendi:

soner045

Üye
Katılım
9 Nis 2016
Mesajlar
39
Puanları
1
Yaş
42
İyi günler kolay gelsin apartmanın termik kompakt ana şarteli trip pozisyonuna düşüyor açmaya çalştğmda kolu off pozisyonuna çektğimde off ta,durmuyor tekrar ortaya,düşüyor off pozisyonunfa bir süre tutmammı gerekiyor tam olarak nasıl yapılıcağnı yazarsanız çok sevinirim teşekkürler ustalar
 
Konu Sah
M

mkrkmzm

Üye
Katılım
31 Eki 2016
Mesajlar
34
Puanları
3
Yaş
34
En sonda bir tane daha } olacak
switch yapısını kapatmışım ama loop u kapatmamışım üzgünüm. Bir de umarım soruyu doğru anlıyorumdur. Butonun bir ucu dijital pinlerden 3 e diğer ucu gnd hattına bağlanacak. pinMode INPUT_PULLUP tanımladığımız için zaten buton basılı değilken high durumda basıldığında low olmasını bekliyoruz. ! İşareti durumu terse çevirmek için kullanıldı... Röleler standart röle bağlantısı yapılmalı.
Teşekkür ederim hocam deneyince tekrar sizinle iletişim kurarım...
Kullanacağım kartlar bunlar hocam


 

kocakus

Üye
Katılım
5 Tem 2020
Mesajlar
5
Puanları
3
Yaş
39
İyi günler kolay gelsin apartmanın termik kompakt ana şarteli trip pozisyonuna düşüyor açmaya çalştğmda kolu off pozisyonuna çektğimde off ta,durmuyor tekrar ortaya,düşüyor off pozisyonunfa bir süre tutmammı gerekiyor tam olarak nasıl yapılıcağnı yazarsanız çok sevinirim teşekkürler ustalar
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ı ;)

Teşekkür ederim hocam deneyince tekrar sizinle iletişim kurarım...
Kullanacağım kartlar bunlar hocam


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



void setup ()

{

pinMode (butonpin , INPUT_PULLUP);

pinMode (role1 , OUTPUT);

pinMode (role2 , OUTPUT);

pinMode (role3 , OUTPUT);

pinMode (role4 , OUTPUT);

}



void loop()

{

if (!digitalRead(butonpin))

{

if (rolemode<6)

{

rolemode++;

} else {

rolemode=0;

}

}

switch (rolemode) {

case 0:

digitalWrite(role1,0);

digitalWrite(role2,0);

digitalWrite(role3,0);

digitalWrite(role4,0);

break;

case 1:

digitalWrite(role1,1);

digitalWrite(role2,0);

digitalWrite(role3,0);

digitalWrite(role4,0);

break;

case 2:

digitalWrite(role1,1);

digitalWrite(role2,1);

digitalWrite(role3,0);

digitalWrite(role4,0);

break;

case 3:

digitalWrite(role1,1);

digitalWrite(role2,1);

digitalWrite(role3,1);

digitalWrite(role4,0);

break;

case 4:

digitalWrite(role1,1);

digitalWrite(role2,1);

digitalWrite(role3,1);

digitalWrite(role4,1);

delay(5000);

rolemode++;

break;

case 5:

digitalWrite(role1,1);

digitalWrite(role2,1);

digitalWrite(role3,1);

digitalWrite(role4,0);

break;

}

}
bu hali ile derleniyor. 2 tane de ; unutmuşum. Normalde fonksiyon içine yazmak mantıklı ama ilk hali ile alt fonksiyonlar olmadan yazmıştım yapıyı değiştirmedim. Butona basımını kaçırmaması için interruptları kullanabilirsiniz. Butonun bir ucu D3 diğer ucu GND ye bağlı olmalı. Elinizdeki Röleler için GND GND ye VCC 5v ye in1, in2, in3 ve in4 sırasıyla D5, D6, D7 ve D8 e bağlanmalı. Röleler yüksek voltaj tarafında + hat üzerinde araya bir ucu com a diğer ucu NO ya gelecek şekilde bağlanmalı. Yüksek voltaj tarafı ölümcüldür. İş yaparken mutlaka dikkat edilmeli... Yardımcı olmak adına yazdım herhangi bir sorumluluk almıyorum.
 
Konu Sah
M

mkrkmzm

Üye
Katılım
31 Eki 2016
Mesajlar
34
Puanları
3
Yaş
34
short butonpin = 3, role1 = 5, role2 =6, role3 = 7, role4 = 8, rolemode = 0;

void setup ()
{
pinMode (butonpin , INPUT_PULLUP);
pinMode (role1 , OUTPUT);
pinMode (role2 , OUTPUT);
pinMode (role3 , OUTPUT);
pinMode (role4 , OUTPUT);
}

void loop()
{
if (!digitalRead(butonpin))
{
if (rolemode<6)
{
rolemode++;
} else {
rolemode=0;
}
}
switch (rolemode) {
case 0:
digitalWrite(role1,0);
digitalWrite(role2,0);
digitalWrite(role3,0);
digitalWrite(role4,0);
break;
case 1:
digitalWrite(role1,1);
digitalWrite(role2,0);
digitalWrite(role3,0);
digitalWrite(role4,0);
break;
case 2:
digitalWrite(role1,1);
digitalWrite(role2,1);
digitalWrite(role3,0);
digitalWrite(role4,0);
break;
case 3:
digitalWrite(role1,1);
digitalWrite(role2,1);
digitalWrite(role3,1);
digitalWrite(role4,0);
break;
case 4:
digitalWrite(role1,1);
digitalWrite(role2,1);
digitalWrite(role3,1);
digitalWrite(role4,1);
delay(5000);
rolemode++;
break;
case 5:
digitalWrite(role1,1);
digitalWrite(role2,1);
digitalWrite(role3,1);
digitalWrite(role4,0);
break;
}
}




bu hali ile derleniyor. 2 tane de ; unutmuşum. Normalde fonksiyon içine yazmak mantıklı ama ilk hali ile alt fonksiyonlar olmadan yazmıştım yapıyı değiştirmedim. Butona basımını kaçırmaması için interruptları kullanabilirsiniz. Butonun bir ucu D3 diğer ucu GND ye bağlı olmalı. Elinizdeki Röleler için GND GND ye VCC 5v ye in1, in2, in3 ve in4 sırasıyla D5, D6, D7 ve D8 e bağlanmalı. Röleler yüksek voltaj tarafında + hat üzerinde araya bir ucu com a diğer ucu NO ya gelecek şekilde bağlanmalı. Yüksek voltaj tarafı ölümcüldür. İş yaparken mutlaka dikkat edilmeli... Yardımcı olmak adına yazdım herhangi bir sorumluluk almıyorum.
Teşekkür ederim hocam elektrik konusunda sıkıntı olmaz mesleğim elektrik çi yardımınız için çok teşekkür ederim size
 

kocakus

Üye
Katılım
5 Tem 2020
Mesajlar
5
Puanları
3
Yaş
39
Teşekkür ederim hocam elektrik konusunda sıkıntı olmaz mesleğim elektrik çi yardımınız için çok teşekkür ederim size
Rica ederim. Taş atıp da kolumuz ağrımadı. Ankara'daysanız bizim de elektrikçi ihtiyacımız oluyor nadiren. Bu aralar virüs hikayesine boştayız ama işler açılınca birbirimize yardımcı olabiliriz. Başkası kazanacağına bir forumdaş kazansın. Uzayan el bizden olsun.
 
Konu Sah
M

mkrkmzm

Üye
Katılım
31 Eki 2016
Mesajlar
34
Puanları
3
Yaş
34
Teşekkür ederim hocam ama kayseri deyim
 

Sponsor Bağlantı

Yeni mesajlar

Forum istatistikleri

Konular
111,339
Mesajlar
784,208
Kullanıcılar
410,229
Son üye
araskaranlık

Yeni konular

Üst