Site icon Ercan Koçlar

MCP4561 Dijital Direnç Kütüphanesi – MikroC

MCP4561-Kapak

MCP4561-Kapak

This post is also available in: English (İngilizce)



MCP4561 Dijital Direnç -POT

 

MCP4561 Hafıza Haritası

Adres İşlevi Hafıza Tipi
00h Uçucu Wiper 0 RAM
01h Bu modelde kullanım dışıdır
02h Kalıcı Wiper 0 EEPROM
03h Bu modelde kullanım dışıdır
04h Uçucu TCON Register RAM
05h Status Register RAM
06h EEPROM Hücresi EEPROM
07h EEPROM Hücresi EEPROM
08h EEPROM Hücresi EEPROM
09h EEPROM Hücresi EEPROM
0Ah EEPROM Hücresi EEPROM
0Bh EEPROM Hücresi EEPROM
0Ch EEPROM Hücresi EEPROM
0Dh EEPROM Hücresi EEPROM
0Eh EEPROM Hücresi EEPROM
0Fh EEPROM Hücresi EEPROM

 

MCP4561 Kontrol Alanları

 

Status Register

Status Register – Hafıza Adresi 05h
1 1 1 1 okuma-0 okuma-x okuma-x
Ayrılmış Alan EEWA WL0 WP
7.bit 6.bit 5.bit 4.bit 3.bit 2.bit 1.bit 0.bit

 

TCON – Terminal Kontrol Register

TCON – Terminal Kontrol Register -Hafıza Adresi 04h
o/y-1 o/y-1 o/y-1 o/y-1 o/y-1
GCEN R0HW R0A R0W R0B
8.bit 7.bit 6.bit 5.bit 4.bit 3.bit 2.bit 1.bit 0.bit

 

MCP4561 Çalışma Protokolleri

 

MCP4561 Adres Sistemi

MCP4561 Adres Şeması

 

MCP4561 Genel Komut Gönderim Sistemi

Genel Komutlar
7 bit Komut İşlev
100000D Wiper alanına veri yazar – Geçici Bellek Genişletilmiş komut
110000D TCON alanına veri yazar – Geçici Bellek Genişletilmiş komut
1000010 Wiper Değerini Arttırır Genel komut
1000100 Wiper Değerini Azaltır Genel komut

 

Genel Komut Sistemi

MCP4561 Genel Komut Şeması

 

Genişletilmiş Genel Komut Sistemi

MCP4561 Genişletilmiş Genel Komut Şeması

 

MCP4561 İşlem Komutları

İşlem Komutları
Komut (binary) İşlev
00 Veri Yazma
01 Wiper Arttırma
10 Wiper Azaltma
11 Veri Okuma

 

MCP4561 Veri Yazma İşlemi

MCP4561 Veri Yazma Şeması

 

MCP4561 Veri Okuma İşlemi

MCP4561 Veri Okuma Şeması

 

MCP4561 Wiper Arttırma İşlemi

MCP4561 Wiper Arttırma Şeması

 

MCP4561 Wiper Azaltma İşlemi

MCP4561 Wiper Azaltma Şeması

 

MCP4561 Pin İşlevleri

MCP4561 Pinler

 

Pin İsim İşlev
1 A0  I2C Adresleme Pini
2 SCL I2C Clock Pini
3 SDA I2C Data Pini
4 Vss GND
5 P0A Ayarlı Direnç 1. Bacak
6 P0W Ayarlı Direnç Ayar Pini- WIPER
7 P0B Ayarlı Direnç 2. Bacak
8 Vdd Besleme  +1,8V / +5V

 

MCP4561 Dijital Trimpot Devresi

MCP4561 Devre Şeması

MCP4561 Devre Şeması

 

Gerekli Malzemeler

  1. MCP4561
  2. 100nf kondansatör
  3. 20 k direnç – 2 adet
  4. Deneme devreleri için DIP çevirici

 

Devrenin Yapılışı

MCP4561 Devre Görünümü
MCP4561 Devre Görünümü 2
DIP Çevirici

 

MCP4561 MikroC Kütüphanesi

Fonksiyonlar

Genel Komut Fonksiyonları

 

MCP4561_GENEL_KOMUTLAR Fonksiyonu

Fonksiyon : unsigned char MCP4561_GENEL_KOMUTLAR(unsigned char KOMUT)

Amacı : Genel komutları işletir. I2C hattındaki MCP4561 lerde WIPER artttırma ve azaltma yapar

Parametreler :

Kullanım Şekli :

MCP4561_GENEL_KOMUTLAR(WIPER_ARTTIR);

Geri Bildirim :

 

MCP4561_GENISLETILMIS_GENEL_KOMUTLAR Fonksiyonu

Fonksiyon : unsigned char MCP4561_GENISLETILMIS_GENEL_KOMUTLAR(unsigned char KOMUT,unsigned char VERI)

Amacı : Genel komutları işletir. I2C hattındaki MCP4561 lerin TCON alanına ve WIPER değerini geçici bölgesine yazmaya yarar

Parametreler :

Kullanım Şekli :

MCP4561_GENISLETILMIS_GENEL_KOMUTLAR(TCON_REGISTER_DEGERI,0b11001100)

Geri Bildirim :

 

İşlem Fonksiyonları

 

MCP4561_VERI_OKUMA Fonksiyonu

Fonksiyon : unsigned int MCP4561_VERI_OKUMA(unsigned char MCP4561_ADRESI,unsigned char RAM_ADRESI)

Amacı : Belirtilen hafıza alanında veri okur

Parametreler :

Kullanım Şekli :

MCP4561_VERI_OKUMA(0,5);

Geri Bildirim :

 

MCP4561_DIRENC_DEGERI_OKU Fonksiyonu

Fonksiyon : unsigned int MCP4561_DIRENC_DEGERI_OKU(unsigned char MCP4561_ADRESI,unsigned char RAM_ADRESI)

Amacı : Belirtilen wiper noktalarından direk olarak direnç değeri okur

Parametreler :

Kullanım Şekli :

MCP4561_DIRENC_DEGERI_OKU(0,5);

Geri Bildirim :

 

MCP4561_STATUS_OKUMA Fonksiyonu

Fonksiyon : unsigned char MCP4561_STATUS_OKUMA(unsigned char MCP4561_ADRESI)

Amacı : Status registerini okur

Parametreler :

Kullanım Şekli :

MCP4561_STATUS_OKUMA(0);

Geri Bildirim :

 

– MCP4561_VERI_YAZMA Fonksiyonu

Fonksiyon : unsigned char MCP4561_VERI_YAZMA(unsigned char MCP4561_ADRESI,unsigned char RAM_ADRESI,unsigned int VERI)

Amacı : Seçilen hafıza adresine veri yazar

Parametreler :

Kullanım Şekli :

 MCP4561_VERI_YAZMA(0,5,125);

Geri Bildirim :

 

– MCP4561_DIRENC_DEGERI_YAZ_GECICI Fonksiyonu

Fonksiyon : void MCP4561_DIRENC_DEGERI_YAZ_GECICI(unsigned char MCP4561_ADRESI,unsigned int DIRENC_DEGERI_OHM)

Amacı : Girilen direnç değerini ( ohm olarak ) geçici direnç bölgesi yazar

Parametreler :

Kullanım Şekli :

unsigned char MCP4561_DIRENC_DEGERI_YAZ_GECICI(0,39);

Geri Bildirim : Geri bildirim yapmaz

 

– MCP4561_DIRENC_DEGERI_YAZ_KALICI Fonksiyonu

Fonksiyon : void MCP4561_DIRENC_DEGERI_YAZ_KALICI(unsigned char MCP4561_ADRESI,unsigned int DIRENC_DEGERI_OHM)

Amacı : Girilen direnç değerini ( ohm olarak ) kalıcı direnç bölgesi yazar

Parametreler :

Kullanım Şekli :

unsigned char MCP4561_DIRENC_DEGERI_YAZ_KALICI(0,39);

Geri Bildirim : Geri bildirim yapmaz

 

WIPER Fonksiyonları

 

– MCP4561_WIPER_BASLANGIC Fonksiyonu

Fonksiyon : unsigned char MCP4561_WIPER_BASLANGIC(unsigned char MCP4561_ADRESI)

Amacı : Wiper ayarı yapmak için ilk olarak bu fonksiyon çağırılır

Parametreler :

Kullanım Şekli :

MCP4561_WIPER_BASLANGIC(0);

Geri Bildirim :

 

–  MCP4561_WIPER_ARTTIRMA Fonksiyonu

Fonksiyon : unsigned char MCP4561_WIPER_ARTTIRMA()

Amacı : Wiper ı bir kademe arttırır

Parametreler : Bulunmuyor

Kullanım Şekli :

MCP4561_WIPER_ARTTIRMA();

Geri Bildirim :

 

–  MCP4561_WIPER_AZALTMA Fonksiyonu

Fonksiyon : unsigned char MCP4561_WIPER_AZALTMA()

Amacı : Wiper ı bir kademe azaltır

Parametreler : Bulunmuyor

Kullanım Şekli :

MCP4561_WIPER_AZALTMA();

Geri Bildirim :

 

– MCP4561_WIPER_SONLANDIR Fonksiyonu

Fonksiyon : void MCP4561_WIPER_SONLANDIR()

Amacı : Wiper ayar işlemini sonlandırır

Parametreler : Bulunmuyor

Kullanım Şekli :

MCP4561_WIPER_SONLANDIR();

Geri Bildirim : Geri bildirimde bulunmaz

 

Fonksiyonların Uygulanması

//I2C protokolü için pin ayarlamaları
 sbit I2C_SDA at RB6_bit;
 sbit I2C_SCL at RB7_bit;

 sbit I2C_SDA_VERI at LATB6_bit;//27.01.2019 güncellemesi ile eklendi

 sbit I2C_SDA_Direction at TRISB6_bit;
 sbit I2C_SCL_Direction at TRISB7_bit;
 
void  main()
{

    unsigned int deger=0;
    CMCON=7;

    MCP4561_DIRENC_DEGERI_YAZ_KALICI(0,5000);//5000 ohm yani 5k
    
    deger=MCP4561_DIRENC_DEGERI_OKU(0,2);
     
    MCP4561_DIRENC_DEGERI_YAZ_GECICI(0,deger);
    

}
MCP4561  5k direnç ayarlandı
//I2C protokolü için pin ayarlamaları
 sbit I2C_SDA at RB6_bit;
 sbit I2C_SCL at RB7_bit;

 sbit I2C_SDA_VERI at LATB6_bit;//27.01.2019 güncellemesi ile eklendi

 sbit I2C_SDA_Direction at TRISB6_bit;
 sbit I2C_SCL_Direction at TRISB7_bit;
 
void  main()
{

    unsigned int deger=0;
    CMCON=7;

    MCP4561_DIRENC_DEGERI_YAZ_KALICI(0,5000);
    
    deger=MCP4561_DIRENC_DEGERI_OKU(0,2);
     
    MCP4561_DIRENC_DEGERI_YAZ_GECICI(0,deger);
    
    
    MCP4561_WIPER_BASLANGIC(0);
    MCP4561_WIPER_ARTTIRMA();
    MCP4561_WIPER_ARTTIRMA();
    MCP4561_WIPER_SONLANDIR();
    
    
    deger=MCP4561_DIRENC_DEGERI_OKU(0,0);
    MCP4561_DIRENC_DEGERI_YAZ_KALICI(0,deger);
    

}
MCP4561  wiper 2 Kademe arttırıldı.

Çalışma Videosu


Sonuç


Kütüphane Dosyaları

 


Yararlanılan Kaynaklar


 

This post is also available in: English (İngilizce)

Exit mobile version