Чт окт 21, 2021 12:30:40
const int PIN_DIR = 2;
byte servoID_1 = 0x01;
//byte servoALL = 0x
uint16_t a=0;
void setup() {
pinMode(PIN_DIR,OUTPUT);
Serial.begin(115200);
digitalWrite(PIN_DIR,LOW);
Serial.flush();
}
void loop() {
a = analogRead(A0);
a= map(a,0,1023,0,360);
delay(100);
//moveServo4(a);
torque(a);
// moveServo_temp(a);
//delay(1000);
// torque_pol(0);
delay(1000);
printBuffer();
//delay(2000);
}
void printBuffer(){
unsigned char buf[5];
uint8_t tem[1];
uint16_t volt[1];
uint16_t sp[1];
uint16_t enc[1];
byte notchecksum = (0xDC);
digitalWrite(PIN_DIR,HIGH);
buf[0]=0x3E;
buf[1]=0x9C;
buf[2]=0x01;
buf[3]=0x00;
buf[4]=0xDB;
Serial.write(buf,5);
Serial.flush();
digitalWrite(PIN_DIR,LOW);
while(Serial.available()>0){
tem[1]=Serial.read();
delay(300);
volt[1]=Serial.read();
delay(300);
sp[1]=Serial.read();
delay(300);
enc[1]=Serial.read();
delay(300);
}
Serial.print(tem[1],HEX);
Serial.print(" ");
Serial.print(volt[1],HEX);
Serial.print(" ");
Serial.print(sp[1],HEX);
Serial.print(" ");
Serial.print(enc[1],HEX);
Serial.print(" ");
Serial.println("");
}
void torque(int Position){
unsigned char buf[8];
char Position_H = Position >> 8;
char Position_L = Position % 256;
byte notchecksum = (Position_L+Position_H);
digitalWrite(PIN_DIR,HIGH);
buf[0]=0x3E;
buf[1]=0xA1;
buf[2]=0x01;
buf[3]=0x02;
buf[4]=0xE2;
buf[5]=Position_L;
buf[6]=Position_H;
buf[7]=notchecksum;
Serial.write(buf,8);
Serial.flush();
delay(100);
digitalWrite(PIN_DIR,LOW);
}
void moveServo(){
digitalWrite(2,HIGH);
delay(100);
Serial.write(0x3E);
Serial.write(0xA4);
Serial.write(0x01);
Serial.write(0x0C);
Serial.write(0xEF);
Serial.write(0x10);
Serial.write(0x27);
Serial.write(0x00);
Serial.write(0x00);
Serial.write(0x00);
Serial.write(0x00);
Serial.write(0x00);
Serial.write(0x00);
Serial.write(0xA0);
Serial.write(0x8C);
Serial.write(0x00);
Serial.write(0x00);
Serial.write(0x63);
Serial.flush();
digitalWrite(2,LOW);
delay(100);
}
void moveServo4(int Position){
char Position_H = Position >> 8;
char Position_L = Position % 256;
byte notchecksum = (Position_L+Position_H+0x00+0x00+0x00+0x00+0x00+0x00+0xA0+0x8C+0x00+0x00);
//byte notchecksum = (0xA0+0x8C+0x00+0x00+0x00+0x00+0x00+0x00+0xA0+0x8C+0x00+0x00);
digitalWrite(PIN_DIR,HIGH);
delay(100);
Serial.write(0x3E);
Serial.write(0xA4);
Serial.write(0x01);
Serial.write(0x0C);
Serial.write(0xEF);
Serial.write(Position_H); // Serial.write(Position_L);
Serial.write(Position_L);
Serial.write(0x00);
Serial.write(0x00);
Serial.write(0x00);
Serial.write(0x00);
Serial.write(0x00);
Serial.write(0x00);
Serial.write(0xA0);
Serial.write(0x8C);
Serial.write(0x00);
Serial.write(0x00);
Serial.write(notchecksum);
Serial.flush();
delay(100);
digitalWrite(2,LOW);
//Serial.println(Position_H);
// Serial.println(Position_L);
}
void moveServo2(){
byte notchecksum = (0x00+0x00+0x00+0x00+0x00+0x00+0x00+0x00+0xA0+0x8C+0x00+0x00);
digitalWrite(2,HIGH);
delay(100);
Serial.write(0x3E);
Serial.write(0xA4);
Serial.write(0x01);
Serial.write(0x0C);
Serial.write(0xEF);
Serial.write(0x00);
Serial.write(0x00);
Serial.write(0x00);
Serial.write(0x00);
Serial.write(0x00);
Serial.write(0x00);
Serial.write(0x00);
Serial.write(0x00);
Serial.write(0xA0);
Serial.write(0x8C);
Serial.write(0x00);
Serial.write(0x00);
Serial.write(notchecksum);
Serial.flush();
digitalWrite(2,LOW);
delay(100);
}
void moveServo3(){
digitalWrite(2,HIGH);
delay(100);
Serial.write(0x3E);
Serial.write(0xA4);
Serial.write(0x01);
Serial.write(0x0C);
Serial.write(0xEF);
Serial.write(0xA0);
Serial.write(0x8C);
Serial.write(0x00);
Serial.write(0x00);
Serial.write(0x00);
Serial.write(0x00);
Serial.write(0x00);
Serial.write(0x00);
Serial.write(0xA0);
Serial.write(0x8C);
Serial.write(0x00);
Serial.write(0x00);
Serial.write(0x58);
Serial.flush();
digitalWrite(2,LOW);
delay(100);
}
void moveServo_temp(int Position){
unsigned char ab;
char Position_H = Position >> 8;
char Position_L = Position % 256;
byte notchecksum = (0x00+0x00+0x00+0x00+0x00+0x00+0x00+0x00+0x00+0x00+0x00+0x00+0x00);
//byte notchecksum = (0xA0+0x8C+0x00+0x00+0x00+0x00+0x00+0x00+0xA0+0x8C+0x00+0x00);
digitalWrite(2,HIGH);
delay(100);
Serial.write(0x3E);
Serial.write(0xA4);
Serial.write(0x01);
Serial.write(0x07);
Serial.write(0xEA);
Serial.write(0x00);
Serial.write(0x00);
Serial.write(0x00);
Serial.write(0x00);
Serial.write(0x00);
Serial.write(0x00);
Serial.write(0x00);
Serial.write(0x00);
Serial.write(notchecksum);
Serial.flush();
digitalWrite(2,LOW);
delay(100);
//ab=Serial.read();
//Serial.print("ab - ");
//Serial.println(ab);
}
Чт окт 21, 2021 13:22:29
uint8_t tem[1];
uint16_t volt[1];
uint16_t sp[1];
uint16_t enc[1];
i = 0;
while(Serial.available()>0){
rxbuf[i]=Serial.read();
i++;
if(i >=13) break;
}
Чт окт 21, 2021 13:30:54
Чт окт 21, 2021 13:45:15
Чт окт 21, 2021 14:24:30
byte notchecksum = (0x00+0x00+0x00+0x00+0x00+0x00+0x00+0x00+0xA0+0x8C+0x00+0x00);
...
Serial.write(0x8C);
Serial.write(0x00);
Serial.write(0x00);
Serial.write(notchecksum);
Чт окт 21, 2021 14:47:21
Чт окт 21, 2021 14:48:23
uint8_t tem[1];
uint16_t volt[1];
uint16_t sp[1];
uint16_t enc[1];
i = 0;
while(Serial.available()>0){
rxbuf[i]=Serial.read();
i++;
if(i >=13) break;
}