YAZARLIK BAŞVURUSUBize Katılmak istermisiniz?

Arduino ile Saat Uygulaması

Merhabalar..

Bu konuda Arduino da 4′ lü 7 segment yardımı ile saat yapımına değineceğiz.

Saatimiz 00:00 dan başlayıp sayma işlemi gerçekleştirecek. Aynı zamanda bilgisayar saatine erişmek bir C# ile yazılmış bir uygulama ile mümkün olacak.

Uygulamamızda daha önceden bahsettiğimiz çoklu segment kullanım mantığı olacak. Bundan kastımız 4 adet 7 segmentin aktif etmek için kullandığımız pinleri milisaniyeler içinde yakıp söndürme işlemi. Bu işlem gözün algılayabileceği hızdan daha fazla olduğu için fark edilmeyecek. Veriyi bilgisayardan alırken C# da veriyi datetime formatından string’ lere çevirip, seri port üzerinden arduino ya aktarma ve burada gerekli parçalara ayırma işlemi gerçekleştirilecek. Bu parçalara ayırma işleminde substring fonksiyonu kullanılacak. Ayrıca kullandığımız ufak bir buton ile uygulamadaki saniye değerini segmentler üzerine yazdırabileceğiz.

Ancak burada dikkat etmemiz gereken bir nokta var. O da 7 segmentimizin ortak anot mu yoksa ortak katot mu olduğu. Benim yazdığım kodlar ve vereceğim bağlantı şeması için ortak anot için. Siz kendi segmentinizin türünü öğrenmeden bağlantı gerçekleştirmeyiniz. Aksi taktirde beklenmedik sonuçlar ile karşılaşabilirsiniz …

Tekli 7 segment kullanımına buradan ulaşabilirsiniz

Öncelikle bağlantı şemamızı verelim:

LCD_bb

 

 Arduino’ nun fritzing de mega adk olmasına takılmayın. Normal Mega da kullanabilirsiniz..

Üstte belirttiğimiz gibi buradaki bağlantılar ortak anot içindir. Herhangi bir segmentin yanması için yazılımda Arduino’ da ilgili pin i LOW a çekeceğiz. Bu ortak katot segmentler de tam tersidir.

Şimdi de Arduino Kodumuz:

 

Yazılımın içerisinde de belirttiğimiz gibi ufak bir gecikme sorunu yaşanmaktadır. Bunu en yakında daha iyi bir algoritmanın bulunduğu fonksiyonlar ile değiştereceğim.. :)

Arayüzümüzün görüntüsü ve exe dosyası:

 

Screenshot 2014-10-15 21.49.14
İndirmek İçin Resme Tıkla

 

Arayüz kaynak kodlarına buradan ulaşabilirsiniz..

 

8 Comments

Add a Comment

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir