dac

Başlatan behcet.3, 02 Haziran 2012, 12:09:39

behcet.3

pic ten 0-2,5 volt arası voltaj almam gerekiyor.Bu işlemi nasıl gerçekleştirebilirim.(pwm mi , dac0808 tarzı bir entegremi).yardımlarınızı bekliyorum.

ete

3 alternatifin var.
ALternatif-1: Bir HPWM sinyali oluştur. Bunu bir seri 1K direnç ten geçir ve sonrasında 10Mf kondansatörle Gnd ye bağla. Çıkış sana 0-5V arasında bir voltaj verecektir.

Alternatif-2: R+2R mantığı ile bir digitalden analoğa çevirici yap. Dirençlerin birleştiği ortak uç sana yine istediğin voltajı sağlayacaktır. Burada hassas bir şey yapmak istersen en azından 4 bitlik bir R+2R sistemi yapman gerekiyor.

Alternatif-3: Bir Digital den Analog çevirici kullan. DAC 0808.

Ete

behcet.3

DEFINE OSC 4

DEFINE ADC_BITS 10    ' ADCIN   çözünürlük  (Bits)
DEFINE ADC_CLOCK 3    ' ADC clock kaynağı  (Fosc/8)
DEFINE ADC_SAMPLEUS 50 ' ADC örnekleme zamanı (uSec)

DEFINE CCP1_REG   PORTC    'Hpwm 1 pin port
DEFINE CCP1_BIT     2         'Hpwm 1 pin bit
DEFINE CCP2_REG   PORTC    'Hpwm 2 pin port
DEFINE CCP2_BIT     1      'Hpwm 2 pin bit

HAM var word

BASLA:
 
       ADCIN 0,HAM
       HPWM 1,HAM,1000
       GOTO BASLA

Bu şekil yazdım ama çalıştıramadım..

ete

#3
Ham değeri orada kullanabilmek için 8 bit ADC okuman gerekiyor. Çünki Duty parametresi 8 bitliktir. Sen oraya 10 bit değer vermeye çalışıyorsun.
Şayet 10 bit kullanacak isen HAM=HAM / 4 şeklinde bir formülde vermen gerekir.
Ayrıca iki atama işlemi arasına biraz zaman gecikmesi koyman faydalı olur. AKsi halde çok sık değer verme nedeni ile sistem sekteye uğrayabilir.
Ayrıca ADC okuma için bir takım ayarlamalar daha gerekli.
ADC pini giriş olarak ayarlanmalı. ADCON registerlerine değer verilmeli . Gerçi hangi işlemciyi kullanmışsın oda belli değil. ADC parametreleri bazen işlemciye göre değişir.

Ete

Powered by EzPortal