16F1827 DAC ile Oto Teyp Kontrolü ?

Başlatan ademazak, 04 Mayıs 2016, 14:09:40

ademazak

Merhaba Arkadaşlar,
Araçlarda bulunan direksiyon kumandasını teyplere nasıl bağlandığını inceliyorum.http://i.hizliresim.com/A7RX9X.jpg[/img]]
Teybin kontrolü bu sekilde yapılıyor.Bunu dijital olarak yapmak istiyorum.Konuyu araştırdığımda dijital pot entegreleri MCP41XXX veya DS1868 kullandıklarını gördüm.

Ancak ds1868 hem fiyat olarak çok pahalı hemde bulunabilirlik açısndan da zor bir entegre olduğu içinde PIC16F1827  ye yönelmek daha mantıklı geldi.

Aynı işlemleri yeni seri olan PIC16F1827 ' nin de yaptıgını okudum .16f84-16f628-16f877 gibi entegreleri kullandım .yazılım yazdım.Ancak PIC16F1827 entegresinde dijital cıkış kontrolünü nasıl yapabilecegim hakkında bilgiye sahip değilim.

Asıl sorum şu,
Bu entegredeki DAC modülü ds1868 ile aynı işi yapabilir mi ve örnek veriyorum porta.1 bitinden cıkış aldıgımı varsaydığımda bu cıkışı kontrol edecekgim yazılım nasıl olmalı?

yani

porta.1 00001 dedigimde cıkış 0.1 v
porta.1 00010 dedigimde cıkış 0.3 v
porta.1 00011 dedigimde çıkış 0.5 v

gibi degerleri görecegim komut nasıl olmalıdır ?




ete

16F1827 de DAC modül bulunuyor. Yani Digital to Analog çevirici modülü. Bende şimdiye kadar ne inceleim nede kullanıştım.
Data sheet'e şöyle bir baktım. Bu modül toplam 32 kademe (32 farklı) voltaj çıkartabiliyor. Çıkış voltajı referans aldığın voltajlara bağlı olarak değişecek elbette.
Data sheet de evrilen formül şöyle;
Vout=[(Vsrc+  -  Vsrc-) x DACR<4:0>/32]+ Vsrc-
Öncelkle Vsrc voltajı aslında pozitif ref voltajı oluyor. Bunu ister VDD (yani 5V) ya Vref+ bacağından girilen bir voltaj veya Fixed Voltaj Referans modülden alınan ref voltajı olarak kullanabiliyorsun. Bunu ihtiyaca göre kendin DACCON registeri ile yapıyorsun.
Vsrc- ise negatif ref voltajın oluyor ki buda ya VSS yada Ref- girişinden verilen voltaj olarak seçilebiliyor.
Şimdi örnek hesap yaparsak konu daha iyi anlaşılır sanıyorum.
Diyelimki Vsrc+=VDD (+5V) ve Vsrc-=VSS (0V) seçtik.
Şimdi 5 bitlik DACCON1 registerine değer vererek çıkış voltajı oluşturalım.
DACCON1=%00000001  , Vout= [(5-0)* (1/32)]+0=0,15625V çıkacaktır. Bu voltaj DACOUT bacağı olan PORTA.2 den çıkar.
DACCON1=%00000010  , Vout= [(5-0)* (2/32)]+0=0,3125V çıkacaktır.
DACCON1=%00000011  , Vout= [(5-0)* (3/32)]+0=0,45675V çıkacaktır.
DACCON1=%00000100  , Vout= [(5-0)* (4/32)]+0=0,625 V çıkacaktır.
...
Bu şekilde toplam 32 farklı çıkış voltajı elde edilebilmektedir.
Şimdi bu sistemin senin voltajlarını üretebilmesi için ref voltajı kullanmak gerekir sanırım. Ancak unutulmaması gereken asıl önemli husus çıkış voltajı verilen DAC bilgisine bağlı olarak daima bir öncekinin iki katı şeklinde çıkmaktadır. Senin sistemin buna uyması için besleme voltajının 3,2V olması gerekiyor. Böylece VDD=Vrsc+=3,2V olur ise
DACCON1=%00000001  , Vout= [(3,2-0)* (1/32)]+0=0,1V çıkacaktır.
Bu durumda 0,3V almak için DACCON1 registerine 3 vermen gerekir
DACCON1=%00000011  , Vout= [(3,2-0)* (3/32)]+0=0,3V olacaktır.
0,5V almak için DACCON1 registerine 5 vermen yeterli olacaktır.
DACCON1=%00000101  , Vout= [(3,2-0)* (5/32)]+0=0,5V olacaktır.
Bu şekilde sıralı değerler değilde atlamalı değerler vererek (1-3-5-7-9 gibi) istediğin çıkış voltajlarını 3,2V luk besleme voltajı ile alabilirsin. Tabiiki sistemin kusursuz çalışabilmesi için besleme voltajın yada Ref+ girişine vereceğin 3,2V luk voltajın çok stabil sabit bir voltaj olması gerekir.

Bütün her şeyin kontrolü DACCON0 ve DACCON1 registerleri ile yapılmaktadır.

Ete

ademazak

#2
Teşekkür ederim ete hocam.
Kafamda şekillendi konu şimdi.
Bu devre ile kontrol sağlıyabilir miyim sizce?
ds1868 100k lık olanı ile 16bitlik bir parcalama yapmış.Devre sağlıklı olarak calışıyor . 32 kademeli parçalama yeterli gelir mi ?

her durumdada devrede pic yada atmel mikroişlemcisini kullanıcam.moc41xx serisi harici dac mi kullansam yoksa pic in bu yeni dac özelligini mi ? siz ne önerirsiniz ?


ete

DS1868 zaten 8 bitlik iki pot içerir.  İkisini birleştirip 16 bit çalışır ama bu kontrol için gerekli değil bana kalırsa.
Size gerekli olan kaç kontrol var ise (ki sayıları 32 adet den az zaten) ona göre çıkış verdirmek olacak.
Radyo kontrol düzeneği hakkında hiç bilgim yok. Sanki orada bir analog ölçüm yapılıyor ona göre seçim yapılıyor gibi.
Voltaj çıkışıda aynı işi yapar şayet durum öyle ise sonuta bir uçtan voltaj verilip diğer uçtan düşen gerilim ölçülüyor olsa gerek.

Ete

ademazak

dreksiyon kumandası 6 kablosu var 3x3 key pad gibi calışıyor.yani normal anahtar.teyp ise drenc degerine göre okuma yapıyor.yani ccs de pot komutu ile potansiyometrenin degeri okunur ya aynı mantıkla calışıyo inceledigimde.

yani teypte dijital olarak ölç eger ölcülen veri su ise ,su işi yap denmiş.

pwm denemeyi düsündüm.pic in cıkısna bir transistör ve kondansator baglayarak deneyecektim.pwm ile istenilen degere led olsa ulaşırız ama burdaki teypde aynı tuşa bi anda 50 kez basar mı ?


MB_77

#5
bu mesaj tarafımdan silinmiştir.

Powered by EzPortal