Giter VIP home page Giter VIP logo

dc-motor-control-btn8982ta's Introduction

DC-Motor-Control-BTN8982TA Library

Build Status

Library of Infineon's DC motor control shield for Arduino.

Summary

The DC motor control shield is a high current motor control board being compatible to Arduino. It is capable to drive two uni-directional DC motors (half bridge configuration) or one bi-directional DC motor (H-Bridge configuration). The implemented integrated BTN8982TA NovalithIC™ half bridges can be controlled by a PWM via the IN Pin. Interfacing to a microcontroller is made easy by the integrated driver IC which features logic level inputs, diagnosis with current sense, slew rate adjustment, dead time generation and protection against overtemperature, undervoltage, overcurrent and short circuit.

Key Features and Benefits

  • Compatible with Arduino Uno R3
  • Capable of high frequency PWM e.g. 30kHz
  • Adjustable slew rates for optimized EMI by changing external resistor
  • Driver circuit with logic level inputs
  • Diagnosis with current sense
  • Protection e.g. against overtemperature and overcurrent
  • Fast and inexpensive prototyping of DC motor control
  • Easy testing of half and full bridge motor control
  • Status flag diagnosis with current sense capability
  • Overtemperature shut down with latch behavior and undervoltage shut down

Installation

First of all, please download this repository from GitHub by clicking on the following field in the releases of this repository or directly here:

Download Library

To install the DC motor control library in the Arduino IDE, please go now to Sketch > Include Library > Add .ZIP Library... in the Arduino IDE and navigate to the downloaded .ZIP file of this repository release. The library will be installed in your Arduino sketch folder in libraries and you can select as well as include this one to your project under Sketch > Include Library > IfxMotorControlShield.

Install Library

Usage

Please follow the example sketches in the /examples directory in this library to learn more about the usage of the library.

PCB Design Data

In case you want to change the design or reuse it for your own projects, please find the board design for EAGLE under the following link:

DC Motor Control Shield Design Data

Board Information, Datasheet and Additional Information

A PDF summarizing the features and layout of the DC motor control shield is stored on the Infineon homepage here. The datasheet for the BTN8982TA can be found here BTN8982TA Datasheet while the respective application note is located here NovalithIC™ half-bridge family BTN89xy.

dc-motor-control-btn8982ta's People

Contributors

arkajyotichatterjee avatar ederjc avatar mhollfelder avatar ratimir007 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

dc-motor-control-btn8982ta's Issues

Serial not working

On the XMC 1100 debug board the Bidirectional example sketch does not produce any Output. Changing the order of the begin calls of Serial and ifxMcsBiDirectionalMotor it works as expected.

I think the issue is that in the begin call of IfxMcsBiDirectionalMotor.cpp and IfxMcsUniDirectionalMotor.cpp respectively 'pinMode(mOut->pinIs, INPUT);' is called on an analog Pin which is not necessary. As A0 and A1 are defined as 0 and 1 it defines the pins 0 and 1 and thus rx and tx as input.

compilation errors

D:\arduino-1.6.11\libraries\IfxMotorControlShield\src\IfxMcsBiDirectionalMotor.cpp: In constructor 'IfxMcsBiDirectionalMotor::IfxMcsBiDirectionalMotor(IfxMcs::Halfbridge*, IfxMcs::Halfbridge*)':

D:\arduino-1.6.11\libraries\IfxMotorControlShield\src\IfxMcsBiDirectionalMotor.cpp:60:13: error: 'FALSE' was not declared in this scope

mEnabled = FALSE;

         ^

D:\arduino-1.6.11\libraries\IfxMotorControlShield\src\IfxMcsBiDirectionalMotor.cpp: In member function 'bool IfxMcsBiDirectionalMotor::begin()':

D:\arduino-1.6.11\libraries\IfxMotorControlShield\src\IfxMcsBiDirectionalMotor.cpp:76:22: error: 'TRUE' was not declared in this scope

if(mOut1->active == TRUE || mOut2->active)

                  ^

D:\arduino-1.6.11\libraries\IfxMotorControlShield\src\IfxMcsBiDirectionalMotor.cpp:84:18: error: 'TRUE' was not declared in this scope

mOut1->active = TRUE;

              ^

D:\arduino-1.6.11\libraries\IfxMotorControlShield\src\IfxMcsBiDirectionalMotor.cpp:96:9: error: 'FALSE' was not declared in this scope

return FALSE;

     ^

D:\arduino-1.6.11\libraries\IfxMotorControlShield\src\IfxMcsBiDirectionalMotor.cpp: In member function 'void IfxMcsBiDirectionalMotor::end()':

D:\arduino-1.6.11\libraries\IfxMotorControlShield\src\IfxMcsBiDirectionalMotor.cpp:102:17: error: 'FALSE' was not declared in this scope

if(mEnabled == FALSE)

             ^

D:\arduino-1.6.11\libraries\IfxMotorControlShield\src\IfxMcsBiDirectionalMotor.cpp:107:18: error: 'FALSE' was not declared in this scope

mOut1->active = FALSE;

              ^

D:\arduino-1.6.11\libraries\IfxMotorControlShield\src\IfxMcsBiDirectionalMotor.cpp: In member function 'void IfxMcsBiDirectionalMotor::start()':

D:\arduino-1.6.11\libraries\IfxMotorControlShield\src\IfxMcsBiDirectionalMotor.cpp:123:13: error: 'TRUE' was not declared in this scope

mRunning = TRUE;

         ^

D:\arduino-1.6.11\libraries\IfxMotorControlShield\src\IfxMcsBiDirectionalMotor.cpp: In member function 'void IfxMcsBiDirectionalMotor::stop()':

D:\arduino-1.6.11\libraries\IfxMotorControlShield\src\IfxMcsBiDirectionalMotor.cpp:130:13: error: 'FALSE' was not declared in this scope

mRunning = FALSE;

         ^

D:\arduino-1.6.11\libraries\IfxMotorControlShield\src\IfxMcsBiDirectionalMotor.cpp: In member function 'void IfxMcsBiDirectionalMotor::update()':

D:\arduino-1.6.11\libraries\IfxMotorControlShield\src\IfxMcsBiDirectionalMotor.cpp:212:17: error: 'FALSE' was not declared in this scope

if(mEnabled == FALSE)

             ^

D:\arduino-1.6.11\libraries\IfxMotorControlShield\src\IfxMcsBiDirectionalMotor.cpp:218:14: error: 'FALSE' was not declared in this scope

mRunning = FALSE;

          ^

D:\arduino-1.6.11\libraries\IfxMotorControlShield\src\IfxMcsBiDirectionalMotor.cpp:220:17: error: 'FALSE' was not declared in this scope

if(mRunning == FALSE)

             ^

exit status 1

Unclear currentSense for PWM applications.

Following the application note "NovalithIC™ half-bridge family BTN89xx", the voltage at the IS pin should either be measured phased in the middle of the pwm duty cycle (Section 5.5) or lowpass filtered (Section 4.5.2.3). In this code the first option is not implemented and the shield proposed doesn't include a lowpass filter. The getCurrentSense method gives unreliable results to me.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.