Merhaba,Bugünkü dersimizde bir dijital potansiyometre uygulaması yapacağız. Dijital Potansiyometreler Girişlerine gelen dijital veriyi alıp direnç bilgisi üretirler. Biz devremizde MCP41010 adlı dijital potansiyometre entegresini kullanacağız.

Bu, microchip firmasının bir ürünü. Ve 256 adımla çalışıyor. 10K,50K ve 100K'lık çıkış veren çeşitleri var. Direnç bizim için bu projemizde o kadar önemli değil. Çünkü biz direnci gerilime bağlayıp potun orta ucundan yani çıkıştan gerilim alacağız.

Potun uçlarına bağlayacağımız gerilim 10V. Orta uçtan ise çıkış alacağız. Yani çıkışımız 0-10V arası gerilim verecek bize. MCP41010 dijital potunun 256 adımda çalıştığını söylemiştik. Öyleyse her bir adımda;

10V/256=0,039V artış çıkışta gözükecek.

Bu Şu demek, devremdeki ARTIR ya da AZALT butonlarına her bastığımda çıkışım 39 mV’luk basamaklar halinde değişecek.

Programı inceleyiniz. Programda fazla bir şey yok, CCS klasöründe MCP41010 için hazır kütüphane bulunduğundan bunun için ayrıca kafa yormadım. Sadece kütüphaneyi programıma include ile dâhil ettim ve fonksiyon ismini çağırdım, bir nevi bir komuta indirgedim.

Programda, TIMER0 ile butonları kontrol ettik. Buton bilgisini oradan alıp çıkışa ARTIR ya da AZALT olarak yansıttık. Ve her bir adımda 0,39V artıp azaldığını görmek için buton bilgisini basıp bırakıldıktan sonra kullandık.

Buyurun Programı inceleyin. Sorunuz olursa yorum kısmına sorunuzu yazınız. Cevaplamaya çalışırım:

 

/******DIJITAL POTANSİYOMETRE*****

**********www.ruzname.Net*********/

#include "main.h"

void setup_pot(void);

#include <mcp41010.c>

#define AZALT 1

#define ARTIR 2

#define BASILMADI 0

int8 buton;

#INT_TIMER0

void TusBilgisi()

{

if(input(pin_c0)) buton=AZALT;

Else if(input(pin_c1)) buton=ARTIR;

Else buton=BASILMADI;

}

/****ANA_PROGRAM******

***********************/

void main()

{

unsigned int cikis=0;

Set_tris_b(0x00);

Set_tris_c(0x03);

Setup_Timer_0(RTCC_DIV_256 | RTCC_INTERNAL);

enable_interrupts(INT_TIMER0);

enable_interrupts(GLOBAL);

buton=BASILMADI;

while(1)

{

if(buton!=BASILMADI)

{

if(buton==AZALT)

if(cikis>0) cikis--;

if(buton==ARTIR)

if(cikis < 255) cikis++;

while(1)

{

if(buton==BASILMADI) break;

}

}

set_pot(cikis);

}

}

 

PROTEUS Simülayon Görüntüsü:

Büyütmek için resmin üstüne tıklayınız.

 

dijital potansiyometre

TAGS: CCS C PIC türkçe ders, dijital potansiyometre, mcp41010 devresi, CCS kullanım, ccs pic c, ccs öğren, ccs türkçe, ccs dersleri.

 

Anahtar Kelimeler: Mikrodenetleyici, digital pot nedir, digital potentiometers, dijital potansiyometre devresi, dijital potansiyometreler

peynir6 suyu tozu , 15/08/2008-16:54 Facebook'ta Paylas