Подать нулевое напряжение на определенные серводвигатели за определенное время.

У меня есть робот, который использует 4 механические руки. Каждая механическая рука имеет 4 штанги READYTOSKY 30 кг. серводвигатели на них.

В какой-то момент мне нужно будет использовать абсолютную максимальную силу только двух механических рук (в то время как две другие останутся неподвижными). Хоть я и не меняю координаты двух других механических рук (которые я не использую), они потребляют напряжение и "забирают" энергию. весь потенциал силы двух других.

Есть ли способ остановить напряжение, потребляемое двумя другими рычагами, хотя бы на короткое время, используя код Arduino? Вскоре после этого они снова получат необходимое напряжение.

    if(level==25)                                                     
      { 
        pwm.setPWM(12, 0, 200);
        pwm.setPWM(13, 0, 255);
        pwm.setPWM(14, 0, 430);
        delay(100);
        pwm.setPWM(1, 0, 380);                                      
        pwm.setPWM(2, 0, 520);
        delay(500);
        pwm.setPWM(0, 0, 170);
        delay(600);
        stepperten.setCurrentPosition(0);                            
        while (stepperten.currentPosition() != (-3*200)) 
        {
        stepperten.setSpeed(-600); 
        stepperten.runSpeed();
        }
        steppertwist.setCurrentPosition(0);                        
        while (steppertwist.currentPosition() != (100)) 
        {
          steppertwist.setSpeed(200);
          steppertwist.run();
        }
        stepper1.setCurrentPosition(0);
        while(stepper1.currentPosition() != (30))         
        {
          stepper1.setSpeed(200);
          stepper1.run();
        }

        pwm.setPWM(1, 0, 295); // ЭТО МОМЕНТ, МНЕ НУЖНО ОТКЛЮЧИТЬ НАПРЯЖЕНИЕ ДЛЯ ДРУГИХ ОРУЖИЙ
        pwm.setPWM(2, 0, 400); //И ПОЛУЧИТЬ МАКСИМАЛЬНО ВОЗМОЖНОЕ НАПРЯЖЕНИЕ НА ЭТИХ ДВУХ РУЧКАХ
        delay(1500);                                  
        pwm.setPWM(12, 0, 125);

        array1[25][0] = 170;                           
        array1[25][1] = 295;
        array1[25][2] = 400;
        array1[25][3] = 153;
        array4[25][0] = 125;
        array4[25][1] = 255;
        array4[25][2] = 395;
      }

, 👍0

Обсуждение

Вы имеете в виду, что они потребляют ток? Отключение мощности других сервоприводов также будет означать, что они не смогут удерживать свое положение против внешних сил (например, гравитации). Будет ли это проблемой? Вы можете управлять линиями питания сервопривода с помощью p-канального МОП-транзистора., @chrisl

Вы пытались отсоединить сервопривод, а затем снова присоединить его позже?, @Edgar Bonet

Chatgpt посоветовал мне использовать отсоединение и присоединение. Я думал, что это может не сработать во время кода, @Noy

Я подумал о том, чтобы приобрести трасформатор побольше. Тот, который я сейчас использую, — 6,5 [В] с 2,5 [А]. Сервопривод может получить напряжение 4,8–7,2 В. Какой оптимальный ток мне нужен для достижения лучших результатов? Модель "readytosky td-8130mg". Спасибо!, @Noy

Если вы хотите сохранить максимальную гибкость, сложите все токи срыва ваших сервоприводов. Если погуглить даташит TD-8130mg 2.1А для 4.8В и 2.7А для 7.2В. Таким образом, у вас будет ток срыва около 2,6А. Убедитесь, что ваш источник питания может выдерживать максимальный ток., @chrisl


1 ответ


1

Если вы хотите отключить питание некоторых внешних компонентов, вы можете попробовать подать их питание через цифровые контакты. См. этот пример кода:

void setup(){
   pinMode(YOUR_ARM_POWER_SUPPLY_PIN, OUTPUT);

   // включаем руку
   digitalWrite(YOUR_ARM_POWER_SUPPLY_PIN, ON);
}

void loop(){
  if(armMustNotUseAnyPower()){
      // выключаем руку
      digitalWrite(YOUR_ARM_POWER_SUPPLY_PIN, OFF);
  }

}

Имейте в виду, что цифровые контакты не могут выдавать такую же мощность, как VCC. Но поскольку вы управляете серводвигателями, я предполагаю, что они в любом случае получают питание извне. Возможно, вам придется добавить какой-нибудь транзистор или другой способ включения и выключения питания от большого источника питания. Надеюсь, это вам чем-то поможет.

,