Как добраться до контакта 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...
Вот схема:
Мой код для запуска двигателей (и переключения переключателя 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 без какой-либо прошивки.
@Supra, 👍-1
1 ответ
Все заработало без каких-либо прошивок, ухожу в сон. Утром обновлю сообщение о том, как мне удалось заставить его работать для всех, у кого возникнет аналогичный вопрос в будущем .
- Esp8266 Vin контакт
- Ардуино — это одноплатный компьютер?
- Самый быстрый способ считывания состояния цифрового контакта в Arduino Due
- Подключение Arduino Nano к Raspberry Pi Zero
- Питание Raspberry Pi 3 от Arduino Uno
- Питание arduino и вентилятора 12 В от одного источника питания
- Отправка структуры данных с 2 полями int из Arduino в Raspberry через NRF24L01
- Декодирование порта VGA с помощью Arduino