TA7291P DC Motor Controller

Inexpensive motor control circuit made with a breadboard and a Toshiba TA7291P H bridge chip.


OK, I am new to arduino and electronics and all, I am really a programmer so bear with me please.

I just built a DC motor controller using toshiba's TA7291P h bridge chip a bread board and some wires, nothing else was needed.

This was much less expensive than buying a motor control shield which I saw were priced at about 2200Yen. This one will cost you 170Yen for the chip and another 190 yen for the breadboard. and I used some fancy wires, but you can use normal ones.

I bought all the parts (including the arduino) at the Sengoku Densho electronics shop at Akihabara. here is their web page (warning Japanese only) http://www.sengoku.co.jp/

here is the English datasheet for the TA7291P: http://www.toshiba.com/taec/components2/Datasheet_Sync/261/3604.pdf

which is less complete than the Japanese datasheet for the TA7291P http://www.semicon.toshiba.co.jp/docs/datasheet/ja/LinearIC/TA7291F_TA7291SG_ja_datasheet_070613.pdf

and after looking at those data sheets, I didin't know what resistors and capacitors to use.

then I found someone that made this circuit

I copied his design, he used no resistors or capacitors. you should notice that it uses 2 separate power supplies, I used the 5V from the arduino and a 3 volt battery box. and I attached the grounds together, apparently it wont work if you don't attach the ground together. the IN1 and IN2 go to pins 10 and 11 on the arduino, or any other PWM pins.

Here are some pictures of my breadboard: https://www.dropbox.com/gallery/13065068/2/arduino/TA7291P%20motor%20control?h=830357

here is a youtube video of the h bridge in action(notice, when the motor jerks , that is when it is changing directions: http://youtu.be/NubQGDEGzGw And here is a youtube video of running a Tamiya car kit using this controller at a slow speed http://youtu.be/vTzbar1psYc

here is the sourcecode of the firmware sketch I used to move the motor with 2 different speeds(full speed and half speed):

//TA7291P chip DC motor control by Usmar Padow usmpadow@gmail.com

int motorRight = 10;//these two must be PWM pins in order to control speed, PWM pins are marked with a ~ on the arduino

int motorLeft = 11; //these two must be PWM pins in order to control speed, PWM pins are marked with a ~ on the arduino

int speed = 255;//values from 0 to 255

int stop = 0;


void setup()
{
  pinMode(motorRight, OUTPUT);   // sets the pin as output
  pinMode(motorLeft, OUTPUT);   // sets the pin as output
}

void stop_function() {
  analogWrite(motorRight, stop);
  analogWrite(motorLeft, stop);
}
void loop()
{
  stop_function();//always stop motor before going in a different direction to avoid setting both pins on(brake mode)
  analogWrite(motorRight, speed);
  delay(2000);//wait 2 seconds
  stop_function();//always stop motor before going in a different direction to avoid setting both pins on(brake mode)
  analogWrite(motorLeft, speed);
  delay(2000);//wait 2 seconds
    stop_function();//always stop motor before going in a different direction to avoid setting both pins on(brake mode)
  analogWrite(motorRight, speed/2);
  delay(2000);//wait 2 seconds
  stop_function();//always stop motor before going in a different direction to avoid setting both pins on(brake mode)
  analogWrite(motorLeft, speed/2);
  delay(2000);//wait 2 seconds
}

Share