Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- Here's an example code to control two DC motors using the Pololu MC33926 Dual Motor Shield for Arduino. The code demonstrates how to control the motor speed using PWM and change the motor direction using digital pins.
- To use the code, stack the Pololu MC33926 Dual Motor Shield on top of your Arduino board, ensuring that the shield's inputs are connected to the corresponding pins on your Arduino board as specified in the code. Upload the code using the Arduino IDE and open the Serial Monitor to see the motor status.
- Remember to connect the shield's power supply pins (VIN and GND) to a suitable power supply for your motors, and the motor terminals to the shield's outputs (M1A and M1B for Motor 1, M2A and M2B for Motor 2).
- For the Pololu MC33926 Dual Motor Shield, ensure that the current-limiting jumpers are properly set according to the motor's specifications to avoid overloading the driver. Additionally, note that the MC33926 motor driver can get hot during operation, so proper heat dissipation methods (e.g., a heatsink) should be employed if necessary.
- The example code provided controls the direction and speed of two motors independently, running them clockwise and counter-clockwise at different speeds with a pause in between. You can modify this code to suit the specific requirements of your project or application.
- If you would like to implement additional features like current sensing, error detection, or the use of the shield's enable/disable pin, you can refer to the Pololu MC33926 Dual Motor Shield user guide for more details on how to connect and use these features.
- */
- // Pololu MC33926 Dual Motor Shield 3A for Arduino example
- // Motor 1
- const int motor1PWM = 9; // Connect Motor 1 PWM input to digital pin 9 (PWM capable) on the Arduino
- const int motor1DIR_A = 8; // Connect Motor 1 INA (direction) input to digital pin 8 on the Arduino
- const int motor1DIR_B = 7; // Connect Motor 1 INB (direction) input to digital pin 7 on the Arduino
- // Motor 2
- const int motor2PWM = 10; // Connect Motor 2 PWM input to digital pin 10 (PWM capable) on the Arduino
- const int motor2DIR_A = 12; // Connect Motor 2 INA (direction) input to digital pin 12 on the Arduino
- const int motor2DIR_B = 11; // Connect Motor 2 INB (direction) input to digital pin 11 on the Arduino
- void setup() {
- pinMode(motor1PWM, OUTPUT); // Set motor1PWM pin as output
- pinMode(motor1DIR_A, OUTPUT); // Set motor1DIR_A pin as output
- pinMode(motor1DIR_B, OUTPUT); // Set motor1DIR_B pin as output
- pinMode(motor2PWM, OUTPUT); // Set motor2PWM pin as output
- pinMode(motor2DIR_A, OUTPUT); // Set motor2DIR_A pin as output
- pinMode(motor2DIR_B, OUTPUT); // Set motor2DIR_B pin as output
- Serial.begin(9600); // Start the Serial Monitor with a baud rate of 9600
- }
- void loop() {
- // Rotate both motors clockwise at full speed
- digitalWrite(motor1DIR_A, HIGH);
- digitalWrite(motor1DIR_B, LOW);
- analogWrite(motor1PWM, 255);
- digitalWrite(motor2DIR_A, HIGH);
- digitalWrite(motor2DIR_B, LOW);
- analogWrite(motor2PWM, 255);
- Serial.println("Both motors running clockwise at full speed.");
- delay(2000); // Run the motors for 2 seconds
- // Stop both motors
- analogWrite(motor1PWM, 0);
- analogWrite(motor2PWM, 0);
- Serial.println("Both motors stopped.");
- delay(2000); // Wait for 2 seconds
- // Rotate both motors counter-clockwise at half speed
- digitalWrite(motor1DIR_A, LOW);
- digitalWrite(motor1DIR_B, HIGH);
- analogWrite(motor1PWM, 127
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement