The SimpleFOCShield2.0.4 is a versatile motor control shield designed by SimpleFOC for driving brushless DC (BLDC) motors using advanced Field Oriented Control (FOC) techniques. This shield is compatible with a wide range of microcontrollers, including Arduino boards, and provides an efficient and user-friendly solution for precise motor control. It features integrated power management, robust protection mechanisms, and flexible configuration options, making it ideal for robotics, automation, and other motion control applications.
Parameter | Value |
---|---|
Manufacturer | SimpleFOC |
Part ID | BLDC_driver |
Input Voltage Range | 12V to 24V |
Maximum Continuous Current | 10A per phase |
Motor Type Supported | Brushless DC (BLDC) motors |
Control Method | Field Oriented Control (FOC) |
Microcontroller Support | Arduino, STM32, ESP32, and others |
Communication Interfaces | PWM, I2C, SPI, UART |
Dimensions | 68mm x 53mm |
Weight | 30g |
The SimpleFOCShield2.0.4 has a straightforward pin layout for easy integration with microcontrollers. Below is the pin configuration:
Pin Name | Description |
---|---|
VIN | Power input for the shield (12V to 24V). |
GND | Ground connection. |
M1_A, M1_B, M1_C | Motor 1 phase connections (A, B, C). |
M2_A, M2_B, M2_C | Motor 2 phase connections (A, B, C). |
EN1, EN2 | Enable pins for Motor 1 and Motor 2. |
DIR1, DIR2 | Direction control pins for Motor 1 and Motor 2. |
PWM1, PWM2 | PWM input pins for speed control of Motor 1 and Motor 2. |
SCL, SDA | I2C communication pins (clock and data). |
TX, RX | UART communication pins (transmit and receive). |
SPI (MISO, MOSI, SCK, CS) | SPI communication pins for advanced control and configuration. |
Below is an example of how to control a BLDC motor using the SimpleFOCShield2.0.4 and the SimpleFOC library:
#include <SimpleFOC.h>
// Define motor and driver objects
BLDCMotor motor = BLDCMotor(7); // Motor with 7 pole pairs
BLDCDriver3PWM driver = BLDCDriver3PWM(9, 10, 11); // PWM pins for motor phases
void setup() {
// Initialize driver
driver.voltage_power_supply = 12; // Set power supply voltage
driver.init();
motor.linkDriver(&driver);
// Configure motor
motor.controller = ControlType::velocity; // Velocity control mode
motor.voltage_limit = 6; // Limit motor voltage
motor.velocity_limit = 20; // Limit motor speed (rad/s)
motor.init();
// Start monitoring
Serial.begin(115200);
Serial.println("Motor ready!");
}
void loop() {
// Set motor velocity (e.g., 10 rad/s)
motor.move(10);
}
Motor Not Spinning:
Overheating:
Erratic Motor Behavior:
Communication Issues:
Q: Can I use this shield with a stepper motor?
A: No, the SimpleFOCShield2.0.4 is specifically designed for BLDC motors. For stepper motors, consider using a dedicated stepper motor driver.
Q: What is the maximum motor speed supported?
A: The maximum speed depends on the motor's specifications and the control parameters. Ensure the motor's velocity limit is set appropriately in the software.
Q: Can I use a 5V power supply?
A: No, the shield requires a power supply in the range of 12V to 24V.
Q: Is the shield compatible with Raspberry Pi?
A: Yes, the shield can be used with Raspberry Pi via PWM or communication interfaces like I2C, SPI, or UART. However, additional configuration may be required.