You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This Arduino library implements Field Oriented Control (FOC) algorithm for BLDC motors. FOC algorithm produces incomparably smooth operation and high degree of torque, velocity and position control.
18
+
This Arduino library implements Field Oriented Control (FOC) algorithm for BLDC and Stepper motors. FOC algorithm produces incomparably smooth operation and high degree of torque, velocity and position control.
19
19
The library is intended both for:
20
-
- Beginners searching for a simple and *user-friendly* way to learn how to control BLDC motors
20
+
- Beginners searching for a simple and *user-friendly* way to learn how to control BLDC and Stepper motors
21
21
- Advanced users ready to dig deeper into the FOC algorithm and optimize the code for their particular application/hardware.
22
22
23
+
23
24
## Features
24
-
-**Arduino compatible**: Arduino library code version
25
+
-**Arduino compatible**:
26
+
- Arduino library code
25
27
- Arduino Library Manager integration
26
28
-**Open-Source**: Full code and documentation available on github
<blockquoteclass="info">📢 Arduino <spanclass="simple">Simple<spanclass="foc">FOC</span>library</span> will support any BLDC motor driver which can be driven with 3 PWM signals.</blockquote>
All the Arduino <spanclass="simple">Simple<spanclass="foc">FOC</span>Shield</span> boards will be initially tested and they will be shipped with initial configuration. The testing configuration will be done with use of conductive ink instead of soldering connections. Therefore once you have the board, if you wish to change configuration all you need to do is remove the ink with some wet paper wipe.
Each board has integrated set of three 3.3KOhm pull-up resistors for encoder channels A,B and Index (or Hall sensor U, V, W). The picture above shows how solder the pads in order to enable the Pull-up resistors.
26
30
Not all encoders need the pull-up resistors, or better said, in general, most of them don't need them. For those of us who are looking for price optimization :slight_smile: , a lot of cheap Ebay/Aliexpress encoders will need them such as [600P ebay encoder <iclass="fa fa-external-link"></i>](https://www.ebay.com/itm/360-600P-R-Photoelectric-Incremental-Rotary-Encoder-5V-24V-AB-Two-Phases-Shaft/254214673272?hash=item3b30601378:g:AZsAAOSwu~lcxosc) and similar.
From the shield [<iclass="fa fa-tag"></i>version 1.3.2](https://github.com/simplefoc/Arduino-SimpleFOCShield/releases) the boards come with with 4.7KOhm pull-up resistors for I2C communication pins. The picture above shows how solder the pads in order to enable the Pull-up resistors.
37
+
Not all I2C devices (especially Magnetic sensors) need the pull-up resistors, or better said, in general, most of them don't need them, especially with Arduino UNO. But it is very common to have problems interfacing these sensors with STM32 boards such as Nucleo-64. There you will need to enable the pullups or provide them yourself externally.
If you are stacking the shields make and you wish to use the I2C pull-ups, make sure you enable them on one board at a time!
40
+
</blockquote>
41
+
28
42
## Customizing pinout
29
43
30
44
Pinout customization of the <spanclass="simple">Simple<spanclass="foc">FOC</span>Shield</span> enables the board to be very flexible with using different sensors and additional arduino modules. But more importantly it enables the board to be stackable.
@@ -41,7 +55,7 @@ Encoder A | 3, A2, A3
41
55
Encoder B | 2, A1
42
56
Encoder I | 4, A0
43
57
44
-
<small>*From <spanclass="simple">Simple<spanclass="foc">FOC</span>Shield</span> version <i>v1.3.1</i></small>
Now, there is a lot of possible pin configurations and not all of them are possible depending on the microcontroller and sensor you are using.
47
61
For example, Arduino UNO only has 2 external interrupt pins, and they are pin `2` and `3`. Therefore when using the board with Arduino UNO and Encoder we will try to use pin `3` for encoder channel A and not for pwm A.
This is an open-source low-cost Brushless DC (BLDC) motor driver board intended primarily for low-power FOC applications up to 5Amps. The board is fully compatible with the Arduino UNO and all the boards with the standard Arduino headers.
15
15
The <spanclass="simple">Simple<spanclass="foc">FOC</span>Shield</span>, in combination with the <spanclass="simple">Simple<spanclass="foc">FOC</span>library</span> provides *user-friendly* way to control BLDC motors both in hardware and software.
-**Open Source**: Fully available fabrication files - [how to make it yourself](arduino_simplefoc_shield_fabrication)
30
-
30
+
-**Open Source**: Fully available fabrication files - [how to make it yourself](arduino_simplefoc_shield_fabrication),
31
+
31
32
<blockquoteclass="warning">
32
33
<pclass="heading">BEWARE</p>
33
34
This BLDC driver board is primarily designed for gimbal motors with the internal resistance of R >10 Ω. Please make sure that your motor fits in this category before deciding to use the <spanclass="simple">Simple<spanclass="foc">FOC</span>Shield</span>.
0 commit comments