MCP4013 Dijital Pot

KDV Dahil: $19,90
Marka:  Uzun Sistem
Ürün Kodu:  U0900
Stok Durumu:  1
1 yorum  (1 yorum)   |   Yorum Yap

MCP4013 


Application note1

Application note2

Datasheet


/*

===============================================================================
 Name        : main.c
 Author      : UZUN System
 Version     :
 Copyright   : US(2014-2015)
 Description : Understanding Digital Pot(mcp4013 with lpc1343 Dev Kit)
===============================================================================
*/

#ifdef __USE_CMSIS
#include "LPC13xx.h"
#endif

#include <cr_section_macros.h>

#include <stdio.h>
#include "gpio.h"
#include "delay.h"
#include "lcd.h"

#define LED_PORT        2
#define LED_PIN            10
#define LED_ON            0
#define LED_OFF            1


#define POT_SEC_PORT    2
#define POT_SEC            2
#define POT_UD_PORT        2
#define POT_UD            1


#define ButonPort        3
#define INC                0
#define ButonPort        3
#define DEC                1

//void POT_AYARLA(unsigned char pot_yonu, unsigned char pot_degeri);
void INC_MCP4013 (void);
void DEC_MCP4013(void);

// TODO: insert other include files here

// TODO: insert other definitions and declarations here
unsigned char pot_bit = 10;


void INC_MCP4013()
{

    GPIOSetValue(POT_SEC_PORT , POT_SEC , 1);
    GPIOSetValue(POT_UD_PORT , POT_UD , 0);
    DelayUS(2);
    GPIOSetValue(POT_SEC_PORT , POT_SEC , 1);
    GPIOSetValue(POT_UD_PORT , POT_UD , 1);
    DelayUS(2);// t luc
    GPIOSetValue(POT_SEC_PORT , POT_SEC , 0);
    GPIOSetValue(POT_UD_PORT , POT_UD , 1);
    DelayUS(10);// t cluf
    GPIOSetValue(POT_SEC_PORT , POT_SEC , 0);
    GPIOSetValue(POT_UD_PORT , POT_UD , 0);
    DelayUS(5);// t lo
    GPIOSetValue(POT_SEC_PORT , POT_SEC , 0);
    GPIOSetValue(POT_UD_PORT , POT_UD , 1);
    DelayUS(12);// t hi
    GPIOSetValue(POT_SEC_PORT , POT_SEC , 0);
    GPIOSetValue(POT_UD_PORT , POT_UD , 0);
    DelayUS(5);// t lo
    GPIOSetValue(POT_SEC_PORT , POT_SEC , 0);
    GPIOSetValue(POT_UD_PORT , POT_UD , 1);
    DelayUS(2);// t luc
    GPIOSetValue(POT_SEC_PORT , POT_SEC , 1);
    GPIOSetValue(POT_UD_PORT , POT_UD , 1);
    DelayUS(10);// t lcuf
    GPIOSetValue(POT_SEC_PORT , POT_SEC , 1);
    GPIOSetValue(POT_UD_PORT , POT_UD , 0);
    DelayUS(1);
    GPIOSetValue(POT_SEC_PORT , POT_SEC , 0);
    GPIOSetValue(POT_UD_PORT , POT_UD , 0);

    pot_bit++;
    DelayMS(500);
}

void DEC_MCP4013(){

    GPIOSetValue(POT_SEC_PORT , POT_SEC , 1);
    GPIOSetValue(POT_UD_PORT , POT_UD , 1);
    DelayUS(2);
    GPIOSetValue(POT_SEC_PORT , POT_SEC , 1);
    GPIOSetValue(POT_UD_PORT , POT_UD , 0);
    DelayUS(2);// t luc
    GPIOSetValue(POT_SEC_PORT , POT_SEC , 0);
    GPIOSetValue(POT_UD_PORT , POT_UD , 0);
    DelayUS(10);// t lcur
    GPIOSetValue(POT_SEC_PORT , POT_SEC , 0);
    GPIOSetValue(POT_UD_PORT , POT_UD , 1);
    DelayUS(5);// t hi
    GPIOSetValue(POT_SEC_PORT , POT_SEC , 0);
    GPIOSetValue(POT_UD_PORT , POT_UD , 0);
    DelayUS(12);// t lo
    GPIOSetValue(POT_SEC_PORT , POT_SEC , 0);
    GPIOSetValue(POT_UD_PORT , POT_UD , 1);
    DelayUS(5);// t s
    GPIOSetValue(POT_SEC_PORT , POT_SEC , 0);
    GPIOSetValue(POT_UD_PORT , POT_UD , 1);
    DelayUS(2);// t luc - ts
    GPIOSetValue(POT_SEC_PORT , POT_SEC , 1);
    GPIOSetValue(POT_UD_PORT , POT_UD , 1);
    DelayUS(10);// t lcuf
    GPIOSetValue(POT_SEC_PORT , POT_SEC , 1);
    GPIOSetValue(POT_UD_PORT , POT_UD , 0);
    DelayUS(1);
    GPIOSetValue(POT_SEC_PORT , POT_SEC , 0);
    GPIOSetValue(POT_UD_PORT , POT_UD , 0);

    pot_bit--;
    DelayMS(500);
}

int main(void) {

    GPIOInit();
    DelayInit();
    LCDInit();

    
    GPIOSetDir(LED_PORT , LED_PIN , 1);            //1 out - 0 in
    GPIOSetDir(ButonPort , INC , 0);
    GPIOSetDir(ButonPort , DEC , 0);
    GPIOSetDir(POT_SEC_PORT , POT_SEC , 1);
    GPIOSetDir(POT_UD_PORT , POT_UD , 1);

    LCDClear();
    DelayMS(5);

    // Force the counter to be placed into memory
    //volatile static int i = 0 ;

    // Enter an infinite loop, just incrementing a counter

    while(1) {

        GPIOSetValue(LED_PORT,LED_PIN,LED_ON);
        DelayMS(50);
        GPIOSetValue(LED_PORT,LED_PIN,LED_OFF);
        DelayMS(50);

        while(GPIOGetValue(ButonPort , INC) == 0)
        {
        INC_MCP4013();
        LCDPutDecByte(pot_bit);
        }

        while(GPIOGetValue(ButonPort , DEC) == 0)
        {
        DEC_MCP4013();
        LCDPutDecByte(pot_bit);
        }

    }
    return 0 ;
}


 

Yorum Yap

Adınız:
Yorumunuz:
Not: HTML'ye dönüştürülmez!

Oylama: Kötü            İyi

Doğrulama kodunu giriniz: