RS485 Click module with Volz actuator

I'm developing a project that will control the actuator DA 15-N of Volz with the RS485 bus. I have got the arduino UNO click SHIELD of Microelektronics and their RS485 click.

They have libraries for the RS485 click, but they aren't free.
I tried with other libraries. The problem is, that the actuator has its own frame.

It is like this:
Byte # Communication type
1 Command code
2 Actuator ID
3 Argument 1
4 Argument 2
5 CRC High-Byte
6 CRC Low-Byte

With a command like 0xDD 0x01 0x0C 0x5A 0x8D 0xC8 the actuator schould turn to -22°.

I also tried to send the commmand with UART to the shield, controlling the R/T pin of the module, but it does not work.

What am I missing?

Thanks for any help.

Patrick

I'm developing a project that will control the actuator DA 15-N of Volz with the RS485 bus. I have got the arduino UNO click SHIELD of Microelektronics and their RS485 click.

It's the same as with almost every post: Where are the links to the used hardware? You have to provide the information, don't expect us to search for it, just to find the wrong data.

Sorry for the lack of information.

I cant look into the libraries, because they are in a mpkg format.

DA26-RS485-Protocol-V116.pdf (831 KB)

I tried with this code, but it does not work:

#define READ  5

unsigned char command[4]={0xDD,0x01,0x0B,0x41};   //command for -30°
unsigned short int crc;

void get_crc()                              //copied from Datashiet  
{ 
  char x, y; 
  crc=0xFFFF;                               //init value     
  for (x=0; x<4; x++) 
    { 
      crc = ( ( command[x] <<8 ) ^ crc); 
      for ( y=0; y<8; y++ )            
        {           
          if ( crc & 0x8000 )    
              crc = (crc << 1) ^ 0x8005;             
          else  
              crc = crc << 1; 
        } 
    }
}
void setup() {
  pinMode(READ, OUTPUT);                    // R/T Pin
  
  Serial.begin(115200);                     //Baud of the Servo
  
  get_crc();
  
  
  digitalWrite(READ, 0);
  delay(5);
  for(int i=0; i<4; i++)
  {
    Serial.print(command[i], HEX);
  }
  Serial.print((uint8_t)(crc >> 8), HEX);
  Serial.print((uint8_t)crc, HEX);
  Serial.flush();
  delay(5);
  digitalWrite(READ, 1);
}

void loop() {

}
digitalWrite(READ, 0);

The naming of that pin is wrong. If you put it HIGH the click is in sending state, if it is LOW the click is receiving.

Remove the delay() lines. You must not have the MAX485 in send mode longer than necessary as otherwise you might miss the answer. At 115200 you transmit more than 50 bytes in 5ms!