Picle sinüs sinyali üretmek ile ilgili bir projede şu anda çalışmaktayım. Pwm kullanarak sinüs sinyali elde edebiliriz....
diyeceksinizki sinüs sinyali + ve - amplitude sahip bunu pic yapamaz..
ben bunun için H-bridge kullanmayı düşünüyorum...
sistem öyle olmalıkı power loss minumum olmalı biraz beraber kafa yorarsak başarabiliriz ne dersiniz düşüncelerinizi bekliyorum...h-bridge ve diğer gerekli dökümanları yarın koyarım buraya...
ben geçen sene 8051 de sinüs üretmiştim hemde okulda labratuvarda ;D
hatta final sorularından biriydi...
Evet pic ile belli bir frekans aralığında, en fazla 5V genliğinde sinüs üretilebilir. 5V tan başka bir beslememiz yok ise 2.5V refereans gerilim oluşturarak +- 2.5V genliğinde sinüsümüz olabilir. Fakat 0'a göre +-5V genliğinde sinüs üretmek istiyorum derseniz +5V > -5V çevirici kapasitif entegreler mevcut. Bir bu entegreden bir de basit bir opamp kulanarak bu işlemi yapabilirsiz. Aklıma şimdilik bu yöntemler geliyor ::) Yanlız h-bridge ile sıfırın altına inebilme olayını anlayamadım ???
(https://www.teknolojiekibi.com/yeni/proxy.php?request=http%3A%2F%2Fimg230.imageshack.us%2Fimg230%2F8905%2Fpwmf4bnl2.gif&hash=55c743ef1af4ac93d2688ba31736d55a49be0b5a)
arkadaşlar h-bridge de olayı şöyle basitçe düşünelim eğer h-bridge de çapraz iki transistör (Q1 ve Q4)açıksa 0ile 5 v arasında bir sinyal üretirsiniz diğer çapraz iki transistör açık olduğunda(Q2 veQ3) -5v ile 0v arasında sinyal üretirsiniz...
olay aslında fourier series de bitiyor eğer fourier serie kullanarak hesaplamayı yaparsak bu iş oldu...
ama bu o kadar kolay değil çünkü bu bir pwm sinyal ve içinde 1 zaman değişkeni(t) içermiyor bir çok t var...olay burda sarpa sarıyor olayı grafik olarak çizersem size, painte cizdim çok kötü oldu ama anlamanız açısından bir ipucu olur size(https://www.teknolojiekibi.com/yeni/proxy.php?request=http%3A%2F%2Fimg230.imageshack.us%2Fimg230%2F6743%2Fadszmb9.png&hash=7a193c2982a69a1cbb87f2bd466125daa36a4a95)
Merhaba
GND'ye karşı eksi (-) geriliminiz varsa işiniz aslında çok rahat. Benim aklıma şöyle bir yöntem geldi:
(https://www.teknolojiekibi.com/yeni/proxy.php?request=http%3A%2F%2Fimg216.imageshack.us%2Fimg216%2F6849%2Fsinusbf6.png&hash=84f6de8240e758281dd28448163f0909eeb86c75)
Bu şekilde çizdiğiniz gibi GND ye göre ilk pozitif sinyalimizi elde ettik. Bundan sonra aynı şekilde bir PWM daha veriyoruz ve ikinci PWM sinyalimizde çıkışı tersini alan opampımızın çıkışını veriyoruz. Yani şekildeki gibi:
(https://www.teknolojiekibi.com/yeni/proxy.php?request=http%3A%2F%2Fimg525.imageshack.us%2Fimg525%2F8479%2Fdevrejs9.jpg&hash=364b83660040c0e201d8e45bcd2e6f616a6dcafd)
İlk pwm sırsında C'yi aktif yaptık ve çıkışta GND'ye karşı pozitif bir sinyali elde ettik. İkinci PWM sinyalimizde de 'C (C değil) 'yi aktif yapıyoruz ve çıkışta bu kez terslenmiş sinyalimizi alıyoruz. Bu şekilde İki PWM döngüsünde C kontrol uçlarını kontrol ederek bir sinüs sinyali elde etmiş oluyoruz. (Şekilde gösterilen analog switc (CD4066))
el bombacı güzel cevap her iki şekildede olur sizin dedğiniz gibi hem de h-bridge ile...
ama proje aşamasında şöyle bir sorun çıktı daha danışma fırsatım olmadı ama sizinle paylaşmak istedim...
pic pwm sinyalini 4MHZ kristal osilatör kullandığımızda her bir saykıl 5mS 20 MHZ kullandığımızda 1ms uzunluğunda oluyormuş...
bizim amaçımız aslında şimdiye kadar picle yapılmamış bir proje yapmaktı ama bu saykıl uzunluğu işi bozuyor...
çünkü do notası 261 Hz ve ben bu pwm i kullanarak sinüse yakın birşey elde etmem do notası için nerdeyse imkansız oluyo...
siz ne dersiniz...
böylece bir hayal daha tarihe gömülmüş oldu ???
Daha önceden PWM modülü ile çalışmadığımdan zamanlamaları bilmiyorum. Eğer dediğiniz gibiyse 1mS baya uzun... 18F serileri 40MHz frekansında çalışabiiyorlar fakat biraz daha ince seslerde yine sorun olacaktır... Fakat kendimiz PWM modülünü kullanmadan bir algoritma yazsak sanki 1ms den daha kısa süreli saykıllardan oluşan PWM elde edebilirmişiz gibime geliyor... Bu konuyu biraz düşünücem aklıma birşey gelirse yazarım. Saygılar.
çözüm kolay CCP yi kullanacaz timer2 ile beraber çalışıyor...
pic 18 kullanıyoruz hesaplamaları yaptık size daha detaylı hesaplamaları ve CCP konusunda daha fazla bilgiyi bira öğrendikten sonra vereceğim...
projende sinüs üretmek için PWM kullanman gereklimi ? öyle değilse DAC (Digital Analog Converter) kullanarakta sinüs dalga üretebilirsin. sinüs için DAC çözünürlüğü yüksek olanlardan kullanmalısın.
bu işin olumsuz yönü ise yüksek hızlı olmuyor düşük frekanslar daha iyi elde ediliyor. çözünürlük arttıkca hız düşüyor kalite artıyor. ayrıca DAC çıkışınıda filitrelemelisin. PWM yönteminde tek pin kullanırken DAC da ise 8 veya 16 pin kullanman gerekecek.
bu yöntem sana uygunsa ayrıntılarda yardımcı oluruz.
kolay gelsin...
Merhaba Arkadaşlar;
20 MHz kristal kullanılarak HPWM modunda yapabilirsiniz.Burda en küçük darbeleriniz 3 mikrosaniye olacaktır baya işe yarar.Kolaygelsin.
S.A.
işlemci ile sinüs üretme konusu ile alakalı şema varmıdır acaba? elinde olan varsa paylaşım bekliyorum.
A.s.
Farklı teknikler kullanılarak üretilebilir. Siz ne amalı kullanacaksınız? Ona göre birşeyler bakalım. Saygılar.
Merhaba...Ben pic ile math.h kütüpanesi kullanarak 40khz sin üreteceğim.Yani for dögüsü ile t ye değerler verip örnekler alarak bir sin dizisi üretip b portuna aktarıp çıkışına 8-bitik bir dac bağlayıp dac çıkışında sinyal almalıyım.Ancak sinüsü digital olarak nasıl oluşturabilirim b portuna göndermek ve d/a dönüşüm yapmak için.Ayrıca aynı anda pozitif ve negatif gerilim verebilen bir dac var mıdır?(hem pozitif hem negatif alternans oluşturmak için) veya nasıl böyle bir sayısal analog dönüştürücü yapılabilir. Ben sistemin nasıl çalıştığını görmek için sadece pozitif alternans oluşturacağım yani dac0808 kullanacağım.
Yardımlarınızı bekliyorum...
Teşekkür ederim.
Merhaba
Bu yöntemi anlatırken kullanacağınız denetleyicinin hızının yeterli olduğunu varsayacağım.
40KHz'in bir peryodu 25uS (mikro saniye) yapar.
İlk etapta işiniz 0'dan 360 dereceye kadar bir dizi oluşturmaktır. 25uS'lik bir sürede yapabileceğiniz okuma ve porta gönderme sayınız minimum dizi elemanı sayınızı belirler. Bildiğiniz üzere dizide -1 ile +1 arasında sayılar oluşacaktır fakat siz bu diziyi oluştururken bu sayılara 1 ekleyerek 0 ile 2 arasında değişen bir sinüs değerleri elde edin. Daha sonra bu sayıları 128 ile çarpın. (8bit) En son elde ettiğiniz dizi artık 0 ile 255 arasında değişen bir sinüs dizisidir. Matematiksel ifadesi 128x(SinA+1) şeklindedir. Excel programında bu diziyi oluşturabilirsiniz.
Oluşturduğunuz bu diziyi denetleyicinizin program memorysinde saklayabilirsiniz. 40KHz için bu diziyi 0. elemanından son elemanına kadar 25us'lik bir sürede baştan sona denetleyicinin portunda gösterin.
Kullancağınız DAC'in girişleri tabii ki bu porta bağlı olmalıdır. Portta 25uS'de 0 ile 255 arasında değişen bilgiler olduğundan DAC çıkışında sinüs formunda bir sinyal göreceksiniz. Tabii ki bu sinyal SinA+1 işleminden dolayı 2.5V DC bileşen ile görülecektir.
Anlatamadığım ya da yanlış anlattığım yerler varsa arkadaşlar da yardımcı olacaklardır. Saygılar.
paylaşım için saol iyi çalışmalar.