Final Project로 실제 점검에 사용된 코드

Dependencies:   mbed Adafruit_GFX

TB6612FNG/TB6612FNG.cpp

Committer:
21400688
Date:
2019-06-15
Revision:
0:22391cd705e2

File content as of revision 0:22391cd705e2:

/* File: TB6612FNG.h
 * Author: Robert Abad      Copyright (c) 2013
 *
 * Desc: driver for TB6612FNG Motor Driver.  For further details see
 *       header file, TB6612FNG.h
 */

#include "mbed.h"
#include "TB6612FNG.h"

#define SIGNAL_HIGH     (1)
#define SIGNAL_LOW      (0)

TB6612FNG::TB6612FNG( PinName pinPwmA, PinName pinAin1, PinName pinAin2,
                      PinName pinPwmB, PinName pinBin1, PinName pinBin2,
                      PinName pinNStby ) :
pwmA(pinPwmA),
Ain1(pinAin1),
Ain2(pinAin2),
pwmB(pinPwmB),
Bin1(pinBin1),
Bin2(pinBin2),
nStby(pinNStby)
{
    Ain1 = SIGNAL_LOW;
    Ain2 = SIGNAL_LOW;
    Bin1 = SIGNAL_LOW;
    Bin2 = SIGNAL_LOW;
    pwmA.period(TB6612FNG_PWM_PERIOD_DEFAULT);
    pwmA = TB6612FNG_PWM_PULSEWIDTH_DEFAULT;
    pwmB.period(TB6612FNG_PWM_PERIOD_DEFAULT);
    pwmB = TB6612FNG_PWM_PULSEWIDTH_DEFAULT;
    nStby = SIGNAL_LOW;
}

void TB6612FNG::setPwmA(float fPeriod, float fPulsewidth)
{
    pwmA.period(fPeriod);
    pwmA = fPulsewidth;
}

void TB6612FNG::setPwmAperiod(float fPeriod)
{
    pwmA.period(fPeriod);
}

void TB6612FNG::setPwmApulsewidth(float fPulsewidth)
{
    pwmA = fPulsewidth;
}
float TB6612FNG::getPwmA()
{
    return pwmA;
}
float TB6612FNG::getPwmB()
{
    return pwmB;
}
void TB6612FNG::setPwmB(float fPeriod, float fPulsewidth)
{
    pwmB.period(fPeriod);
    pwmB = fPulsewidth;
}

void TB6612FNG::setPwmBperiod(float fPeriod)
{
    pwmB.period(fPeriod);
}

void TB6612FNG::setPwmBpulsewidth(float fPulsewidth)
{
    pwmB = fPulsewidth;
}

void TB6612FNG::standby(void)
{
    nStby = SIGNAL_LOW;
}

void TB6612FNG::motorA_stop(void)
{
    Ain1 = SIGNAL_LOW;
    Ain2 = SIGNAL_LOW;
}

void TB6612FNG::motorA_ccw(void)
{
    Ain1 = SIGNAL_LOW;
    Ain2 = SIGNAL_HIGH;
    nStby = SIGNAL_HIGH;
}

void TB6612FNG::motorA_cw(void)
{
    Ain1 = SIGNAL_HIGH;
    Ain2 = SIGNAL_LOW;
    nStby = SIGNAL_HIGH;
}

void TB6612FNG::motorB_stop(void)
{
    Bin1 = SIGNAL_LOW;
    Bin2 = SIGNAL_LOW;
}

void TB6612FNG::motorB_ccw(void)
{
    Bin1 = SIGNAL_LOW;
    Bin2 = SIGNAL_HIGH;
    nStby = SIGNAL_HIGH;
}

void TB6612FNG::motorB_cw(void)
{
    Bin1 = SIGNAL_HIGH;
    Bin2 = SIGNAL_LOW;
    nStby = SIGNAL_HIGH;
}