Monster Moto Single-Channel Motor Driver VNH2SP30 High-current up to 30A
- Was RM55.00
-
RM40.00
- Product Code: Monster VNH2SP30
- Availability: In Stock
The VNH2SP30-E is a full bridge motor driver intended for a wide range of automotive applications. The device incorporates a dual monolithic high side driver and two low side switches.
Features
Specifications
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
#define BRAKE 0 #define CW 1 #define CCW 2 #define CS_THRESHOLD 15 // Definition of safety current (Check: "1.3 Monster Shield Example"). //MOTOR 1 #define MOTOR_A1_PIN 7 //Driver Board IN1 #define MOTOR_B1_PIN 8 //Driver Board IN2 #define PWM_MOTOR_1 5 //Driver Board PWM #define EN_PIN_1 A0 //Driver Board EN #define MOTOR_1 0 short usSpeed = 150; //default motor speed unsigned short usMotor_Status = BRAKE; void setup() { pinMode(MOTOR_A1_PIN, OUTPUT); pinMode(MOTOR_B1_PIN, OUTPUT); pinMode(PWM_MOTOR_1, OUTPUT); pinMode(EN_PIN_1, OUTPUT); Serial.begin(9600); // Initiates the serial to do the monitoring Serial.println("Begin motor control"); Serial.println(); //Print function list for user selection Serial.println("Enter number for control option:"); Serial.println("1. STOP"); Serial.println("2. FORWARD"); Serial.println("3. REVERSE"); Serial.println("4. READ CURRENT"); Serial.println("+. INCREASE SPEED"); Serial.println("-. DECREASE SPEED"); Serial.println(); } void loop() { char user_input; while(Serial.available()) { user_input = Serial.read(); //Read user input and trigger appropriate function digitalWrite(EN_PIN_1, HIGH); if (user_input =='1') { Stop(); } else if(user_input =='2') { Forward(); } else if(user_input =='3') { Reverse(); } else if(user_input =='+') { IncreaseSpeed(); } else if(user_input =='-') { DecreaseSpeed(); } else { Serial.println("Invalid option entered."); } } } void Stop() { Serial.println("Stop"); usMotor_Status = BRAKE; motorGo(MOTOR_1, usMotor_Status, 0); } void Forward() { Serial.println("Forward"); usMotor_Status = CW; motorGo(MOTOR_1, usMotor_Status, usSpeed); } void Reverse() { Serial.println("Reverse"); usMotor_Status = CCW; motorGo(MOTOR_1, usMotor_Status, usSpeed); } void IncreaseSpeed() { usSpeed = usSpeed + 10; if(usSpeed > 255) { usSpeed = 255; } Serial.print("Speed +: "); Serial.println(usSpeed); motorGo(MOTOR_1, usMotor_Status, usSpeed); } void DecreaseSpeed() { usSpeed = usSpeed - 10; if(usSpeed < 0) { usSpeed = 0; } Serial.print("Speed -: "); Serial.println(usSpeed); motorGo(MOTOR_1, usMotor_Status, usSpeed); } void motorGo(uint8_t motor, uint8_t direct, uint8_t pwm) //Function that controls the variables: motor(0 ou 1), direction (cw ou ccw) e pwm (entra 0 e 255); { if(motor == MOTOR_1) { if(direct == CW) { digitalWrite(MOTOR_A1_PIN, LOW); digitalWrite(MOTOR_B1_PIN, HIGH); } else if(direct == CCW) { digitalWrite(MOTOR_A1_PIN, HIGH); digitalWrite(MOTOR_B1_PIN, LOW); } else { digitalWrite(MOTOR_A1_PIN, LOW); digitalWrite(MOTOR_B1_PIN, LOW); } analogWrite(PWM_MOTOR_1, pwm); } }
Upload and open the “Serial Monitor” in Arduino IDE and command.
Related: |
Dual Channel VNH2SP30 Monster Moto Dual-Channel Motor Driver VNH2SP30 High-current up to 30A |
Tags: Motor Driver