Paso 3: Escribir el código
Queremos preparar una serie de señales apropiadas para conducir el motor sin cepillo.Este BLDC tiene 36 escalones en cada ronda completa. Esto significa que debemos prepararnos 36 Estados de la señal para girar el eje una vuelta completa. Estos 36 pasos se dividen en 6 partes de una secuencia única. Así tenemos 6 señales diferentes que deben repetirse 6 veces en un bucle.
Suponiendo que los 3 cables como A, B y C (ordenó) necesitan un valor de 3 bits a utilizar. Hemos asumido el 0 negativo y 1 como voltaje positivo.
El mágicos 6 pasos son los siguientes:
110, 100, 101, 001, 011, 010
Utilizamos en un bucle.
Otra cosa importante a mencionar es esperar o retrasar entre cada paso. Modificando el tiempo de retardo se puede cambiar la velocidad del motor. Si usted elige un retraso alto (Ex: 15 a 20 milisegundos) el motor solo puede agitar o iniciar un movimiento de corte. Si utilizas un bajo retardo (Ex: 0 a 5 milisegundos) sólo se escuchará un zumbido y no movimiento.
Así que quiero utilizar una variable como retardo y cambio tiro la ventana del serial monitor de Arduino.
El código es como sigue:
/*
CONDUCTOR BLDC ***
*/
int espera = 10;
int p1 = 2;
int p2 = 3;
int p3 = 4;
inChar Char;
void setup() {}
pinMode (p1, salida);
pinMode (p2, salida);
pinMode (p3, salida);
Serial.Begin(9600);
}
una y otra vez funciona para siempre la rutina bucle:
void loop() {}
Si (Serial.available()) {}
inChar = (char)Serial.read();
Si (inChar == '-') {}
esperar-=1;
}
Else {}
esperar += 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);
}
Algunos consejos:
-No utiliza alimentación externa más de 12v.
-Para pequeños motores BLDC se puede utilizar Arduino 5 + como Vs y no hay necesidad de alimentación externa, pero no puede alcanzar la velocidad del motor.
-Comience con valor de espera de 10 y luego abra al monitor de serie y escriba la clave menos para disminuir el valor. Espera un valor más bajo, una velocidad más rápida.