есть ли кто еще в теме?
Люди добрые подскажите пожалуйста, пытаюсь подружиться с arduino, взял самое простое:
Взял 2560 и рампс 1.4 с принтера. на оси X установил драйвер. Полного описания pinout по рампсу не нашел, судя по прошивке то пины соответсвуют // For RAMPS 1.4
#define X_STEP_PIN 54
#define X_DIR_PIN 55
#define X_ENABLE_PIN 38
#define X_MIN_PIN 3
#define X_MAX_PIN 2
концевики ладно, а вот что делать со step, dir, enable?
есть такой вот скетч (библиотеку уже портировал)
#include <AccelStepper.h>
AccelStepper Stepper1(1,13,12); //использует пин 12 и 13 для dir и step, 1 - режим "external driver" (A4988)
int dir = 1; //используется для смены направления
void setup() {
Stepper1.setMaxSpeed(3000); //устанавливаем максимальную скорость вращения ротора двигателя (шагов/секунду)
Stepper1.setAcceleration(13000); //устанавливаем ускорение (шагов/секунду^2)
}
void loop() {
if(Stepper1.distanceToGo()==0){ //проверка, отработал ли двигатель предыдущее движение
Stepper1.move(1600*dir); //устанавливает следующее перемещение на 1600 шагов (если dir равен -1 будет перемещаться -1600 -> противоположное направление)
dir = dir*(-1); //отрицательное значение dir, благодаря чему реализуется вращение в противоположном направлении
delay(1000); //задержка на 1 секунду
}
Stepper1.run(); //запуск шагового двигателя. Эта строка повторяется вновь и вновь для непрерывного вращения двигателя
}
вместо 12 и 13 назначаю свои 55 и 54, а что за режим "external driver"? и где enable подевался?
Извините если смешно со стороны но ... увяз в общим. (читаю параллельно документацию)
может блок питания тоже хандрит.. Хотя 3А и при включении никаких просадок, ровненько 12.1в.
эхо идет, когда прописывал. Гуглю, все на драйверах и "на соплях" собирают, рядом сканер цыклоп стоит- собрал так же без шилда на uno и с тем же БП и прекрасно работает. А тут все стандартно, уже все сбито и нифига не пашет. Не ужели никто не применяет рампс помимо принтеров!
Добавлено спустя 2 часа 28 минут 23 секунды:проверил под марлин прошивкой, двигатель управляется 100% (под тем же БП). значит с пинами чет не то..
Добавлено спустя 2 часа 8 минут 6 секунд:разобрался, при шилде используется high и low вот работающий кусок скеча:
int ledPin = 13; // LED connected to digital pin 13
int enx = 38;
int stepx = 54;
int dirx = 55;
int Z =1;
// The setup() method runs once, when the sketch starts
void setup() {
// initialize the digital pin as an output:
pinMode(ledPin, OUTPUT);
pinMode(enx, OUTPUT);
pinMode(stepx, OUTPUT);
pinMode(dirx, OUTPUT);
digitalWrite(enx, HIGH);
digitalWrite(stepx, LOW);
digitalWrite(dirx, LOW);
}
// the loop() method runs over and over again,
// as long as the Arduino has power
void loop()
{
digitalWrite(enx, LOW);
digitalWrite(dirx, HIGH);
digitalWrite(ledPin, HIGH); // set the LED on
for (int x = 0; x<800; x++){ //not sure how this line is effecting the entire system, x< any# does not change how long the motors step for me
digitalWrite(stepx, HIGH);
delay(1); //using this and the below delay to control speed, but only a few different combinations between 0-3 run smoothly so i could use help here
digitalWrite(stepx, LOW);
delay(1);
} //no matter what both motors are running in sync, not what i want
for (int b = 0; b<50; b++){
delay(0);
}
}
Добавлено спустя 1 минуту 1 секунду:начинает нравится мне эта дуня
