The single sensor 3phase bldc controller has only one sensor and sensed the rotor pole magnets feed signal to arduino nano .The micro controller convert the signal into 3 phase signal and sent to mosfet drive.
Here the bldc motor also modified that is bldc stator hase 12poles and rotor hase 16 poles.
The rotor is modified with two rows of magnets.
The bottom row magnets are bigger size used for motor and top row small size magnets are used for sensor and the no of magnets are equal to no of stator poles=12 nos
working:-
while sensing 1st magnet R-phase Led glow
sensing 2nd magnet Y-phase Led glow and similarly 3rd B-phase Led glow and for 4,5and 6 the cycle is repeated.
Arduino code used:-
int ledPin1 = 13;
int ledPin2 = 12;
int ledPin3 = 11;
int switchPin = 8;
int count = 0;
boolean lastButton;
boolean currentButton = false;
boolean ledOn = false;
void setup() {
pinMode(switchPin, INPUT);
pinMode(ledPin1, OUTPUT);
pinMode(ledPin2, OUTPUT);
pinMode(ledPin3, OUTPUT);
count = 0;
}
//debounce function to stabilise the button
boolean debounce(boolean last)
{
boolean current = digitalRead(switchPin);
if (last != current)
{
delay(2);
current = digitalRead(switchPin);
}
return current;
}
void loop() {
lastButton = currentButton;
currentButton = debounce(lastButton);
if (lastButton == false && currentButton == true)
{
if (count == 0)
{
count++;
digitalWrite(ledPin3, LOW);
digitalWrite(ledPin1, HIGH);
digitalWrite(ledPin2, LOW);
}
else if (count == 1)
{
count++;
digitalWrite(ledPin1, LOW);
digitalWrite(ledPin2, HIGH);
digitalWrite(ledPin3, LOW);
}
else if (count == 2)
{
count = 0;
digitalWrite(ledPin2, LOW);
digitalWrite(ledPin3, HIGH);
digitalWrite(ledPin1, LOW);
}
else if (count == 2)
{
}
}
}
#bldc #motor #arduino
Негізгі бет 3 phase bldc motor controller,Arduuno pjt-2
Пікірлер: 14