TinyCircuits x4 Motor TinyShield (HCTICI0005)

TinyCircuits product range including TindyDuino and TinyLili.
Post Reply
admin
Site Admin
Posts: 866
Joined: Sun Aug 05, 2012 4:02 pm

TinyCircuits x4 Motor TinyShield (HCTICI0005)

Post by admin » Mon Feb 17, 2014 4:54 pm

Image

See our Tiny Circuits Range Here.


Description:

The TinyShield Motor x4 allows you to drive four independently controlled DC brushed motors from your TinyDuino! Using four of the super miniature but very powerful 2mm x 2mm TI DRV8837 Motor Driver (H-Bridge) IC, this shield will allow for to 1.8A per channel and operate motors between 1.8 to 11V. The DRV8837 is extremely easy to use and interfaces and uses a simple PWM to control motor speed, direction, coasting and braking. The board includes a bypass capacitors, as well as heatsinking the chips to a large plane on the bottom side of the board to help with heat dissipation. An external power connection is supplied to connect up to your motor power source (like a battery), and all the connections to the motors are with standard 0.1″ spaced holes, that you can solder your motor leads into or use the supplied 0.1″ headers.

The TI DRV8837 has one H-bridge driver consisting of N-channel power MOSFETs to drive a DC motor or one winding of a stepper motor, or other devices like solenoids. An internal charge pump generates needed gate-drive voltages. There are internal shutdown functions for overcurrent protection, short-circuit protection, undervoltage lockout and over temperature. The DRV8837 can supply up to 1.8 A of output current. It operates on a motor power-supply voltage from 1.8 V to 11 V, and a device power-supply voltage of 1.8 V to 7 V. There is also a extremely low power sleep mode with 120nA sleep current per channel.

Note: While the DRV8837 supports 1.8A @ 11V, we highly recommend operating under 500mA @ 5V per channel unless you have some really good heat sinking in place.


Specification:

Model number: ASD2301
Ultra compact size and weight (smaller than a US Quarter!)
Square Version: 20mm x 20mm (.787 inches x .787 inches)
Max Height (from lower bottom TinyShield Connector to upper top TinyShield Connector): 5.11mm (0.201 inches)
Weight: TBD grams (TBD ounces)
Four TI DRV8837 H-bridge motor driver
Low MOSFET On-Resistance: HS + LS 280mOhm
1.8A Max Drive Current
1.8V to 11V Motor Operating Supply Voltage Range
Seperate Motor and Logic Power Supply Pins
PWM (IN/IN) Interface
Dedicated Sleep Pin
Arduino pins 2, 3, 4, 5, 6, 7, 8, 9 and A3 are used by this shield


Connections:

VM - Motor Voltage Input
This supplies the voltage to the motor and can range from 1.8 to 11 Volts.
High Current Connection

GND - Ground Connection
This is the Ground return for the motors. It is also connected to the ground for the TinyDuino logic.
High Current Connection

Motor1 - Motor 1 Connection
These are the Motor 1 output driver connections, connect these two pins to the two sides of the motor winding. The pin with the square pad is the O1 output and the other is the O2 output.
High Current Connection

Motor2 - Motor 2 Connection
These are the Motor 2 output driver connections, connect these two pins to the two sides of the motor winding. The pin with the square pad is the O1 output and the other is the O2 output.
High Current Connection

Motor3 - Motor 3 Connection
These are the Motor 3 output driver connections, connect these two pins to the two sides of the motor winding. The pin with the square pad is the O1 output and the other is the O2 output.
High Current Connection

Motor4 - Motor 4 Connection
These are the Motor 4 output driver connections, connect these two pins to the two sides of the motor winding. The pin with the square pad is the O1 output and the other is the O2 output.
High Current Connection


Pin Assignments:

A3 - Sleep Input
This signal can put the motor controller into a low-power “Sleep Mode”.
A logic-low “0″ will put the motor controller into sleep mode, a logic-high “1″ will put the motor controller into normal operating mode. If sleep mode is not needed, set A3 to HIGH to allow normal operation.

2 - Motor1 Dir
This signal controls the Motor 1 Output 2 driver. A logic-low “0″ will set Output 2 to low, a logic-high “1″ will set Output 2 to high.
For motor speed control, we recommend using this as the direction speed control signal, and 3 as the motor speed control signal.

3 - Motor1 PWM
This signal controls the Motor 1 Output 1 driver. A logic-low “0″ will set Output 1 to low, a logic-high “1″ will set Output 1 to high.
For motor speed control, we recommend using this as the motor speed control signal (Using a PWM signal), and 2 as the motor direction signal.

4 - Motor2 Dir
This signal controls the Motor 2 Output 2 driver. A logic-low “0″ will set Output 2 to low, a logic-high “1″ will set Output 2 to high.
For motor speed control, we recommend using this as the direction speed control signal, and 5 as the motor speed control signal.

5 - Motor2 PWM
This signal controls the Motor 2 Output 1 driver. A logic-low “0″ will set Output 1 to low, a logic-high “1″ will set Output 1 to high.
For motor speed control, we recommend using this as the motor speed control signal (Using a PWM signal), and 4 as the motor direction signal.

7 - Motor3 Dir
This signal controls the Motor 3 Output 2 driver. A logic-low “0″ will set Output 2 to low, a logic-high “1″ will set Output 2 to high.
For motor speed control, we recommend using this as the direction speed control signal, and 6 as the motor speed control signal.

6 - Motor3 PWM
This signal controls the Motor 3 Output 1 driver. A logic-low “0″ will set Output 1 to low, a logic-high “1″ will set Output 1 to high.
For motor speed control, we recommend using this as the motor speed control signal (Using a PWM signal), and 7 as the motor direction signal.

8 - Motor4 Dir
This signal controls the Motor 4 Output 2 driver. A logic-low “0″ will set Output 2 to low, a logic-high “1″ will set Output 2 to high.
For motor speed control, we recommend using this as the direction speed control signal, and 9 as the motor speed control signal.

9 - Motor4 PWM
This signal controls the Motor 4 Output 1 driver. A logic-low “0″ will set Output 1 to low, a logic-high “1″ will set Output 1 to high.
For motor speed control, we recommend using this as the motor speed control signal (Using a PWM signal), and 8 as the motor direction signal.

Schematic:
ASD2301.pdf
Example Sketch:

Code: Select all

int motorDirPin = 2;      // Motor direction connected to digital pin 2
int motorSpeedPin = 3;    // Motor speed connected to digital pin 3
int motorSleepPin = A3;      // Motor sleep to analog pin 3

void setup()
{
  pinMode(motorDirPin, OUTPUT);       // sets the pin as output
  pinMode(motorSpeedPin, OUTPUT);     // sets the pin as output
  pinMode(motorSleepPin , OUTPUT);     // sets the pin as output

  digitalWrite(motorDirPin, LOW);     // sets the default dir to be forward
  digitalWrite(motorSpeedPin, LOW);   // sets the default speed to be off
  digitalWrite(motorSleepPin , HIGH);   // sets the sleep mode to be off
}

void loop()
{
  // Set the motor direction to forward
  digitalWrite(motorDirPin, LOW);     

  // Ramp the motor speed up
  analogWrite(motorSpeedPin, 0);    // Min speed forward (motor off)
  delay(500);  
  analogWrite(motorSpeedPin, 63);   
  delay(500);  
  analogWrite(motorSpeedPin, 127);   
  delay(500); 
  analogWrite(motorSpeedPin, 191);   
  delay(500); 
  analogWrite(motorSpeedPin, 255);   // Max speed forward
  delay(500); 

  // Ramp the motor speed down
  analogWrite(motorSpeedPin, 191);   
  delay(500);  
  analogWrite(motorSpeedPin, 127);   
  delay(500);  
  analogWrite(motorSpeedPin, 63);   
  delay(500); 
  analogWrite(motorSpeedPin, 0);     // Min speed forward (motor off)
  delay(500); 


  // Set the motor direction to reverse
  digitalWrite(motorDirPin, HIGH);   

  // Ramp the motor speed up
  analogWrite(motorSpeedPin, 255);    // Min speed reverse (motor off)
  delay(500); 
  analogWrite(motorSpeedPin, 191);   
  delay(500);  
  analogWrite(motorSpeedPin, 127);   
  delay(500);  
  analogWrite(motorSpeedPin, 63);   
  delay(500); 
  analogWrite(motorSpeedPin, 0);      // Max speed reverse
  delay(500); 

  // Ramp the motor speed down
  analogWrite(motorSpeedPin, 63);   
  delay(500);  
  analogWrite(motorSpeedPin, 127);   
  delay(500); 
  analogWrite(motorSpeedPin, 191);   
  delay(500); 
  analogWrite(motorSpeedPin, 255);    // Min speed reverse (motor off)
  delay(500); 
}
You do not have the required permissions to view the files attached to this post.

Post Reply

Return to “TinyCircuits”