microrobotics icon

MRX-BL4805F Brushless DC Motor Controller

microrobotics | PRO | 05/08/23 11:18:24 AM UTC | 0 ⭐ | 3297 👁️ | Never ⏰ | []
Arduino |

1.62 KB

|

None

|

0 👍

/

0 👎

/*
Given that the MRX-BL4805F industrial Brushless DC Motor controller can be controlled using an analog 0-5V signal or a PWM signal between 10-300Hz, you can use the Arduino's analog output (PWM) to control the motor speed.
 
Here's an example of Arduino code to control the MRX-BL4805F motor controller using PWM:
 
Requirements:
 
Arduino board (e.g., Uno, Mega, Nano)
MRX-BL4805F Brushless DC Motor controller
Jumper wires
Motor power supply
 
In this example, the motor speed is controlled using the Arduino's PWM output on pin 3. The motor speed increases by 50 every 2 seconds (2000 milliseconds) within the 0-255 range, which corresponds to a 0-100% duty cycle. Connect the PWM output pin (in this case, pin 3) of the Arduino to the analog input or PWM input of the MRX-BL4805F motor controller for speed control.
*/
 
// Pin for the PWM output to control the motor speed
#define PWM_PIN 3
 
// Speed control variables
int motorSpeed = 0; // Motor speed (0-255 for PWM)
unsigned long previousMillis = 0; // Stores the last time the motor speed was updated
const unsigned long interval = 2000; // Motor speed update interval (in milliseconds)
 
void setup() {
  // Set the PWM pin as an output
  pinMode(PWM_PIN, OUTPUT);
}
 
void loop() {
  // Update the motor speed every 'interval' milliseconds
  unsigned long currentMillis = millis();
  if (currentMillis - previousMillis >= interval) {
    previousMillis = currentMillis;
    
    // Set the motor speed
    motorSpeed = (motorSpeed + 50) % 256; // Increase motor speed by 50 (0-255 range)
    analogWrite(PWM_PIN, motorSpeed); // Write the PWM value to the pin
  }
}
 

Comments