Monster Moto Dual-Channel Motor Driver VNH2SP30 High-current up to 30A
- Was RM85.00
-
RM65.00
- Product Code: Monster Dual VNH2SP30
- Availability: In Stock
This is essentially a ramped up version of motor driver / shield
Features
Specification
Packaging Included
Note:When using this board in extreme high-demand applications it may be necessary to improve thermal performance with a heat-sink or fan and to solder the wires directly to the board instead of using a screw terminal (in addition to the myriad other complications present in a high-current system) However,when using the board at currents up to 6A the chips will barely become noticeably warm.
PWM: Value between "0" and "255" to control the speed of the motor

/* MONSTER MOTOR SHIELD TEST CODE */
#define MtrBrake 0
#define ClockWise 1
#define CClockWise 2
#define GndBreak 3
#define CounterSenseThresHold 100
/* VNH2SP30 pin definitions
xxx[0] controls '1' outputs
xxx[1] controls '2' outputs */
int inApin[2] = {7, 4}; // INA Clockwise Controll
int inBpin[2] = {8, 9}; // INB Counter-clockwise Controll
int pwmpin[2] = {5, 6}; // PWM (Pulse with modulation ) Input
int cspin[2] = {2, 3}; // CS Current sense for analog input
int enpin[2] = {0, 1}; // EN Status of switches output (Analog pin)
int statpin = 13;
void setup()
{
Serial.begin(9600);
pinMode(statpin, OUTPUT);
// Initialize digital pins as outputs
for (int i=0; i<2; i++)
{
pinMode(inApin[i], OUTPUT);
pinMode(inBpin[i], OUTPUT);
pinMode(pwmpin[i], OUTPUT);
}
// Initialize braked
for (int i=0; i<2; i++)
{
digitalWrite(inApin[i], LOW);
digitalWrite(inBpin[i], LOW);
}
// motorGo(0, ClockWise, 255);
// motorGo(1, CClockWise, 255);
}
void loop()
{
motorGo(0, ClockWise, 255);
motorGo(1, CClockWise, 255);
delay(500);
motorGo(0, CClockWise, 255);
motorGo(1, ClockWise, 255);
delay(500);
if ((analogRead(cspin[0]) < CounterSenseThresHold) && (analogRead(cspin[1]) < CounterSenseThresHold))
digitalWrite(statpin, HIGH);
}
void motorOff(int motor)
{
// Initialize the brake
for (int i=0; i<2; i++)
{
digitalWrite(inApin[i], LOW);
digitalWrite(inBpin[i], LOW);
}
analogWrite(pwmpin[motor], 0);
}
/* Monster Motor will set a motor going in a specific direction
the motor will continue turns in that direction, at that speed
until told to do otherwise.
Motor: this should be either 0 or 1 will selet which of the two motors to be controlled
Direct Should be between 0 and 3, with the following result
0 - Brake to VCC
1 - Clock wise
2 - Counter Clockwise
3 - Brake to GND
PWM (Pulse with Moduleation) should be a value between 0and 1024, higher the number, the faster turns
*/
void motorGo(uint8_t motor, uint8_t direct, uint8_t pwm)
{
if (motor <= 1)
{
if (direct <=4)
{
// Set to INA[motor]
if (direct <=1)
digitalWrite(inApin[motor], HIGH);
else
digitalWrite(inApin[motor], LOW);
// Set to INB[motor]
if ((direct==0)||(direct==2))
digitalWrite(inBpin[motor], HIGH);
else
digitalWrite(inBpin[motor], LOW);
analogWrite(pwmpin[motor], pwm);
}
}
}
|
Related:
|
Single Channel VNH2SP30 Monster Moto Single-Channel Motor Driver VNH2SP30 High-current up to 30A |
Tags: Motor Driver