MG996R not responding to USC-32

Hi,

i have an Arduino UNO hooked up to (GND and TX->RX) my USC-32 v7.70. The USC-32 is powered by a stand alone power supply (6V-60A). This powers one brand new MG996R on S1 and the board itself using the blue connector (VS and VSS both connected to this power supply).

The green led is on which indicates that the power to the MG996R is working. A blue led is on that would indicate that the processor of the USC-32 is working (the manual states that it should be green and it doesn't mention a blue state so i assume that they ran out of green leds....)

I'm using a standard code to test:

void setup() 
{
  Serial.begin(9600);
}
void loop() 
{
  while(1)
  {
    Serial.print("#1P200T1000\r\n");  
    delay(1000);  
    Serial.print("#1P400T1000\r\n"); 
    delay(1000); 
  }
}

I meassured the current on the pins from S1 and that is a steady 6V which should be great. The only thing that isn't is that my MG996R isn't moving at all. I also used another one - same result.
I see that one blue led is always on (i assume that is the LED that indicates that the processor power is ok) and another blue led is blinking (as a result of my code that instructs the MG996R to move)

Did i make a mistake somwhere? Could it be that i assumed wrong in the case of the blue LED that should be green? Or is my USC-32 a goner?

My setup:

(black is GND tot GND, White is TX Uno to RX USC-32)
Thank you!

Bart

What is a USC-32, anyway? A link to its datasheet/manual would be helpful as would be a schematic of the project. Hand drawn, photographed and posted is fine. Include all pin names/numbers, components, their part numbers and/or values and power supplies.

The while(1) is unnecessary as the loop() function loops all by itself.

Thank you for responding. I added that info.

Hi,
I did not know and never used this servo control module,
but in a goolge search I found this site:
" https://www.luisllamas.es/hasta-32-de-servos-en-arduino-con-el-controlador-usc-32/ "
In it, the author shows that the Arduino's RX pin must be connected to the module's TX pin.
I couldn't see for sure, but it looks like you connected the module's TX to the arduino's TX.

Thank you Ruilviana,

but the TX pin of my Arduino is in fact connected to the RX pin. Just to be fully sure i also now connected the TX pin of the USC-32 to the RX pin of the Arduino. No change.

Thank you for the check !!

I did meassure the Data pin output of S1 and S2 and they don't get over some mV. I see that these pins react to the code but they are not sending enough volts.

If i read this right, it should react to the same voltage as the voltage it needs to run (+pin). Do i read this the right way? If so, i guess the board is broken?

Are you sure you are sending the right commands? The manufacturer's example has:

    Serial.print("#1P800T1000\r\n");  // S1号舵机旋转到脉宽为800的位置,使用时间1000ms
    delay(1000);  // 延时1000ms,舵机刚好执行完上一条命令
    Serial.print("#1P1800T1000\r\n");  // S1号舵机旋转到脉宽为1800的位置,使用时间1000ms
    delay(1000);  // 延时1000ms,舵机刚好执行完上一条命令

Note the values 800 and 1800 where you have 200 and 400. If those are pulse lengths in microseconds that could be the problem. Servos typically use 1000 to 2000 microseconds and may not respond to pulses below 500 or above 2500.

Try the 800 and 1800 values to see if that helps.

I had that code first and because i had no response, i changed it to the values in my code. But to be sure i jus tried the original values: no luck. Thank you for the suggestion!!

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