Control brushless motor arduino11/28/2023 ![]() ![]() The LIN lines are connected to Arduino pins 7, 6 and 5 respectively for phase A, phase B and phase C. The Arduino UNO can generate PWM signals on that pins where only high side mosfets are PWMed. The HIN lines of the three IR2101 are connected to pins 11, 10 and 9 respectively for phase A, phase B and phase C. The figure below shows input and output timing diagram: The IR2101 chips are used to control high side and low side mosfets of each phase. The switching between the high side and the low side is done according to the control lines HIN and LIN. The outputs of the 3 comparators are connected to Arduino pins 2, 3 and 4 respectively for BEMF A, BEMF B and BEMF C.Īrduino UNO pins 2, 3 and 4 are ATmega328P microcontroller external interrupt pins PCINT18, PCINT19 and PCINT20 respectively. The LM339 outputs are open collector which means a pull up resistor is needed for each output, for that I used three 10k ohm resistors. Comparator 4 is not used and its input terminals should be grounded.Īs known the comparator output is logic 1 if the non-inverting voltage is greater than the inverting voltage and vice versa. BEMF A is connected to the non-inverting pin ( + ) of comparator number 1, BEMF B is connected to the positive terminal of comparator 2 and BEMF C is connected to the positive terminal of comparator 3. The virtual point is connected to the inverting input ( – ) of the three comparators as shown in the circuit diagram above. In this project we need 3 comparators to compare the BEMF of each phase with respect to the virtual natural point because we need to detect the zero crossing of each phase, here I used the LM339 quad comparator chip. The first three 33k (connected to motor phases) and the three 10k resistors are used as voltage dividers, the other three 33k resistors generate the virtual natural point. In the circuit diagram above the 3 phases are named: Phase A, Phase B and Phase C. The following image shows project circuit schematic diagram.Īll grounded terminals are connected together.Īs mentioned above, the brushless dc motor is a 3-phase motor. ![]() In this project I’m using the motor shown below, it full name is A2212/13T 1000KV:īrushless dc motor control with Arduino circuit: 3 x IR2101 (or IR2101S) gate driver IC -> datasheet.6 x 06N03LA N-type mosfet (or equivalent) -> datasheet.Arduino UNO board -> ATmega328P datasheet. ![]() So, I used an external chip which is LM339 quad comparator IC. In the above two projects, I used the Atmega328P (Arduino UNO microcontroller) internal analog comparator to detect the zero crossing events of the 3 phases, but it’s not a good idea (may give bad results) to use this comparator and the ADC module because they share the same multiplexer. Sensorless BLDC motor control with Arduino – DIY ESCīrushless DC motor controller using Arduino and IR2101 The following topic shows more details about the BEMF technique: In this project I’m going to make the same controller but a potentiometer is used instead of the two push buttons. One of these projects shows how to build a simple ESC using Arduino where the speed of the BLDC motor is controlled with two push buttons. In this blog there are many topics show how to control sensored and sensorless brushless DC motors using Arduino and some other PIC microcontrollers. ![]() The sensorless BLDC motor control technique is based on the BEMF (Back Electromotive Force) produced in the stator windings. The brushless dc (BLDC) motor is a 3-phase motor comes in two main types: sensored and sensorless. ![]()
0 Comments
Leave a Reply.AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |