Ahmet

S38>S85
Katılım
31 Mayıs 2021
Mesajlar
6,052
Kronometreyi bitirdikten sonra.
Birde frekansmetreyi aynı devreye oluşturayım diye düşündüm zaten Timur abinin dedikleri arasında'da vardı.

Frekans nasıl ölçülür?
Gerilim bölücü'de frekans kayıpları olur mu?
Dijital veya analog pinlerde daha hızlı okuma yapan pinler bulunuyor mu?
 
Frekans nasıl ölçülür?
Nyquist teorem ile işe başlanır. Ölçülecek frekansa göre bir comparator kullanılır ve bu sayede direkt max sınır genlikte kare dalga gönderilir MCUya mecburi değil ama. Hedeflenen Frekans aralığına göre counter entegreleri ile prescale edilebilir ki bir yerden sonra bu mecburi. İlk başta söylediğim teoreme bağlı olarak MCU frekansı ne kadar çoksa o kadar iyi olur. Pico abi burada göz kırpmıyor değil. Girişe clipping diyot konulabilir koruma amaçlı. Ve en önemlisi yine ama hedef frekansa bağlı kristal doğruluğu, sapması, ppm çok önemli. Burda TCXO veya OCXO lar öne çıkıyor TR olamasa da TCXO biraz daha makul. En makulu ne dersen RTC modulü almak çünkü içindeki çipte TCXO var. Ya da kendi OCXO nu da yapabilirsin ki bence çok da eğlenceli olabilir, internette örnekleri var. Bu referans kristali işin en kritik noktası bütün kalite buna bağlı.
 
Nyquist teorem ile işe başlanır. Ölçülecek frekansa göre bir comparator kullanılır ve bu sayede direkt max sınır genlikte kare dalga gönderilir MCUya mecburi değil ama. Hedeflenen Frekans aralığına göre counter entegreleri ile prescale edilebilir ki bir yerden sonra bu mecburi. İlk başta söylediğim teoreme bağlı olarak MCU frekansı ne kadar çoksa o kadar iyi olur. Pico abi burada göz kırpmıyor değil. Girişe clipping diyot konulabilir koruma amaçlı. Ve en önemlisi yine ama hedef frekansa bağlı kristal doğruluğu, sapması, ppm çok önemli. Burda TCXO veya OCXO lar öne çıkıyor TR olamasa da TCXO biraz daha makul. En makulu ne dersen RTC modulü almak çünkü içindeki çipte TCXO var. Ya da kendi OCXO nu da yapabilirsin ki bence çok da eğlenceli olabilir, internette örnekleri var. Bu referans kristali işin en kritik noktası bütün kalite buna bağlı.
Benim gözümdeki tepe frekans 1MHz.

Proje aslında frekansmetre ihtiyacım da yok hali hazırda 40MHz skobum var.

Amacım öğrenmek.
Bunları araştıracapım
 
Hazır arduino kütüphanesi var 8MHz kadar ama sıkıntısı kristal hoş değil. Modifikasyonla onu değiştirebilirsin ya da 1MHz altını sen de biraz uğraşarak yapabilirsin çok sıkıntı değil işlemci hızı muhabbeti de fazlasıyla yeterli. MCU ölçmek istediğin frekansın en az iki katında çalışmalı "Nyquist teorem" ama ne kadar çok olursa daha iyi. Kare dalga olarak dönüşütürüp ölçersen daha rahat ölçer. Skop kesinlikle iyi bir referans kristalli frekansmetreden daha iyi ölçemez anca içinde frekansmetre olan modellerden değilse.
 
Hazır arduino kütüphanesi var 8MHz kadar ama sıkıntısı kristal hoş değil. Modifikasyonla onu değiştirebilirsin ya da 1MHz altını sen de biraz uğraşarak yapabilirsin çok sıkıntı değil işlemci hızı muhabbeti de fazlasıyla yeterli. MCU ölçmek istediğin frekansın en az iki katında çalışmalı "Nyquist teorem" ama ne kadar çok olursa daha iyi. Kare dalga olarak dönüşütürüp ölçersen daha rahat ölçer. Skop kesinlikle iyi bir referans kristalli frekansmetreden daha iyi ölçemez anca içinde frekansmetre olan modellerden değilse.
owon hds242
3ü1 arada hem multimetre hem fonksiyon jeneratörü hem skop.

Zamanında o kadar ucuza denk geldi ki almamak salaklık olacaktı aldım bende memnunum da bir şikayetim yok skopdan.


Hazır kütüphane kullanmak istemiyorum.
Amacım tamamen mantığı kavramak
 
Frekans ölçümünün temel devresi şu. Bir AND gate var, bu gate'in bir girişini 1 saniye süreyle lojik 1 yapıyorsun, gate'in diğer girişinde ise frekansı ölçülecek sinyal var. AND gate çıkışındaki pals sayısını da bir hardware counter ile sayıyorsun. Bütün frekansmetrelerin temel yapısı budur.

Senin bu işi arduino ile yapabilmen için öncelikle Atmega328 de hardware counter'lar var mı, varsa nasıl kullanılıyor, sınırları nelerdir bunları araştırman lazım.

1656531083142.png
 
Araştırmalarıma göre.
Timer/Counter registeri TCNT

TCNT registeri 8Bit bir karşılaştırıcı'dan geçiyor.

En basit TCNT kullanım modu normal moddur.
normal modda her zaman yukarı doğru sayma yapar.
normal modda sayaç temizleme yapılmaz 8Bit değeri geçince taşar ve TOV0 bayrağını set eder.

Kaynak çok az olduğu için datahseet'den gidiyorum mecburen.
 
Peki o counter'i harici bir pinden saydırabiliyor musun? Bu mümkün değilse senin iş yattı demektir.
 
Tamam o zaman, bir tane AND gate ayarladın mı geri kalanını yukarıdaki temel şemaya göre yapabilmen lazım.
 
Tamam o zaman, bir tane AND gate ayarladın mı geri kalanını yukarıdaki temel şemaya göre yapabilmen lazım.
4081 ve 4082 var abi elimde and gate olarak 81 olanı kullanacağım

74 serisi kapılarım hep bağlı devrelerime çalışıyor onları sökmek istemedim
 
aaa bir sorun var ben D portunun tamamını kullandım.
nereye gireceğim frekansı.

Kronometreyi bozup tamamen bir devre mi kurmalıyım
 
Kronometre ayrı bir proje idi. Orada sadece yazılımsal olarak ve minimum donanımla 7 segment multiplex'i ve başka artık ne öğrendiysen öğrendin. Bu projede odak noktası frekans ölçümü, yazılımsal 7 segment multiplex olması şart değil. Hazır bu işi yapan MAX entegre kullan bak işine.
 
Kronometre ayrı bir proje idi. Orada sadece yazılımsal olarak ve minimum donanımla 7 segment multiplex'i ve başka artık ne öğrendiysen öğrendin. Bu projede odak noktası frekans ölçümü, yazılımsal 7 segment multiplex olması şart değil. Hazır bu işi yapan MAX entegre kullan bak işine.
Elimde 4basmak dot matix var max7249 ile kurulmuş hazır bir kart dot matrix ile fazla mı uçmuş olurum.
veya yine 7 seg kullanıp dot matix görüntüsü verebilirim.
 

Ekler

  • IMG_20220630_120118.jpg
    IMG_20220630_120118.jpg
    509.5 KB · Görüntüleme: 74
Abi frekans ölçümü için yükselen kenar mı gözetmeliyim düşen kenar mı?
 
cs.png

Bu tabloya bakarak
C++:
TCCR1B |= (1 << CS10)|(1 << CS11) |(1 << CS12);
Olarak yapılandırıyorum.

Genel setup bloğum bu şekilde.
C++:
  noInterrupts();
  TCCR1A = 0;
  TCCR1B = 0;
  TCNT1 = 0;             
  TCCR1B |= (1 << CS10)|(1 << CS11) |(1 << CS12);
  interrupts();
Serial.begin(115200);
Ama 5 numaraya ne yaparsam yapayım asla kesmeye gimiyor

Kesme bu şekilde
C++:
ISR(TIMER1_COMPA_vect) {
    Serial.println("KESME");
    
}
 
Kesme ile ne işin var? Niye yapılandırıyorsun?
 

Forum istatistikleri

Konular
5,903
Mesajlar
100,777
Üyeler
2,498
Son üye
TaKo

Son kaynaklar

Son profil mesajları

Lyewor_ wrote on taydin's profile.
Merhabalar. Elektrik laboratuvarınız varsa bunun hakkında bir konunuz var mı acaba? Sizin laboratuvarınızı merak ettim de :)
Lyewor_ wrote on taydin's profile.
Merhabalar forumda yeniyim! Bir sorum olacaktı lcr meterler hakkında. Hem bobini ölçen hemde bobin direnci ölçen bir lcr meter var mı acaba?
gruptaki arkadaşlara selamlar. sıteyi bu gün fark ettim. Asansör için 2x7 segment LCD gösterge üretmek istiyorum. acaba bu sayfadaki arkadaşlardan destek alabilirmiyim. LCD nin mantık açılımı ektedir.
deneyci wrote on TA3UIS's profile.
Selam.
Amatör telsiz lisansı nasıl alınıyor?
Lisansı olmayanı forumlarına almıyorlar. :)
Bilgi alamıyoruz.
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.
Back
Top