Kör en CDROM Borstlös Motor med Arduino (3 / 3 steg)
Steg 3: Skriva koden
Vi vill förbereda en serie av rätt signaler till drive borstlös motor.Denna BLDC har 36 steg i varje komplett omgång. Det innebär att vi bör förbereda 36 signal stater att rotera spindeln en fullständig runda. Dessa 36 steg är indelade i 6 delar till en unik teckensekvens. Så har vi 6 olika signaler som bör upprepas 6 gånger i en loop.
Förutsatt att de 3 trådarna som A, B och C (ordnade) vi behöver ett 3 bitar värde som används. Vi har utgått från 0 som negativ och 1 som positiv spänning.
De magiska 6 steg är följande:
110, 100, 101, 001, 011, 010
Vi kommer att använda dem i en loop.
Annan viktig sak att nämna är att vänta eller fördröjning mellan varje steg. Du kan ändra motorns hastighet genom att ändra fördröjningstiden. Om du väljer en hög fördröjning (Ex: 15 till 20 millisekunder) motorn kan bara skaka eller starta en cutoff flytta. Om du använder en låg fördröjning (Ex: 0 5 millisekunder) du kommer att bara höra en buzz och ingen rörelse.
Så jag vill använda en variabel som förseningen och ändra det kasta fönstret serial monitor i Arduino.
Koden är som följer:
/*
BLDC DRIVER ***
*/
int vänta = 10;
int p1 = 2;
int p2 = 3;
int p3 = 4;
char inChar;
void setup() {
pinMode (p1, produktionen);
pinMode (p2, produktionen);
pinMode (p3, produktionen);
Serial.BEGIN(9600);
}
loop rutinen körs för evigt om och om igen:
void loop() {
om (Serial.available()) {
inChar = (char)Serial.read();
om (inChar == '-') {
vänta-=1;
}
annat {
vänta + = 1;
}
Serial.println(Wait);
}
digitalWrite (p1, 1);
digitalWrite (p2, 1);
digitalWrite (p3, 0);
Delay(Wait);
digitalWrite (p1, 1);
digitalWrite (p2, 0);
digitalWrite (p3, 0);
Delay(Wait);
digitalWrite (p1, 1);
digitalWrite (p2, 0);
digitalWrite (p3, 1);
Delay(Wait);
digitalWrite (p1, 0);
digitalWrite (p2, 0);
digitalWrite (p3, 1);
Delay(Wait);
digitalWrite (p1, 0);
digitalWrite (p2, 1);
digitalWrite (p3, 1);
Delay(Wait);
digitalWrite (p1, 0);
digitalWrite (p2, 1);
digitalWrite (p3, 0);
Delay(Wait);
}
Några tips:
-Inte använda extern ström mer än 12v.
-För små BLDC motorer kan du använda Arduino 5 + som Vs och utan att behöva extern ström, men du kan inte nå varvtal.
-Börja med wait värde är 10 och sedan öppna seriell bildskärmen och minus enter för att minska värdet. Lägre vänta värde, snabbare hastighet.