1. sayfa
| Dediğiniz devre biraz zor gibi geldi yapılması. Programlamayla yapmak elbette mümkün ve kolay fakat sadece devre ile fazlaca sayısal elektronik bilgisi gerektiriyor diye düşünüyorum. |
| Proje olarak verdiler, pice izin vermiyorlar yoksa kolay olacaktı. Araştırıyorum ama bulamadım halen |
|
Ilginç geldi açıkçası. Bulunca burada da paylaşırsanız bir aydınlansak, fazlasıyla ilgimi çekti. Bu arada sanırım genel olaral mikrodenetleyiciler yasak değil mi? Pic dışındakilerde yani? |
|
Aklıma şöyle bir devre geliyor. Bir tane sayıcı devresi olur. N diye bir sayı girilir misal. 2'den N-1'e kadar belli bir frekansla bu devre sayar. Sistemin ana hızına göre yavaş kalacak ama çok da bekletmeyecek bir frekans uygundur. Sonrasında ise bir mod alıcı devre olsa, bizim girdiğimiz sayının modunu alsa, tüm bitlerini OR kapısından geçirip bize 1 tane bit verse. Eğer sayı sıfır ise bu bit ancak o zaman sıfır olur. Sıfırdan farklı ise o bit 1 olacaktır. Sonra bu bitleri de (ki seri bir şekilde saydırıcı değiştikçe gelecektir) not kapısından geçirerek bir flip flopun SET girişine uygulasak (tabi sistem başlarken reset yapmayı unutmuyoruz) eğer ki bu gelen sinyallerden bir tanesi bile 0 ise not kapısından geçerek 1 olacaktır ve flip flopu set edecektir. Reset kısmına da aktif bir sinyal vermediğimiz için resetlenmeyecektir yani sayılardan 1 tanesinin bölünebilir olması bizim flip flopumuzu set eder. Eğer flip flopumuz hala reset konumunda sıfır çıkış veriyorsa sayı asaldır diye düşünebilir ve ekrana yazdırabiliriz. Aklıma böyle bir dijital tasarım geldi ama denemek lazım tabi. düzenleme: Tabi ki saydırıcı çıkışın N-1' e eşit olup olmadığını kontrol ettirmek için karşılaştırıcı çıkışları kullanılabilir. Karşılaştırıcının çıkışı sıfır iken ise ekrana "hesaplanıyor" yazdırılır. İşlem bitince de sonuç yazdırılır. |
|
@mylord92 Evet, genel olarak yasak. Bugün tekrar konuştum ama ipucu bile alamadım. Bulursam paylaşırım tabiki. @Spyxxx Sağolun hocam, Yeni yeni devrelere aşina olmaya başladığımızdan verdiniz tasarıyı uygulayabilmem zaman alacak. Mod alıcı devreyi hangi isimle aramam gerekli? Arama yaptığımda RF alıcı ile ilgili sonuçlar çıkıyor. |
|
Girdi boyutunuz belirli ise, ki mutlaka bir üst limit vardır, bir fonksiyon tasarlayıp bunu gate array ile ifade edebilirsiniz. Örneğin 4-bit diyelim. O zaman girdi boyutu 4-bit, çıktı boyutu 1-bit olan bir fonksiyon tasarlamanız gerekecek. Bu 1-bitlik çıktı, 0 ise sayı asal değil, 1 ise asal demek olsun. Fonksiyonu aşağıdaki gibi tasarlayabiliriz. Yani tüm girdi değerlerini (x1,x2,x3,x4) ve onlara karşılık gelen çıktı değerini (o1) aşağıdaki gibi belirleyelim.
Şimdi elimizde girdi değerine göre çıktısını bildiğimiz bir fonksiyon var ancak bu işlemsel olarak ifade edebilmeliyiz ki gate array olarak implement edebilelim. Burada Matematik bize güzel şeyler sunuyor. Boolean fonksiyon teorisine göre, gerçeklik tablosunu (truth table) bildiğiniz bir boole fonksiyonunu hesaplamanız mümkündür. Butterfly algoritması denilen yöntem ile bunu hesaplayabiliyorsunuz, aslında FFT'nin varyasyonu. Truth table dediğimiz şey tam olarak çıktı değerlerinin yanyana yazılması. Bu durumda yukarıdaki fonksiyonun gerçeklik tablosu: 0011010100010100. O1 değerleri yani. Buna karşılık gelen fonksiyonda f olsun: f(x1,x2,x3,x4) = x3 + x1.x3 + x2.x3 + x1.x2.x3 + x2.x4 + x1.x3.x4 (Bu değeri butterfly algoritması ile elde ediyoruz.) Buradaki . işlemi AND, + işlemi ise XOR operatörünü ifade ediyor. Diğer operatörleri de kullanarak karnaugh haritası ile bu işlemi daha da sadeleştirebilirsiniz. Geriye sadece elde ettiğiniz nihai fonksiyonu gerçeklemek kalıyor. Bunlarla birlikte biraz Google'da iş görür :) https://www.google.com.tr/search?q=prime+number+detector+circuit http://www.sccs.swarthmore.edu/users/06/adem/engin/e15/lab1/ http://www.ee.calpoly.edu/media/uploads/resources/KarnaughExplorer_1.html |
|
Hocam, teşekkürler uğraşmışsınız baya. Bu yöntem ile sayıyı asallığını kontrol etmiyor ama önceki belirlediğimiz değerlere göre hareket ediyor, doğru mu anladım? Eğer bu şekilde yapacak olursam bu devre işimi görecektir. < Resime gitmek için tıklayın > 3. linkteki hesaplayıcı çok pratik, teşekkürler. Asal sayıya işlem yaptırıp sonucu lcd'ye yazdırmam mümkün mü PIC olmadan? Yoksa 7 segment display mi kullanmam gerek? |
Bölücü devre diye aratırsın veya en kötü mux koyarsın seçici bir devre olur bir tane karşılaştırıcı entegre olur, sürekli ana sayıdan bölen sayıyı çıkartırsın kalan sayı bölenden küçük olduğunda mux yardımıyla diğer kalandan çıkış alırsın falan. İlk olarak fonksiyonel düşünüyordum bu şekilde ancak üstteki arkadaşın mantığı baya iyi. Sonuçta bu devreler de kapılardan oluşuyor o devreler de oluşuyor. Üst limit biti ile doğruluk tablosu yapıp sadeleştirmek de aynı işi görür ki, bilgisayar algoritmaları ile çok hızlı bir şekilde yapılabiliyor. Hem de net sonuç verir frekans ayarı gibi şeyleri düşünmek zorunda kalmazsın. |
| Sanırım o şekilde yapacağım. Verdiğiniz yöntem ile çok daha büyük sayılar daha kolay bulunur ama hazırlaması daha zor. |
|
Girilen 3 bitlik sayıyı yarıya bölmem gerekiyor. Bulamadım, bildiğiniz sayıyı bölebilecek devre var mı? Çarpma entegresini bir şekilde bölme olarak kullanabilir miyim? |
Yarıya bölmek demek 2'ye bölmek demek zaten 2'lik tabanda çalıştığın için 1 basamak kaydırmak demek. İlk 2 basamağını alırsın sayının yazarsın. Eğer son basamağı 1 ise kalan 1 olur eğer 0 ise tam bölünür. |
Hocam 2ye bolup sonucu displaye yazdirmam gerek |
2 ye bölmek için dediğim gibi 100 olan bir sayının 2 ye bölümü 10'dur. 1000 olan bir sayının 2'ye bölümü 100'dür. Yani son biti almayacaksın. İlk 2 bitini alacaksın 3 basamaklı bir sayı için. Son basamağa da bakacaksın eğer 0 ise ekrana ilk 2 biti yazdır ama eğer 1 ise o zaman buçuklu çıkacak ekrana ,5 yazdırırsın. |
Simdi anladim hocam, cok tesekkurler. Cok basitmis aslinda. Kafayi yiyecektim bolucu devre tasarlayacagim diye |
1. sayfa
Aradım ama bulduklarım asal sayıları programlamayla buluyor.
DH forumlarında vakit geçirmekten keyif alıyor gibisin ancak giriş yapmadığını görüyoruz.
Üye Ol Şimdi DeğilÜye olduğunda özel mesaj gönderebilir, beğendiğin konuları favorilerine ekleyip takibe alabilir ve daha önce gezdiğin konulara hızlıca erişebilirsin.