7 SEGMENT DISPLAY ILE KRONOMETRE

Ahmet

S38>S85
Katılım
31 Mayıs 2021
Mesajlar
6,047
Display fiyatları fırladıkça çözümü artık 7segmanda arıyorum fakat aklıma takılan çok büyük bir nokta var.

Benim int tipinde max 4 dijit basamağa kadar çıkacak bir sayım olsun.

Ben bunu 4 segmanı transistörler ile tarama yaparken nası yazdırabilirim 7 segman displaye.
7SEG.png

Bu düzende transistörler ile tarama yaptığım 4 adet 7 segmana int tipinde veriyi nası yazabilirim?

Veya bunun 595'li versiyonu ile nasıl yapabilirim?
 
Max7219
 
Benim yıllar önce başladığım ama hala bitiremediğim şu projeyi yapabilirsin Ahmet. Doğrudan Arduino ile 8 tane 7segment display sürülmesi. Proje bir kronometre, ama frekans sayıcı veya saat olarak da yazılım geliştirilebilir. Hepsini yaparsan bir de bonus var :)

 
Benim yıllar önce başladığım ama hala bitiremediğim şu projeyi yapabilirsin Ahmet. Doğrudan Arduino ile 8 tane 7segment display sürülmesi. Proje bir kronometre, ama frekans sayıcı veya saat olarak da yazılım geliştirilebilir. Hepsini yaparsan bir de bonus var :)

Abi bir sorun var.

Ben 1-0 set ederek ortaya çıkardığım sayılardan öte bilmiyorum 7 segman kullanmayı yani bir int tipine veriyi nasıl yazacağım bunu öğrenirsem üstüne devam edebilirim hazır program sunulmasına gerek yok mantık anlatılsa ben ipin ucunu tutmuşum demektir.

18 haziran saat 13:00 başlayacağım 2. proje bu olabilir.

TM1637 gibi tamamen al 4 kablo bağla blabla.print(değişken); al sana 4 dijit her türlü veriyi yazacağın 7 segman ama ben tammen mantığı kavramak istiyorum.
 
Yazılım tarafında zor olan şey 16 bit bir sayıyı segmentlere yazılır hale getirmek değil, orada başka bir zorluk var. Ama o zorluğu projeyi yaparken yaşayıp çözüm üzerine kafa yormanı istiyorum.

Sen önce 8 haneli taramalı devreyi çiz ve gerçekleştir. sonra da 32 bit bir değişkendeki değeri yazdıran program. Bu da hallolduktan sonra, kronometre, saat, ve frekans metre yazılımlarını yapabilirsin. Bu güzel öğretici bir proje, hem donanım hem yazılım tarafı var.
 
Yazılım tarafında zor olan şey 16 bit bir sayıyı segmentlere yazılır hale getirmek değil, orada başka bir zorluk var. Ama o zorluğu projeyi yaparken yaşayıp çözüm üzerine kafa yormanı istiyorum.

Sen önce 8 haneli taramalı devreyi çiz ve gerçekleştir. sonra da 32 bit bir değişkendeki değeri yazdıran program. Bu da hallolduktan sonra, kronometre, saat, ve frekans metre yazılımlarını yapabilirsin. Bu güzel öğretici bir proje, hem donanım hem yazılım tarafı var.
Peki bir farklı boyut daha.
Atmel studio ile birkaç çalışmam olmuştu ama bunlar led blink gibi şeylerdi.

Bu verdiğin projeyi atmel studio ile yapsam/denesem daha fazla ilerlemiş olur muyum programlama adına tamam arduino ideye(cpp'ye) hakimim diyebilirim ama bu kadar zamanın kritik olduğu projede güvenilir bir platform olabilir mi arduino ide
 
Atmel Studio kalktı artık. Onun yerine Mplab IDE var. Bence projeyi Arduino IDE ile ve Arduino UNO üzerinde yaparsan daha faydalı olur. Önemli olan böyle bir devreyi tasarlayabilmek ve sonra da bu devre için uygun yazılımı geliştirebilmek. Yoksa önemli olan MPLAB IDE öğrenmek değil. Onu öğrenmesen de olur. Her işlemci yapan firmanın kendi IDE'si var, öğren öğren bitmez, gerek de yok.
 
Bende galiba kaçış yolu arama hastalığı başladı sürekli arduino ide dışında bir platform arıyorum istediğimi bulamayıp geri geliyorum.

Benim korktuğum mesela millis ile milisaniyeyi izliyorum böldüm birdaha böldüm birdaha böldüm bu bölme anlarında yaşanacak en ufak gecikme ki bu anlarda displaye yazıyoruz yaşayacağımız gecikmeler bizim bütün cihaza güvenilirliği yerle bir eder doğru sonuç alamadıktan sonra değil 8 18 dijit'de yapsam bir anlamı yok
 
Başlamadan önce nasıl yapacağını anlat, yoksa olmayacak bir işe girişmiş olursun ve sonuç hayal kırıklığı olur.
 
Bende galiba kaçış yolu arama hastalığı başladı sürekli arduino ide dışında bir platform arıyorum istediğimi bulamayıp geri geliyorum.

Benim korktuğum mesela millis ile milisaniyeyi izliyorum böldüm birdaha böldüm birdaha böldüm bu bölme anlarında yaşanacak en ufak gecikme ki bu anlarda displaye yazıyoruz yaşayacağımız gecikmeler bizim bütün cihaza güvenilirliği yerle bir eder doğru sonuç alamadıktan sonra değil 8 18 dijit'de yapsam bir anlamı yok
HC595'i SPI ile sürebilirsin. prescale 1 iken çalışıyordu bendeki çipler. Sayıyı basamaklarına ayırmak zaman alıyor ama bunu da belli bir güncelleme aralığında yapıp spi ile mutiplexing yapmak, bit bang'den çok daha hızlı oluyor ve ekranı sürme işini spi interrupta bırakıyorsun. Ben benzer nedenle birkaç devre basıp sürmüştüm. Kütüphane haline getiremedim ama verimli çalışıyordu. Devre kurmak ve kütüphanesiz çalışmak ekonomik olmaktan çıkarıyor. Platformio'yu denemeni öneririm eğer denemediysen, kurduktan sonra birkaç saatte çalışmaya alışıyorsun ve bir daha arduino ide'ye denmeyeceğinden eminim. Hem platformio'da serialmonitor'de türkçe karakterler hiçbir şey yapmadan çalışıyor.
 
Şimdi yazdığım kodlara baktım da 2018'de yazmışım ve "//" comment yazma alışkanlığım yokmuş o zaman, kendi kodumu baştan keşfetmem gerekecek durumda. Eğer hc595 ile spi veya bitbang ile sürmeye kalkışırsan kullandığım 4 basamaklı devreyi paylaşıyorum. Proteus dosyasıdır. Benim hala bir güç kaynağım yok. Bir tane yapmayı düşünüyorum bu ay ve 7segment display kullanıp hc595 ve spi ile sürmeyi planlıyorum. Umarım tamamlarım.
 

Ekler

  • 7seg_4d.zip
    112.8 KB · Görüntüleme: 103
Eğer segment segment yapılacaksa benim aklıma ilk gelen 0 dan 9'a kadar 10 tane fonksiyon oluşturup bunları lazım olan yerde çağırmak mantıklı gibi.

C++:
void bir(){
digitalWrite(A, LOW);
digitalWrite(B, HIGH);
digitalWrite(C, HIGH);
digitalWrite(D, LOW);
digitalWrite(E, LOW);
digitalWrite(F, LOW);
digitalWrite(G, LOW);
}
 
Eğer segment segment yapılacaksa benim aklıma ilk gelen 0 dan 9'a kadar 10 tane fonksiyon oluşturup bunları lazım olan yerde çağırmak mantıklı gibi.

C++:
void bir(){
digitalWrite(A, LOW);
digitalWrite(B, HIGH);
digitalWrite(C, HIGH);
digitalWrite(D, LOW);
digitalWrite(E, LOW);
digitalWrite(F, LOW);
digitalWrite(G, LOW);
}
Amaç hızlı çalışmak olduğundan digitalWrite bizi yaya bırakır. Koşmak için doğrudan port register'larına yazmak lazım.



hc595 ile kullanırken de bir hc595 ile segmentleri, diğeriyle basamakları kontrol edebiliriz. Yada basamaklarıın her biri için ayrı bir pin kullanılabilir. HC595 ile yapınca bir rakamı yazdırmak için sadece bir değişken çağırmak yeterli oluyor. Her bir segmentin hangi hc595 bitine bağlı olduğunu yazabiliriz.

Mesela
7seg:
#define A 1<<0    // değişkene bit bazında aktarmak için bit shift formatında
#define B 1<<1
#define C 1<<2
#define D 1<<3
#define E 1<<4
#define F 1<<5
#define G 1<<6
#define DOT 1<<7

uint8_t seg[8];

seg[0]|=(A|B|C|D|E|F);
seg[1]|=(B|C);
seg[2]|=(A|B|G|E|D);
seg[3]|=(A|B|G|C|D);
.
.
.

Eğer spi ile de sürersek basamağa 1 yazdırmak için sadece spi'dan seg[1] yollarız. SPI veriyi gönderirken biz de sonraki basamağı göndereceğimiz vakit gelene kadar bir sürü işlem yapabiliriz.
 
Şimdi yazdığım kodlara baktım da 2018'de yazmışım ve "//" comment yazma alışkanlığım yokmuş o zaman, kendi kodumu baştan keşfetmem gerekecek durumda. Eğer hc595 ile spi veya bitbang ile sürmeye kalkışırsan kullandığım 4 basamaklı devreyi paylaşıyorum. Proteus dosyasıdır. Benim hala bir güç kaynağım yok. Bir tane yapmayı düşünüyorum bu ay ve 7segment display kullanıp hc595 ve spi ile sürmeyi planlıyorum. Umarım tamamlarım.
Artık proteus kullanmadığım için şemayı açamıyorum ama sorun değil.
Verdiğiniz kod parçası üzerinden gidicem projeyi derinlemesine düşünüp oluşturmak için 18 haziranı bekliyorum.

Teşekkür ederim :)
 
Merhaba, bu çok hızlı sayıcı kontrol edilecek mi? (Şu rakkamda dur veya bu rakkamda eylem yap gibi). Eğer istenilen rakkamda eylem istenirse oldukça kapsamlı bir yazılım ve de donanım gerekir. Ben 2 digit ile bunu PIC' siz yapmıştım. Arzu ederseniz buradan paylaşayım.
 
Merhaba, bu çok hızlı sayıcı kontrol edilecek mi? (Şu rakkamda dur veya bu rakkamda eylem yap gibi). Eğer istenilen rakkamda eylem istenirse oldukça kapsamlı bir yazılım ve de donanım gerekir. Ben 2 digit ile bunu PIC' siz yapmıştım. Arzu ederseniz buradan paylaşayım.

Projenin esası, 8 tane 7 segment display'in bir arduino uno ile sürülmesi. Sayıcının sayma hızı çok önemli değil, 50 Hz şebeke frekansını ölçmesi yeterli. Kronometrenin 10 milisaniye çözünürlükte olması isteniyor, bu birçok kronometrede standart olarak var olan bir özellik.
 
Projenin esası, 8 tane 7 segment display'in bir arduino uno ile sürülmesi. Sayıcının sayma hızı çok önemli değil, 50 Hz şebeke frekansını ölçmesi yeterli. Kronometrenin 10 milisaniye çözünürlükte olması isteniyor, bu birçok kronometrede standart olarak var olan bir özellik.
çeşitli özellikler de düşündüm ama proje biraz ileride şekil alacak ilk düşündüğüm

set edilen zaman
 
çeşitli özellikler de düşündüm ama proje biraz ileride şekil alacak ilk düşündüğüm

set edilen zaman

Valla o arada bana şevk gelebilir ve kaldığı yerden devam edebilirim ona göre :)
 
Valla o arada bana şevk gelebilir ve kaldığı yerden devam edebilirim ona göre :)
abi başlarsan benim yapacağım sürenin 4de1 sürede bitirirsin birazcık avans.

Hem sen SR625 aldın abi en son onunla oyna bu sürede.
Hedef Ege Üniverstesi Mekatronik veya Elektronik önce ilk hedefime ulaşayım sonra ki hedefimde bu cihaz var.
 

Çevrimiçi personel

Forum istatistikleri

Konular
5,659
Mesajlar
97,347
Üyeler
2,438
Son üye
İbrahimSönmez

Son kaynaklar

Son profil mesajları

cemalettin keçeci wrote on HaydarBaris's profile.
barış kardeşim bende bu sene akıllı denizaltı projesine girdim ve sensörleri arastırıyorum tam olarak hangi sensör ve markaları kullandınız yardımcı olabilir misin?
m.white wrote on Altair's profile.
İyi akşamlar.Arabanız ne marka ve sorunu nedir.Ben araba tamircisi değilim ama tamirden anlarım.
* En mühim ve feyizli vazifelerimiz millî eğitim işleridir. Millî eğitim işlerinde mutlaka muzaffer olmak lâzımdır. Bir milletin hakikî kurtuluşu ancak bu suretle olur. (1922)
Kesici/Spindle hızı hesaplamak için SpreadSheet UDF'leri kullanın, hesap makinesi çok eski kalan bir yöntem :)
Dr. Bülent Başaran,
Elektrik ve Elektronik Mühendisi
Yonga Tasarım Özdevinimcisi
Üç güzel "çocuk" babası
Ortahisar/Ürgüp/Konya/Ankara/Pittsburgh/San Francisco/Atlanta/Alaçatı/Taşucu...

Back
Top