Arduino push buton röle kontrolü

mkrkmzm

Üye
Katılım
31 Eki 2016
Mesajlar
47
Puanları
1
Yaş
38
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...
 
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:
İ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
 
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

uino-uno-r3-smd-arduino-ana-board-china-36887-17-K.jpg

-4-kanal-role-karti-role-kartlari-china-45361-60-K.jpg
 
İ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.
 
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
 
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.
 
Teşekkür ederim hocam ama kayseri deyim
 

Forum istatistikleri

Konular
127,960
Mesajlar
913,921
Kullanıcılar
449,609
Son üye
cherrywine

Yeni konular

Geri
Üst