T6 AC servo (from stepperonline) wiring and code to begin with

Hello, this is my first post on this Forum ... Sorry if I make mistakes :nerd_face:
Has anyone tried to wire an arduino to a T6 AC servo motor like this one :
T6 Series 1000W AC Servo Motor Kit 3000rpm 3.19Nm 17-Bit Encoder IP65 - T6-RS1000H2A3-M17S|STEPPERONLINE (omc-stepperonline.com)


My idea was to connect on the CN1 port like below :

driver PUL+ connected to arduino Pin 9
driver PUL- connected to arduino GND
driver DIR+ connected to arduino Pin 8
driver DIR- connected to arduino GND

and try this code to begin :

const int pin8 =8;  // DIR+ driver
const int pin9 =9;  // Pulse+ driver

void setup() {
Serial.begin(9600);
pinMode (pin8,OUTPUT);
pinMode (pin9,OUTPUT);
}
void loop() {
 
digitalWrite(pin8, HIGH);
tone(pin9,500);  // 500 = speed by pulse?? what should be the right number to begin with (maximum bandwidth of the driver is 750KHZ)?
delay(5000);
}

Does that code could works ?
Can we also imagin using arduino accelStepper library to control velocity of this T6 series AC servo Motor?
Thanks

Though it's an AC servo motor I think you drive it just like a stepper. However you may need to configure it through its data port to set up things like steps per rev. I haven't had the time to read the spex in detail. Any special reason for not using a standard stepper motor?

Thank you for your answer,
I inquire for this motor because I already tested standard stepper motor (like nema 23 + TMC2209 driver for exemple) I had very good results at approx 50 RPM but when I wanted to go faster it became to noisy for my application.

Do you think I could drive the T6 AC servo like a servo with that wiring :

driver PUL+ connected to arduino Pin 9
driver PUL- connected to arduino GND

And use that type of code to begin :

#include <Servo.h> // Introduce the servo motor library


Servo myservo; // create a servo object


int pos = 0; // initialise the position variable


void setup() {

myservo.attach(9); // Attach the servo object to the 9th digital pin.

}


void loop() {

for (pos = 0; pos <= 180; pos += 1) { // go from 0 to 180 degrees

myservo.write(pos); // tell the servo to go to position pos

delay(15); // wait 15ms for the servo to reach position

}


for (pos = 180; pos >= 0; pos -= 1) { // from 180 degrees to 0 degrees

myservo.write(pos); // tell the servo to go to position pos

delay(15); // wait 15ms for the servo to reach position

}

}

thanks

That code is i think designed to drive an RC-type position servo and will not work for what you are trying to do I think! The T6 servo behaves like a stepper motor because it is designed for precise positioning and the step/direction type interface is more or less standard for these applications. Why do you want to run the motor faster, what's the application? Maybe a stepper is the wrong choice and a dc motor would be better? Tell us more.

I have a T6 servo motor and can confirm that the way you are connecting is correct. I don't know about the code though. The PUL+ signal is simply a 5V square-wave, and the DIR+ signal is +5V for CW rotation and 0V for CCW rotation. So your drive signal just needs to be a square wave of the frequency needed to give your desired RPM.

1 Like

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.