Çö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.
Son durum nedir hocam?

Hocam açıkçası işin Arduino kısmı ile ilgilenemiyorum şu an da. Projenin mekanik kısmında bir iki sorunla uğraşıyorum umarım son aşama Arduino'ya geçeceğim yakında. Ve gene Arduino ile ilgili de birkaç sorum olacak ama şu an gereksiz olur biraz. Her şey netleştiğin de gene yardımınız gerekecek muhtemelen :)
 
Hocam açıkçası işin Arduino kısmı ile ilgilenemiyorum şu an da. Projenin mekanik kısmında bir iki sorunla uğraşıyorum umarım son aşama Arduino'ya geçeceğim yakında. Ve gene Arduino ile ilgili de birkaç sorum olacak ama şu an gereksiz olur biraz. Her şey netleştiğin de gene yardımınız gerekecek muhtemelen :)

İnşallah istediğiniz gibi olur hocam, seve seve yardımcı olurum.
 
İnşallah istediğiniz gibi olur hocam, seve seve yardımcı olurum.

Hocam birkaç sorundan dolayı, motora potansiyometre takmam gerekiyor. Direnç bağlasam da olur hızı bir miktar düşse yeterli. Elimde 10k pot mevcut bağlantıyı nasıl yapmam gerekiyor acaba?

Bir de konudan biraz uzak bir iki sorum olacak. DC motorun uzun sürelerde çalışması nasıl sıkıntılar çıkarır? Çalışırken biraz ısınıyor. Ve 12vluk motora 5V güç versek daha uzun ömürlü olur mu?
 
Hocam birkaç sorundan dolayı, motora potansiyometre takmam gerekiyor. Direnç bağlasam da olur hızı bir miktar düşse yeterli. Elimde 10k pot mevcut bağlantıyı nasıl yapmam gerekiyor acaba?

Bir de konudan biraz uzak bir iki sorum olacak. DC motorun uzun sürelerde çalışması nasıl sıkıntılar çıkarır? Çalışırken biraz ısınıyor. Ve 12vluk motora 5V güç versek daha uzun ömürlü olur mu?

Hocam pot pek verimli olmaz motor sürücü kullansaydık Arduino üzerinden hız kontrolu yapabilirdik.
Direnç iş görebilir fakat istediğiniz hızı alana kadar denemeler yapmanız gerekebilir 220ohm, 330, 1K ve 10klık dirençler deneyebilirsiniz.
Direnç renk kodlarını resim olarak bırakıyorum sondaki gümüş renge pek takılmayın o renk altın da olabilir, bu renk tolerans değerini gösterir gümüş renk %10, altın renk %5 tolerans.

Screenshot_2023-08-18-09-29-38-446_it.android.demi.elettronica.pro.jpg


Screenshot_2023-08-18-09-29-46-354_it.android.demi.elettronica.pro.jpg


Screenshot_2023-08-18-09-29-58-906_it.android.demi.elettronica.pro.jpg


Screenshot_2023-08-18-09-30-07-887_it.android.demi.elettronica.pro.jpg


Direnç bağlantısını motorun güç aldığı iki pinden birine yapabilirsiniz, direkt pile yapmanızı önermem çünkü devre düzgün çalışmayabilir.

12v motora 5V vermeniz daha uzun çalışmasını sağlamayabilir daha yavaş çalışır hatta çalışmama ihtimali de var.

Uzun çalışması verilen ve çektiği akıma bağlıdır yani burada mili amper ya da amper etkilidir.

Elinizdeki 18650 pilleri paraler bağlayarak amperini arttırabilirsiniz, paralel bağlantı şu şekildededir iki pilin artılarını birbirine ve eksiklerini de birbirine bağlarsanız paralel bağlantı yapmış olursunuz fakat yanlış bir bağlantı yapmayın.

Anlatmak istediğimi anlamadıysanız seri ve paralel bağlantılar hakkında araştırma yapabilirsiniz.

Motorun uzun süre çalışmasına gelirsek zaten fırçalı motorların bir çalışma ömrü vardır o bitene kadar çalışır bu ömre etki eden faktörler motorun zorlanması ve verilen akım-voltaj değeridir. Isınmayı kafanıza pek takmayın o motorlar hep ısınır.
 
Hocam pot pek verimli olmaz motor sürücü kullansaydık Arduino üzerinden hız kontrolu yapabilirdik.
Direnç iş görebilir fakat istediğiniz hızı alana kadar denemeler yapmanız gerekebilir 220ohm, 330, 1K ve 10klık dirençler deneyebilirsiniz.
Direnç renk kodlarını resim olarak bırakıyorum sondaki gümüş renge pek takılmayın o renk altın da olabilir, bu renk tolerans değerini gösterir gümüş renk %10, altın renk %5 tolerans.

Eki Görüntüle 1907232

Eki Görüntüle 1907233

Eki Görüntüle 1907234

Eki Görüntüle 1907235

Direnç bağlantısını motorun güç aldığı iki pinden birine yapabilirsiniz, direkt pile yapmanızı önermem çünkü devre düzgün çalışmayabilir.

12v motora 5V vermeniz daha uzun çalışmasını sağlamayabilir daha yavaş çalışır hatta çalışmama ihtimali de var.

Uzun çalışması verilen ve çektiği akıma bağlıdır yani burada mili amper ya da amper etkilidir.

Elinizdeki 18650 pilleri paraler bağlayarak amperini arttırabilirsiniz, paralel bağlantı şu şekildededir iki pilin artılarını birbirine ve eksiklerini de birbirine bağlarsanız paralel bağlantı yapmış olursunuz fakat yanlış bir bağlantı yapmayın.

Anlatmak istediğimi anlamadıysanız seri ve paralel bağlantılar hakkında araştırma yapabilirsiniz.

Motorun uzun süre çalışmasına gelirsek zaten fırçalı motorların bir çalışma ömrü vardır o bitene kadar çalışır bu ömre etki eden faktörler motorun zorlanması ve verilen akım-voltaj değeridir. Isınmayı kafanıza pek takmayın o motorlar hep ısınır.

Bugün alayım o zaman dirençleri deneyelim. Ancak o attığım motor resmin de direnç tam olarak nasıl bağlanacak onu çözemedim, bir ayağı motora gitse diğer ayağını nereye bağlamam lazım?

Ve seri ve paralel bağlantıları biliyorum hocam ya o kadar da değil :D En azından Fizikçinin anlattığı kadarını.

Bir de şimdi aklıma bir şey geldi devreye 3 bacaklı anahtarlardan takıp oraya 2 direnç bağlasak direnci manuel degistirebilir miyiz?
 
Son düzenleme:
Bugün alayım o zaman dirençleri deneyelim. Ancak o attığım motor resmin de direnç tam olarak nasıl bağlanacak onu çözemedim, bir ayağı motora gitse diğer ayağını nereye bağlamam lazım?

Ve seri ve paralel bağlantıları biliyorum hocam ya o kadar da değil :D en azından fizikçinin anlattığı kadarını.

Fizikçinin anlattığı kadarı yeterli hocam, motorun karta bağlı oldu bacaklarından birininin lehimini çıkartacaksınız. Direncin bir ucu karta diğer ucu da motorun çıkarttığınız pinine bağlanacak.

Direncin yönü önemli değil, diod olsaydı önemli olurdu.
 
Hocam gene ufak bir sorun var onu hallettim ama artık motoru 5 değil 10v ile çalıştırmam gerekecek. Ve motor o resimde ki gibi karta entegre değil harici normal DC motor. Arduino ile 10v motor çalıştırabilir miyim acaba? Biraz karman çurman yazıyorum soruları ama son bir iki gündür kafam çorba oldu birçok kombinasyon denemekten :)
 
Hocam gene ufak bir sorun var onu hallettim ama artık motoru 5 değil 10v ile çalıştırmam gerekecek. Ve motor o resimde ki gibi karta entegre değil harici normal DC motor. Arduino ile 10v motor çalıştırabilir miyim acaba? Biraz karman çurman yazıyorum soruları ama son bir iki gündür kafam çorba oldu birçok kombinasyon denemekten :)

Arduino ile 10v çalıştırmak için eğer hız ve yön kontrolü olmayacak ise röleyi kullanabiliriz öbür türlü motor sürücü lazım.

Bugün alayım o zaman dirençleri deneyelim. Ancak o attığım motor resmin de direnç tam olarak nasıl bağlanacak onu çözemedim, bir ayağı motora gitse diğer ayağını nereye bağlamam lazım?

Ve seri ve paralel bağlantıları biliyorum hocam ya o kadar da değil :D en azından fizikçinin anlattığı kadarını.

Bir de şimdi aklıma bir şey geldi devreye 3 bacaklı anahtarlardan takıp oraya 2 direnç bağlasak direnci manuel degistirebilir miyiz?

Maalesef 3 bacaklı olanlar düşündüğünüz gibi çalışmıyor. En azından tek kademeli olanlar eğer iki kademeli ise olabilir. Fakat hız kontrolu için motor sürücü daha ideal olur.

Eğer motor sürücü olursa dirence gerek olmaz pot ile Arduino üzerinden ayarlayabilirsiniz hızı.
 
Arduino ile 10v çalıştırmak için eğer hız ve yön kontrolü olmayacak ise röleyi kullanabiliriz öbür türlü motor sürücü lazım.

Maalesef 3 bacaklı olanlar düşündüğünüz gibi çalışmıyor. En azından tek kademeli olanlar eğer iki kademeli ise olabilir. Fakat hız kontrolu için motor sürücü daha ideal olur.

Eğer motor sürücü olursa dirence gerek olmaz pot ile Arduino üzerinden ayarlayabilirsiniz hızı.

Evet motoru değiştirdiğim için hız ve yön kontrolu gerekmiyor artık. Dolayısıyla dirence de gerek kalmadı. Ancak aklıma takılan şey, ben 5V röle aldım fakat motora 10v vermem gerekecek. Bu sıkıntı çıkarmaz mi? Eğer sıkıntı derseniz 12v röle ile de değiştirebilirim.
 

Technopat Haberler

Yeni konular

Geri
Yukarı