Как добраться до контакта PS_ON на RAMPS1.4, установленном на Mega

Понял! Проверьте конец сообщения для решения.

Я использую Mega 2560 с RAMPS 1.4 Shield, который обычно используется для 3D-печати. В моем случае использования я хочу получить только драйверы шаговых двигателей. RAMPS питается от собственного источника питания 12 В (используется старый кирпич Xbox 360, рассчитанный на 12 В и проверенный мультиметром), а Arduino получает 5 В от RPI. Но по какой-то причине мне не удалось заставить драйверы шагового двигателя A4988 что-либо получать от источника питания 12 В. Светодиод на RAMPS загорается, и драйверы шаговых двигателей потребляют небольшую мощность (также проверенную), но явно недостаточную, чтобы заставить их вращаться. Другими словами, RAMPS не использует внешний источник питания.

Я НЕ использую прошивку для 3D-принтеров, такую как Marlin, поскольку она не может скомпилироваться на Raspbian, и мне нужны только драйверы шаговых двигателей, а теперь, в моем случае, контакт PS_ON...

Вот схема:

Schematic

Мой код для запуска двигателей (и переключения переключателя PS_ON) выглядит следующим образом:

int PS_ON = 12;
int X_STEP_PIN = 54;
int X_DIR_PIN = 55;
int X_ENABLE = 38;
int NUM_OF_STEPS = 400;
int WAIT_TIME = 500;
int LED_PIN = 13;

void setup(){

  digitalWrite(LED_PIN, HIGH);

  delay(2000);

  pinMode(PS_ON, OUTPUT);

  delay(20000);

  pinMode(X_DIR_PIN, OUTPUT);
  pinMode(X_STEP_PIN, OUTPUT);
  pinMode(LED_PIN, OUTPUT);
  pinMode(X_ENABLE, OUTPUT);

  digitalWrite(PS_ON, LOW);
  digitalWrite(X_ENABLE, LOW);

  digitalWrite(X_DIR_PIN, HIGH);
  for(int n = 0; n < NUM_OF_STEPS; n++){
    digitalWrite(X_STEP_PIN, HIGH);
    digitalWrite(X_STEP_PIN, LOW);
    delay(WAIT_TIME);
    digitalWrite(LED_PIN,!digitalRead(LED_PIN));
  }

  delay(3000);

  digitalWrite(X_DIR_PIN, LOW);
  for(int n = 0; n < NUM_OF_STEPS; n++){
    digitalWrite(X_STEP_PIN, HIGH);
    digitalWrite(X_STEP_PIN, LOW);
    delay(WAIT_TIME);
    digitalWrite(LED_PIN, !digitalRead(LED_PIN));
  }
}

void loop(){

}

Будем признательны за любые мысли.

Вот как я заставил это работать.

Во-первых, если вы собираетесь использовать блок питания Xbox 360 для питания RAMPS, вам необходимо соединить вместе красный провод и синий провод, чтобы вывести приставку из режима ожидания и заставить ее выдавать постоянное напряжение 12 В (если вы покупаете блок питания стороннего производителя, тогда цвета/схема проводов будут другими, и вы будете действовать самостоятельно, но все, что сделано Microsoft для базовой Xbox 360, имеют такую цветовую маркировку, включая текущие блоки питания Xbox One, насколько я могу судить ).

Также есть возможность подключить синий к VCC, а красный к GND на плате RAMPS (я не уверен, почему это тоже работает, но это также упоминается в строке документации файла config.h или config_adv в настройках источника питания). в прошивке Marlin, откуда мне и пришла идея)

На этом этапе, если вы показываете напряжение 12 В на мультиметре на шине 5 А RAMPS, убедитесь, что RAMPS может питаться самостоятельно без Arduino, если это возможно, то все будет в порядке. Кажется, на этом этапе нет необходимости обращаться к PS_ON, и вы можете включить RAMPS без какой-либо прошивки.

, 👍-1


1 ответ


0

Все заработало без каких-либо прошивок, ухожу в сон. Утром обновлю сообщение о том, как мне удалось заставить его работать для всех, у кого возникнет аналогичный вопрос в будущем .

,