Çözüldü Arduino zamanlayıcı olarak kullanma

Bu konu çözüldü olarak işaretlenmiştir. Çözülmediğini düşünüyorsanız konuyu rapor edebilirsiniz.

YusufYlmz

Hectopat
Katılım
12 Temmuz 2020
Mesajlar
237
Çözümler
1
Merhaba Arduino Leonardo hakkında birkaç sorum olacak. Öncelikle Arduino'ya bir DC motor takmam gerekiyor ve bu motorun gün içinde 50 dakika çalışıp 10 dakika durması gerekiyor. 24 saat boyunca böyle çalışmalı. Bunu nasıl yapabilirim?

Bir diğer sorum, Arduino'yu zaman ayarlı Switch olarak kullanabilir miyim? Yani tek yapması gereken zamanı geldiğinde düğmeye basacak, sonra bırakacak gibi.
 
Son düzenleme:
Çözüm
Vay be ben de son sınıfım elektrik veya bilgisayar istiyorum, kazanacağız inşallah.

Hayırlısı olsun hocam, inşallah.

Hocam, bu sefer kodu gerçekten hallettim galiba içime de sindi.

Kod'u yüklerken kodda değiştirmeniz gereken yerler var, oraları zaten yorum satırıyla belli ettim nereleri değiştirebilir nereleri değiştiremezsiniz kod üzerinde belirteceğim.

Kod saat 4-23 arası çalışıyor saat 00.00 olduğunda röleyi kapatıyor 4-23 arası boyunca 15dk çalışıp 5dk duracak şekilde yazdım fakat siz çalışma ve bekleme süresini ayarlayabileceksiniz.

Hatta çalışma saat aralığını da galiba ayarlanabilir yapabilirim.

Son düzeltmeleri yapayım kodu paylaşacağım.

C++:
#define ROLE 9 // röle pinini ayarlayabilirsiniz.

boolean role_tipi = 1; // eğer devre tersine çalışıyor ise değeri 0 yapın.

byte saat = 13; // saati ayarlayabilirsiniz (09 değil 9 şeklinde girin)

byte dakika = 7; // dakikayı ayarlayabilirsiniz (06 değil 6 şeklinde girin)

byte saniye; // ayarlamanıza gerek yok.

byte calisma = 15; // xdk çalışma süresi (dakika cinsinden yazınız) [MAKS DEĞER 255]
byte bekleme = 5; //xdk bekleme süresi (dakika cinsinden yazınız) [MAKS DEĞER 255]

byte baslangic = 4; // başlangıç saatini ayarlayabilirsiniz.
byte bitis = 24; // bitiş saatini ayarlayabilirsiniz (gece yarısı için 24 yazın)

long cals = (calisma * 60); // xdk çalışma süresi (dk saniye cinsine çevrilir) otomatik değişir.
long bekl = (bekleme * 60); // xdk bekleme süresi (dk saniye cinsine çevrilir) otomatik değişir.

void watch() // saat kodu burayı değiştirmeyin!
{
 saniye++;
 delay(1000);

 if (saniye == 60)
 {
 dakika++;
 saniye = 0;
 }
 else if (dakika == 60)
 {
 saat++;
 dakika = 0;
 saniye = 0;
 }
 else if (saat == 24)
 {
 saat = 0;
 dakika = 0;
 saniye = 0;
 }
}

void setup()
{
 pinMode(ROLE, OUTPUT);

}

void loop()
{
 watch(); // saatin çalıştığı watch fonksiyonunu çağırıyoruz ve saat işlemeye başlıyor.

 if (saat >= baslangic && saat < bitis) // başlangıç saati gelince çalışp bitiş saatinde durduran bunu yaparken 15dk çalışıp 5dk duran kod.
 {
 for (int a = 0; a < cals; a++)
 {
 digitalWrite(ROLE, role_tipi);
 watch();
 if (!(saat >= baslangic && saat < bitis)) // eğer çalışma saatleri dışındaysa döngüden çık.
 break;
 }

 for (int b = 0; b < bekl; b++)
 {
 digitalWrite(ROLE, !(role_tipi));
 watch();
 if (!(saat >= baslangic && saat < bitis)) // eğer çalışma saatleri dışındaysa döngüden çık.
 break;
 }
 }

 else // çalışma saatleri dışında röleyi kapatan kod.
 {
 digitalWrite(ROLE, !(role_tipi));
 }

}

Hocam, kodun üst tarafında "ayarlayabilirsiniz" yazan yerleri ayarlayabilirsiniz.

Kodu birkaç dk denedim ve düzgünce çalıştı kodu deneyip geri dönüş sağlayın.

Kodu yüklemeden önce saat ve dakikayı ayarlayın saniye kısmını ayarlamanıza gerek yok tavsiyem dakikayı 1dk ileri yapın.
Şimdi 9v pil ile 15 dakika çalıştırdım hız ve tork gücü istediğim düzeylerde.
Motorun 9v pilden adaptörden çektiğinden daha fazla amper çekme ihtimali yüksek. Önce motorun pilden kaç amper çektiğini ölçün. Normalde sizin kullanımınızda yüksek torklu daha yavaş bir motor kullanılır veya hızlı ve torksuz bir motor dişliler yardımıyla daha torklu ama daha yavaş hale düşürülür. Sizin motorunuzun en fazla 2 ampere kadar dayanıklı olduğunu düşünüyorum. Bu durumda şu anki kullanımınız motor ısınsa bile en iyi çözüm.
 

Aslında elimde 9v pil yok. Çok önemi olmadığı ve uzatmamak icin 9v pil dedim. 5v adaptöre 3.8v pili seri bağlayarak 9v elde ettim. Dişli konusunu da düşündüm fakat önceden dişli kullandığım projeler olmuştu hiç oraya girmek istemedim çünkü evde 3d yazıcı yok. Uygun dişliyi bulamam ve bulsam bile yazıcı olmadan cuk oturtacak bir kalıp bulamam.

Şuan ki durumunuz dediğiniz 9v ise ben de sizin gibi düşünüyorum. 12v yi kastettiyseniz çok uzun ömürlü olacağını düşünmüyorum soğutma yapılmadan. Motorların iç mekaniğinden pek anlamam ama o sıcaklıkta mutlaka bir şey eriyecektir.
 

İçlerinde eriyecek bakır kablolar var ama erime sıcaklığına ulaşamadan teller yanacak ve devre açığa düşecektir.

O ısıya çıkacağını sanmıyorum. Ben 3V'luk motora da 12v vermiştim yanmamıştı
 

Hocam aslına bakarsan, küçükken şu küçük deney motorunu alıp iki ucunu prize sokmuştum meraktan(?) 1 saniye çalışıp şalterleri attırmıştı. Ama motor bozulmamıştı Ancak şuan ki motor 24 saat ve aylarca çalışacağı için çok kısa sürede bozulacağını düşünüyorum ve değiştirmek için herşey sil baştan. Bu yüzden işi sıkı tutmaya çalışıyorum herşey tamam demeden önce.
 

Düzeneği motoru çıkarıp değiştirebilecek şekilde tasarlasanız çok mu zor olur?
 
Düzeneği motoru çıkarıp değiştirebilecek şekilde tasarlasanız çok mu zor olur?

Denedim, öncelikle motor aşırı sallantı yapıyor ve ses çıkarıyor titreşim den ötürü. İkincisi milimetrik bile kayma olsa doğrultu değişeceğinden bu pervaneye cok büyük ölçüde yansıyor. Tork çok fazla düşüyor. Bu yüzden sağlam sabitlemem gerekiyor.
 

Anladım, peki bu sağlam sabitleme işini vida gibi bir şey ile sonradan sökülebilir bir şekilde yapamaz mısınız?
 
Anladım, peki bu sağlam sabitleme işini vida gibi bir şey ile sonradan sökülebilir bir şekilde yapamaz mısınız?

Yapılabilir, eğer daha sağlam ve kalıp olarak uygun bir parça bulabilirsem. Şu an da sökme gibi bir fikrim yok ama dediğim gibi daha temiz bir motor bulabilirsem mecbur sökecegim. O zaman ayarlayabilirim belki de.

9V adaptör buldum hocam (bit pazarindan 5tl(?) ye aldım) Yarım saat aralıksız çalıştırdım el yakacak kadar ısınmıyor. 1 gün Arduino ile çalıştırcam sorun çıkmazsa böyle devam edeceğim.
 
Son düzenleme:
Bu siteyi kullanmak için çerezler gereklidir. Siteyi kullanmaya devam etmek için çerezleri kabul etmelisiniz. Daha Fazlasını Öğren.…