ULN2003 MODÜL

KDV Dahil: $26,00
Marka:  Uzun Sistem
Ürün Kodu:  U0901
Stok Durumu:  1
0 yorum  (0 yorum)   |   Yorum Yap

ULN2003 Stepper Motor Driver Board is to use the ULN2003 DARLINGTON ARRAYS to drive the 4-phase 5-wire stepper motor (5v-12v). It's easy to use Arduino or other development platform to drive the stepper motor by this diver board.


/*
===============================================================================
 Name        : main.c
 Author      : UZUN Sistem
 Copyright   : www.uzunsystem.com(2014)
 Description : Stepper motor control with lpc1343 Dev. kit
===============================================================================
*/

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

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

// TODO: insert other include files here

// TODO: insert other definitions and declarations here
#define StepIN_PORT         1
#define StepIN1             8
#define StepIN2             9
#define StepIN3             10
#define StepIN4             11

#define ButonPORT         3
#define ButonIleriYarim     0
#define ButonIleriTam     1
#define ButonIleri         2
#define ButonDUR         3

void StepMotorInit();
void StepMotorIleriYarim();
void StepMotorIleriTam();
void StepMotorIleri();
void StepMotorDur();

void StepMotorInit(){
    GPIOSetDir(StepIN_PORT , StepIN1 , 1);
    GPIOSetDir(StepIN_PORT , StepIN2 , 1);
    GPIOSetDir(StepIN_PORT , StepIN3 , 1);
    GPIOSetDir(StepIN_PORT , StepIN4 , 1);

    GPIOSetValue(StepIN_PORT , StepIN1 , 0);
    GPIOSetValue(StepIN_PORT , StepIN2 , 0);
    GPIOSetValue(StepIN_PORT , StepIN3 , 0);
    GPIOSetValue(StepIN_PORT , StepIN4 , 0);
    DelayMS(10);
}

void stepMotorIleriYarim()
{
        GPIOSetValue(StepIN_PORT , StepIN1 , 1);//0001
        GPIOSetValue(StepIN_PORT , StepIN2 , 0);
        GPIOSetValue(StepIN_PORT , StepIN3 , 0);
        GPIOSetValue(StepIN_PORT , StepIN4 , 0);
        DelayMS(1000);
        GPIOSetValue(StepIN_PORT , StepIN1 , 1);//0011
        GPIOSetValue(StepIN_PORT , StepIN2 , 1);
        GPIOSetValue(StepIN_PORT , StepIN3 , 0);
        GPIOSetValue(StepIN_PORT , StepIN4 , 0);
        DelayMS(1000);
        GPIOSetValue(StepIN_PORT , StepIN1 , 0);//0010
        GPIOSetValue(StepIN_PORT , StepIN2 , 1);
        GPIOSetValue(StepIN_PORT , StepIN3 , 0);
        GPIOSetValue(StepIN_PORT , StepIN4 , 0);
        DelayMS(1000);
        GPIOSetValue(StepIN_PORT , StepIN1 , 0);//0110
        GPIOSetValue(StepIN_PORT , StepIN2 , 1);
        GPIOSetValue(StepIN_PORT , StepIN3 , 1);
        GPIOSetValue(StepIN_PORT , StepIN4 , 0);
        DelayMS(1000);
        GPIOSetValue(StepIN_PORT , StepIN1 , 0);//0100
        GPIOSetValue(StepIN_PORT , StepIN2 , 0);
        GPIOSetValue(StepIN_PORT , StepIN3 , 1);
        GPIOSetValue(StepIN_PORT , StepIN4 , 0);
        DelayMS(1000);
        GPIOSetValue(StepIN_PORT , StepIN1 , 0);//1100
        GPIOSetValue(StepIN_PORT , StepIN2 , 0);
        GPIOSetValue(StepIN_PORT , StepIN3 , 1);
        GPIOSetValue(StepIN_PORT , StepIN4 , 1);
        DelayMS(1000);
        GPIOSetValue(StepIN_PORT , StepIN1 , 0);//1000
        GPIOSetValue(StepIN_PORT , StepIN2 , 0);
        GPIOSetValue(StepIN_PORT , StepIN3 , 0);
        GPIOSetValue(StepIN_PORT , StepIN4 , 1);
        DelayMS(1000);
        GPIOSetValue(StepIN_PORT , StepIN1 , 1);//1001
        GPIOSetValue(StepIN_PORT , StepIN2 , 0);
        GPIOSetValue(StepIN_PORT , StepIN3 , 0);
        GPIOSetValue(StepIN_PORT , StepIN4 , 1);
        DelayMS(1000);
}

void StepMotorIleriTam(){
    GPIOSetValue(StepIN_PORT , StepIN1 , 1);//0001
    GPIOSetValue(StepIN_PORT , StepIN2 , 0);
    GPIOSetValue(StepIN_PORT , StepIN3 , 0);
    GPIOSetValue(StepIN_PORT , StepIN4 , 0);
    DelayMS(1200);
    GPIOSetValue(StepIN_PORT , StepIN1 , 0);//0010
    GPIOSetValue(StepIN_PORT , StepIN2 , 1);
    GPIOSetValue(StepIN_PORT , StepIN3 , 0);
    GPIOSetValue(StepIN_PORT , StepIN4 , 0);
    DelayMS(1200);
    GPIOSetValue(StepIN_PORT , StepIN1 , 0);//0100
    GPIOSetValue(StepIN_PORT , StepIN2 , 0);
    GPIOSetValue(StepIN_PORT , StepIN3 , 1);
    GPIOSetValue(StepIN_PORT , StepIN4 , 0);
    DelayMS(1200);
    GPIOSetValue(StepIN_PORT , StepIN1 , 0);//1000
    GPIOSetValue(StepIN_PORT , StepIN2 , 0);
    GPIOSetValue(StepIN_PORT , StepIN3 , 0);
    GPIOSetValue(StepIN_PORT , StepIN4 , 1);
    DelayMS(1200);
}

void StepMotorIleri(){
    GPIOSetValue(StepIN_PORT , StepIN1 , 1);//0011
    GPIOSetValue(StepIN_PORT , StepIN2 , 1);
    GPIOSetValue(StepIN_PORT , StepIN3 , 0);
    GPIOSetValue(StepIN_PORT , StepIN4 , 0);
    DelayMS(750);
    GPIOSetValue(StepIN_PORT , StepIN1 , 0);//0110
    GPIOSetValue(StepIN_PORT , StepIN2 , 1);
    GPIOSetValue(StepIN_PORT , StepIN3 , 1);
    GPIOSetValue(StepIN_PORT , StepIN4 , 0);
    DelayMS(750);
    GPIOSetValue(StepIN_PORT , StepIN1 , 0);//1100
    GPIOSetValue(StepIN_PORT , StepIN2 , 0);
    GPIOSetValue(StepIN_PORT , StepIN3 , 1);
    GPIOSetValue(StepIN_PORT , StepIN4 , 1);
    DelayMS(750);
    GPIOSetValue(StepIN_PORT , StepIN1 , 1);//1001
    GPIOSetValue(StepIN_PORT , StepIN2 , 0);
    GPIOSetValue(StepIN_PORT , StepIN3 , 0);
    GPIOSetValue(StepIN_PORT , StepIN4 , 1);
    DelayMS(750);
}

void StepMotorDur(){

    GPIOSetValue(StepIN_PORT , StepIN1 , 0);//0000
    GPIOSetValue(StepIN_PORT , StepIN2 , 0);
    GPIOSetValue(StepIN_PORT , StepIN3 , 0);
    GPIOSetValue(StepIN_PORT , StepIN4 , 0);
    DelayMS(10);
}

int main(void) {

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

    GPIOSetDir(ButonPORT , ButonDUR , 0);
    GPIOSetDir(ButonPORT , ButonIleri , 0);
    GPIOSetDir(ButonPORT , ButonIleriTam ,0);
    GPIOSetDir(ButonPORT , ButonIleriYarim , 0);

    LCDClear();
    DelayMS(5);

    while(1)
    {
        //StepMotorDur();

        LCDGotoXY(0,0);
        LCDPutString("StepMotorKontrol");
        DelayMS(10);

        //Tam Adim
        if(GPIOGetValue(ButonPORT , ButonIleriTam) == 0){
            LCDClear();
            DelayMS(10);
            LCDGotoXY(0,0);
            LCDPutString("StepMotorKontrol");
            LCDGotoXY(0,1);
            LCDPutString("Tam Adim");
            DelayMS(10);
            StepMotorIleriTam();
        }
        //Yarim Adim
        if(GPIOGetValue(ButonPORT , ButonIleriYarim) == 0){
            LCDClear();
            DelayMS(10);
            LCDGotoXY(0,0);
            LCDPutString("StepMotorKontrol");
            LCDGotoXY(0,1);
            LCDPutString("Yarim Adim");
            DelayMS(10);
            stepMotorIleriYarim();
        }
        //Ileri Torklu
        if(GPIOGetValue(ButonPORT , ButonIleri) == 0){
            LCDClear();
            DelayMS(10);
            LCDGotoXY(0,0);
            LCDPutString("StepMotorKontrol");
            LCDGotoXY(0,1);
            LCDPutString("Ileri Torklu");
            DelayMS(10);
            StepMotorIleri();
        }
        //Motoru Durdur
        if(GPIOGetValue(ButonPORT , ButonDUR) == 0){
            LCDClear();
            DelayMS(10);
            LCDGotoXY(0,0);
            LCDPutString("StepMotorKontrol");
            LCDGotoXY(0,1);
            LCDPutString("Motor DUR");
            DelayMS(10);
            StepMotorDur();
        }

    }
    return 0 ;
}


 

Yorum Yap

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

Oylama: Kötü            İyi

Doğrulama kodunu giriniz: