Siren sesi üreten devre

Yarım saniye 500mS ( Mikro Saniye ) Eder. Fakat Burada donanımdan farklı başka bir şey giriyor işin İçine Bu Sinyali üretecek Algoritma lazım. Yani yarım saniye 900Hz yarım saniye 600hz . ve ayrıca bunuda sinüs olarak üretecek. 877A bu işte zorlanabilir gibi. Hatta yetersiz kalabilir cünkü kısıtlı bir zamanda ciddi bir iş yükü oluşuyor. Bundan sonrası artık size kalmış. Burada aslında cabucak deneme arge yapıp bakmak lazım. eğer yetersiz geliyorsa hemen yüksek hıza sahip başka bir Pice geçilmeli diye düşünüyorum.

500mS de 900 hz üretmek demek saniyede 1.8Khz demektir. ee bunuda dk ya vurursan 1.8khz*60=108 khz Şimdi 900hz vermemin sebebi 2 frekansta en yüksek olan bu şimdi. bakalım pic 108khz frekansı cıkartabilirmi. Evet bakıyoruz % lik hatayı göz önüne alırsak cıkartabiliyormuş.

Ama hemen tamamdır dememek lazım. bu hata teorik pratikte farklı sorunları beraberinde getirebilir. Ayrıca bu sadece kesme yapmayacak Sinüs periyodunu bu zamanda üretmeye calışacak bunuda göz önüne alırsak frekans düşecektir.

Frekansı ayarlamak kolay timer kesmesine bir counter kurularak frekans ayarlanabilir. mesela



C:
if(counter > 900 && Frekans = 0)
{
    counter=0; // counteri sıfırla
    Frekans=1;
    // 900 hz olduğuna göre şimdi 600 hz üretilecek
    // burayada timer donanımının yarım saniyede 600 hz üretebilmesi için gereken
   // preload gibi değerleri girip timeri yeniden yapılandırıp calıştıracak kodu yazmak lazım.
}

else if (counter > 600 && Frekans = 1)
{
    counter=0;
    Frekans=0;
     // Buurayada tekrardan 900 hz üretebilmesi için gereken yapılandırmayı yazmamız lazım.
    // aynı üstte acıkladığım gibi.  Frekans değişkeni oluşturmamızın sebebi Hangi
    // frekansı üreteceğini anlatmak için. yoksa habire 900 hz üretip durur. yarım saniyede.
}

Ama dediğim gibi şunları göz önüne almak lazım.

- Frekansı değiştirken yapacağı işler için harcıyağı cycle
-sinüs periyodunu üretebilmek için harcıyağı zaman
-Reload gibi zaman kayıpları

Bunları göz önüne alınca calculatorun cıkardığı % lik hata pratikte cok fazla yükselecektir.
 

Ekler

  • Screenshot_3.png
    Screenshot_3.png
    276 KB · Görüntüleme: 287
Programları bulamasam bile ekran görüntüsünü aldığınız örnekten hangi pıc bölümlerinin programlanması gerektiğini, timer bölümü ile ilgili dökümanlarda nerelere bakacağımızı görmüş olduk.Bir soru sormak istiyorum kesme yerine programın kendi içinde peş peşe örnekleri dac'a yazsak olmaz mı?

Olmaz. Sizin dediğiniz sonsuz döngü içinde devamlı sinüs üretir. ama siz farklı frekanslarda sinüs üretmek istiyorsunuz. bunun için Timer birimi kesinlikle şart.
 
Yerli üretim olduğunu bilmiyordum :)



Aslında çok önemli bir konuya değindin. Benim de hep forumlarda dikkatimi çeken birşeydir. Adam mesela bir tane LCD bulmuş, bunu MCU'dan kontrol etmek istiyor, hemen bir kütüphane arıyor. Veya bir sensör kullanacak, onun kütüphanesini arıyor. Veya başka standart bir iş yapacak, hemen kütüphane.

Datasheet'ten bakarak ve hiçbir kütüphaneye bağımlı olmadan direkt C kodu olarak program yazmayı öğrenmek lazım. Bunu öğrendikten sonra ancak vakit kazanmak için kütüphane kullanılabilir.

Ama benim yaygın olarak gördüğüm, kimse işi senin dediğin gibi register seviyesinde öğrenmiyor. Herkes ya kütüphane arıyor, yada bazı IDE'lerde bir tek satır C kodu yazmadan "sürükle bırak" program hazırlıyorsun. GPIO'lar GUI'de ayarlıyorsun falan. Bu çok yanlış. O firmanın ürününü bırakıp başka bir firmaya geçiş yapınca orada öğrendiğin bilgiler tamamen çöp oluyor.

Aynen abi. Mesela ben ST firmasının NUCLEO geliştirme kartını aldım. pic ile bire bir değil. mesela orda cevre birimler aynı frekansta calışmayabiliyor ayarlayabiliyorsun ilk bakışta karman corman gelsede kısa zamanda toparladım. ve donanım yapısını bir nevi anladım. bir nevi diyorum çünkü oturup doğru düzgün bir şey yapmadım.

Kısa vade de anlamamın sebebi picin donanımlarıyla uğraşmam. uğraşırken öğrendiğim yabancı teknik terimler. mesela ben ingilizce bilmiyorum. ama datasheete bakınca ne anlatmaya calıştığını 3 aşşağı 5 yukarı anlayabiliyorum. ama bu bazen yetersiz geliyor neden mi sorun şurda biz türkçe kaynağı olan yabancı terimleri donanımları ilk türkçe öğreniyoruz daha sonrasında o ingilizce terimi görünce tak hemen türkçe bilgiler geliyor.

Ama ya hiç duymadığın bir terim veya donanım olursa ? ve bu donanımı acıklayan bir yazı varsa ve sende ingilizce yoksa ne olcak türkçe kaynağıda yok. işte translate falan giriyor devreye ama bizim teknik alemde bazı şeyllerin anlamları cok farklı olabiliyor o yüzden ingilizce lazım hiç olmazsa okuduğumuzu anlamak için.


Ayrıca Mikro denetleyici donanımı değil. daha bir çok donanımı da öğrenmek lazım. Programlanabilir bir entegreye Modül yazacağım diyelim. Onun datasheetini incelediğimm de bir şey anlayamassam modülü de yazamam. yani C yi öğrendik gömülü sistemleri de öğrendik ama işte iş bitmiyor.

Modül yazacak isek zaten register seviyesinde yazabilmemiz lazım. Tabi bunlar bir anda olmuyor. cok fazla emek tecrübe gerektiyor. sadece gömülü sistemler alanında değil cok farklı alanlarda bilgi lazım ( elektroniğin farklı dallarından ). Mesela başımdan gecen bir olayı anlatayım.


Yotubede RC ucakları izlerim devamlı. bir gün herifin FPV ekranında baktımm değerler yazıyor. ucak sağa sola yatarken bir parametre habire değişiyor. acayip hoşuma gitti araştırdım Meğerse buna ON SCREEN DİSPLAY diyiliyormuş. analog görüntü üzerine analog görünttü işliyor. Başladım araştırmaya nasıl yaparım ederim diye. İlkten hiç bir şey anlamadım. çünkü bir video sinyali oluşturmak gerekiyor. ve gelenn sinyal ilel senkron olması lazım. dedim bu işi başka türlü nasıl yapabilirim.

Bu seferde Tek renk olan. max7456 entegresini buldum. datashettini actım iletişim protokolüne baktım. ama bu seferde geldik takıldık. bilmediğimiz terimlere , içinde donanımlar var. video ile ilgili bir bilgim yok. Sonra bu terimleri araştırmaya başladım. Arduino için yazılmış kütüphaneleri inceledim. Sonra tamam şimdi alıp denemeler yapayıım dedim. aliexpress den 2 adet max7456 siparişi verdim. 1.5 dolar olması lazım tanesi. işte bunlar geldi. örnek şemaya bakarak ve internetten diğer şemaları inceleyerek. ayrietten pin açıklamalarını okuyarakk devreyi cizdim bastım. lehimledim. işte o şahane zaman geldi :D ilk gerilimi vermeden önce defalarca kısa devre ve iletkenlik kontrolü yaptım. baktım sorun yok ama yinende ne olur ne olmaz diye güç kaynağından akımı mili amperler ile kısıtladım. Gerilimi verince entegre ısındı. demek bunda kısa devre var bunun üstüne defalarca kısa devre kontrolü hem çizimden hem devre üstünde acaba besleme yanlış mı verdim. diye aramadığım yer kalmadı.

Daha sonra dedim. akımı yükselteyim bari bakalım nereler gümleyecek. ( nasıl olsa 2. entegre var ) entegre ateş gibi oldu. entegreyi söktüm. yolları mercekle takip ettim. bir sorun yok. 2 entegreyi takacağım ama diyorum ki acaba bu 1. entegre neden böyle oldu. neyse 2. entegreyi taktım bu arada canım acayip sıkkın. bu seferde 2. entegre hiç bir yanıt vermiyor. normalde kullanan birinden edindiğim bilgiye göre default ayarında girişten gelen video sinyalini direk cıkışa veriyoormuş bunda öyle bir durumda yok. hadi ben programda yanlışlık yaptım diyip arduino ile hazır kütüphane denedim onda da calışmıyor.

Sonra max7456 1.5 dolara satılmıyormuş daha paphalı olduğunu anladım. satıcıya senin bu ürünler sahtemi dedim. hayır hepsi kontrol edilip gönderiliyor dedi. dedim ama bak böyle böyle oldu. dedim madem kısa devre var. neden 2. entegre gümlemedi. bu sefer cevap vermedi. belki cidden sahte ürün satıyor veya dedi bu amatör bunla uğraşamam. ama coğu kişi 1.5 dolara satmazlar o entegreyi sahtedir dediler.


İşte bunu niye anlattım. Bunu da şunun için anlatıyorum mazleme alacağınız zaman. böyle çin uyduruğu şeyler almayın. daha sonra kendinizden şüphe ediyorsunuz. kaldı ki zamanınız gidiyor. boş yere havaya paranız gidiyor. en önemlisi nerdeyse mesleğe küsecek kadar canınızı sıkıyor.

Daha bilindik orjinal enntegre satan yerlerden veya firmalardan sipariş verin.
 
O entegre büyük ihtimalle içi boştur :) Bu çinlilerde iş etiği diye birşey olmadığı için, o eleman gitmiştir kılıf üreten firmaya, bana x bacaklı bir DIP entegre yap, üstüne de MAX7456 yaz demiştir. Veya 74LS00 entegre üreten bir firma ile anlaşır, "içi 74LS00 olsun, üzerine de bir zahmet MAX7456 yazıver güzel kardeşim" diye. Sen de kafayı yersin bu niye çalışmıyor diye.
 

Ekler

  • FOTO1.jpeg
    FOTO1.jpeg
    120.2 KB · Görüntüleme: 260
  • FOTO2.jpeg
    FOTO2.jpeg
    150.9 KB · Görüntüleme: 280
  • foto3.jpeg
    foto3.jpeg
    168 KB · Görüntüleme: 249
Sinus sinyali MCU'yu oldukça yoracaktır.

Pwm DAC metodu da kullanılabilirmiş.

20khz üstü bir frekansta sinus datalarını duty cycle olarak timer'a yüklüyorsunuz. Sonrası alçak geçiren filtre..
 
Sinus sinyali MCU'yu oldukça yoracaktır.

Pwm DAC metodu da kullanılabilirmiş.

20khz üstü bir frekansta sinus datalarını duty cycle olarak timer'a yüklüyorsunuz. Sonrası alçak geçiren filtre..

Evet mantıklı. Üst seviyede kalite gerekmediğinde DAC maliyetinden kurtulmuş olunuyor. Ama bu daha ileri seviyede bilgi ve tecrübe gerektiren bir uygulama şekli. Ben olsam bu öğrencilerin hocasının yerine, aynı projeji dediğin gibi PWM bazlı olarak tekrar yapmalarını isterdim :)
 
Bu 16F877A dan bir tane aldım direnc.net ten. Bir de EMX1 geliyor, bu PWM bazlı uygulamayı yapalım, foruma da iyi bir kaynak olur.
 
Sinus sinyali MCU'yu oldukça yoracaktır.

Pwm DAC metodu da kullanılabilirmiş.

20khz üstü bir frekansta sinus datalarını duty cycle olarak timer'a yüklüyorsunuz. Sonrası alçak geçiren filtre..

pwm konusu derslerde anlatılmıştı belki de hoca o metotla yapmamızı istemiş olabilir çünkü sadece pic kullanarak yapın demişti. Harici dac ile yaptık ama pwm olayını da araştıracağım. Öneri için teşekür ederim.
 
pwm konusu derslerde anlatılmıştı belki de hoca o metotla yapmamızı istemiş olabilir çünkü sadece pic kullanarak yapın demişti. Harici dac ile yaptık ama pwm olayını da araştıracağım. Öneri için teşekür ederim.

Sadece pic ile veya mikrodenetleyici ile yapin demesinin sebebi dijital bir tasarim yapmanizi istemesidir. Yoksa analog bir devre ile de bir siren yapabilirsiniz. Ayrica sizin kullandiginiz dac bir cevre birim elemani olsada siz aslinda pice yeni bir donanim kazandirdiniz. Ha boyle yapmissiniz ha dac donanimi olan bir pic kullanmissiniz pek onemli degil. Sonucta sireni uretecek sey pic oluyor burada.
 

Çevrimiçi üyeler

Forum istatistikleri

Konular
5,922
Mesajlar
101,115
Üyeler
2,504
Son üye
yaxe22

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