Help with problem using dynamixel ax 12a multi servo. sometimes the servo doesnt going with the flow.delay problem

#include <DynamixelSerial.h>

void stance_Phase () {
// #tancePhase
// kaki 1
Dynamixel.moveSpeed(3, (350),150);
delay(20);
Dynamixel.moveSpeed(1, (512),150);
delay(20);
Dynamixel.moveSpeed(9, (250),150); //sudut dikurangi dari sudut center
delay(20);

//Gait kaki 1

Dynamixel.moveSpeed(3, (350),150);
delay(50);
Dynamixel.moveSpeed(1, (601),150);
delay(50);
Dynamixel.moveSpeed(9, (350),150);
delay(50);

//  kaki 5

Dynamixel.moveSpeed(20, (720) ,150);
delay(50);
Dynamixel.moveSpeed(5, (400) ,150);
delay(40);
Dynamixel.moveSpeed(2, (512) ,150);
delay(40);

// kaki 5
Dynamixel.moveSpeed(20, (720) ,150);
delay(40);
Dynamixel.moveSpeed(5, (512) ,150);
delay(40);
Dynamixel.moveSpeed(2, (612) ,150);
delay(40);

// KAKI 3
Dynamixel.moveSpeed(10, (320) ,150);
delay(60);
Dynamixel.moveSpeed(7, (601) ,150);
delay(60);
Dynamixel.moveSpeed(14, (670),150); //570
delay(60);

// KAKI 3

Dynamixel.moveSpeed(10, (320) ,150);
delay(60);
Dynamixel.moveSpeed(7, (512) ,150);
delay(60);
Dynamixel.moveSpeed(14, (570),150);
delay(60);
}
// #################################################################################################################################################################################
void swing_Phase () {
// #SWINGPHASE
// KAKI 4

Dynamixel.moveSpeed(12, (710) ,100);
Dynamixel.moveSpeed(18, (400) ,100);
Dynamixel.moveSpeed(6, (350) ,100);

// KAKI 4
Dynamixel.moveSpeed(12, (710) ,100);
Dynamixel.moveSpeed(18, (512) ,100);
Dynamixel.moveSpeed(6, (450) ,100);
delay(80);

//kaki 2
Dynamixel.moveSpeed(4, (330) ,100);
Dynamixel.moveSpeed(16, (512) ,100);
Dynamixel.moveSpeed(15, (412) ,100); // ssudut dikurani dari posisi center

// kaki 2
Dynamixel.moveSpeed(4, (330) ,100);
Dynamixel.moveSpeed(16, (601) ,100);
Dynamixel.moveSpeed(15, (512) ,100);
delay(100);

// kaki 6
Dynamixel.moveSpeed(13,(308) ,100);
Dynamixel.moveSpeed(8, (610) ,100);
Dynamixel.moveSpeed(11, (370) ,100);

// kaki 6
Dynamixel.moveSpeed(13,(308) ,100);
Dynamixel.moveSpeed(8, (512) ,100);
Dynamixel.moveSpeed(11, (470) ,100);
delay(120);
}

// #################################################################################################################################################################################
void putar_kanan(void) {
// kaki 1
Dynamixel.moveSpeed(3, (310),250);
delay(20);
Dynamixel.moveSpeed(1, (601),250);
delay(20);
Dynamixel.moveSpeed(9, (350),250);
delay(20);

// kaki 1
Dynamixel.moveSpeed(3, (310),150);
delay(20);
Dynamixel.moveSpeed(1, (601),150);
delay(20);
Dynamixel.moveSpeed(9, (450),150);
delay(20);

// kaki 2

Dynamixel.moveSpeed(4, (330) ,150);
delay(40);
Dynamixel.moveSpeed(16, (601) ,150);
delay(40);
Dynamixel.moveSpeed(15, (512) ,150);
delay(40);

// kaki 2
Dynamixel.moveSpeed(4, (330) ,150);
delay(40);
Dynamixel.moveSpeed(16, (601) ,150);
delay(40);
Dynamixel.moveSpeed(15, (612) ,150);
delay(40);

// KAKI 3

Dynamixel.moveSpeed(10, (320) ,150);
delay(60);
Dynamixel.moveSpeed(7, (601) ,150);
delay(60);
Dynamixel.moveSpeed(14, (670),150); //570
delay(60);

// KAKI 3

Dynamixel.moveSpeed(10, (320) ,150);
delay(60);
Dynamixel.moveSpeed(7, (601) ,150);
delay(60);
Dynamixel.moveSpeed(14, (770),150); //570
delay(60);

// KAKI 4

Dynamixel.moveSpeed(12, (710) ,150);
delay(80);
Dynamixel.moveSpeed(18, (400) ,150);
delay(80);
Dynamixel.moveSpeed(6, (350) ,150);
delay(80);

// KAKI 4
Dynamixel.moveSpeed(12, (710) ,150);
delay(80);
Dynamixel.moveSpeed(18, (400) ,150);
delay(80);
Dynamixel.moveSpeed(6, (450) ,150);
delay(80);

// kaki 5

Dynamixel.moveSpeed(20, (720) ,150);
delay(100);
Dynamixel.moveSpeed(5, (400) ,150);
delay(100);
Dynamixel.moveSpeed(2, (512) ,150);
delay(100);

// // kaki 5
Dynamixel.moveSpeed(20, (720) ,150);
delay(100);
Dynamixel.moveSpeed(5, (400) ,150);
delay(100);
Dynamixel.moveSpeed(2, (612) ,150);
delay(100);

// kaki 6
Dynamixel.moveSpeed(13,(308) ,150);
delay(120);
Dynamixel.moveSpeed(8, (610) ,150);
delay(120);
Dynamixel.moveSpeed(11, (370) ,150);
delay(120);

// // kaki 6
Dynamixel.moveSpeed(13,(308) ,150);
delay(120);
Dynamixel.moveSpeed(8, (610) ,150);
delay(120);
Dynamixel.moveSpeed(11, (470) ,150);
delay(120);
}
void setup() {

Dynamixel.setSerial(&Serial3);

Dynamixel.begin(1000000,46);

delay(1000);

Serial.begin(9600);

}

void loop() {

stance_Phase();

swing_Phase();
}

the problem is the delay of the code sometimes, leg 1,2,3 move but sometimes it doesnt move properly. let me know if you guys know about it thank you very much

Please follow the advice given in the link below when posting code, in particular the section entitled 'Posting code and common code problems'

Use code tags (the < CODE/ > icon above the compose window) to make it easier to read and copy for examination

https://forum.arduino.cc/t/how-to-get-the-best-out-of-this-forum

In my experience the easiest way to tidy up the code and add the code tags is as follows

Start by tidying up your code by using Tools/Auto Format in the IDE to make it easier to read. Then use Edit/Copy for Forum and paste what was copied in a new reply. Code tags will have been added to the code to make it easy to read in the forum thus making it easier to provide help.

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