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.
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.
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 (bitpazarından 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ıracağım sorun çıkmazsa böyle devam edeceğim.
Peki hocam Arduino için kodu siz yazarsanız benimle de paylaşır mısınız? Ben 7 segment display ile vites göstergesi yapacaktım. Ancak kodu hazır olarak yüklemek zorunda kaldığım için kodda düzenleme yapma şansım olmamıştı (kod hex dosyasıydı)
Peki hocam Arduino için kodu siz yazarsanız benimle de paylaşır mısınız? Ben 7 segment display ile vites göstergesi yapacaktım. Ancak kodu hazır olarak yüklemek zorunda kaldığım için kodda düzenleme yapma şansım olmamıştı (kod hex dosyasıydı)
Ben de mmjoy ile yapmayı düşünüyorum çünkü direksiyon için Arduino'yu gamepad olarak tanıtmalıyız.
Bunu yapacak kadar kod bilgisine sahip değilim ve ilk defa UNO dışında bir Arduino kartı ile çalışacağım.
Bende de 4 adet 7 segment display var 3 tanesi ile hız göstergesi yapabilirim belki leonardo ile UNO kartlarımdan birini haberleştirip hız göstergesi yapabilirim.
Şu an için ne desem laftan öteye gitmez salı günü elime rulman, leonardo ve çok turlu potansiyometre ulaşacak o zaman uygulamaya geçebilirim okullar açılmadan önce biraz sürmek istiyorum sonrasında vaktim olmayacak.
Kargolar gelene kadar ben de direksiyon simidi ve direksiyonun gövde kısmıyla uğraşacağım rulmanlar gelene kadar gövdeye fazla dokunmayacağım.
Ben de mmjoy ile yapmayı düşünüyorum çünkü direksiyon için Arduino'yu gamepad olarak tanıtmalıyız.
Bunu yapacak kadar kod bilgisine sahip değilim ve ilk defa UNO dışında bir Arduino kartı ile çalışacağım.
Bende de 4 adet 7 segment display var 3 tanesi ile hız göstergesi yapabilirim belki leonardo ile UNO kartlarımdan birini haberleştirip hız göstergesi yapabilirim.
Şu an için ne desem laftan öteye gitmez salı günü elime rulman, leonardo ve çok turlu potansiyometre ulaşacak o zaman uygulamaya geçebilirim okullar açılmadan önce biraz sürmek istiyorum sonrasında vaktim olmayacak.
Kargolar gelene kadar ben de direksiyon simidi ve direksiyonun gövde kısmıyla uğraşacağım rulmanlar gelene kadar gövdeye fazla dokunmayacağım.