Feb 9 - 15
- Nidec 24H brushless DC motors arrived
- Difficulty finding proper documentation
- Wrote code to make it spin
- Changed from Arduino Uno to Nano
#define PWM_PIN 9 // Yellow - Speed control (PWM)
#define START_PIN 8 // Blue - Start/Stop
#define DIR_PIN 7 // Green - Direction (CW/CCW)
#define BRAKE_PIN 4 // White - Brake (GND = brake, Floating = release)
void setup() {
pinMode(PWM_PIN, OUTPUT);
pinMode(START_PIN, OUTPUT);
pinMode(DIR_PIN, OUTPUT);
pinMode(BRAKE_PIN, OUTPUT);
// Set Timer1 to 20kHz PWM frequency on pin 9
TCCR1B = (TCCR1B & 0b11111000) | 0x01;
// Set default motor state
digitalWrite(START_PIN, HIGH); // Start motor
digitalWrite(DIR_PIN, LOW); // Default: CW rotation
digitalWrite(BRAKE_PIN, HIGH); // Release brake
analogWrite(PWM_PIN, 128); // Set speed to 50% (range 0-255)
}
void loop() {
// Engage brake for 3 seconds, then release
delay(5000);
digitalWrite(BRAKE_PIN, LOW); // Engage brake
delay(3000);
digitalWrite(BRAKE_PIN, HIGH); // Release brake
// Toggle direction
delay(1000);
digitalWrite(DIR_PIN, !digitalRead(DIR_PIN));
// Gradually increase speed
for (int speed = 50; speed <= 255; speed += 50) {
analogWrite(PWM_PIN, speed);
delay(1000);
}
// Stop motor for 3 seconds
digitalWrite(START_PIN, LOW);
delay(3000);
digitalWrite(START_PIN, HIGH);
}
Discussions
Become a Hackaday.io Member
Create an account to leave a comment. Already have an account? Log In.