Помогите с CNC Shield version 3.0

taras_lebedyk
Offline
Зарегистрирован: 22.03.2016

 

Добрый день, есть Arduino UNO и плата к ней CNC Shield v3.0. CNC Shield v3.0 работает на GRBL. Но я хочу использовать Arduino UNO+CNC Shield v3.0для другой задачи. Для этого прошивка GRBL не подходит. Пробовал запустить вручную по такому коде

// defines pins numbers
const int stepPin = 2; 
const int dirPin = 5; 
 
void setup() {
  // Sets the two pins as Outputs
  pinMode(stepPin,OUTPUT); 
  pinMode(dirPin,OUTPUT);
}
void loop() {
  digitalWrite(dirPin,HIGH); // Enables the motor to move in a particular direction
  // Makes 200 pulses for making one full cycle rotation
  for(int x = 0; x < 200; x++) {
    digitalWrite(stepPin,HIGH); 
    delayMicroseconds(500); 
    digitalWrite(stepPin,LOW); 
    delayMicroseconds(500); 
  }
  delay(1000); // One second delay
  
  digitalWrite(dirPin,LOW); //Changes the rotations direction
  // Makes 400 pulses for making two full cycle rotation
  for(int x = 0; x < 400; x++) {
    digitalWrite(stepPin,HIGH);
    delayMicroseconds(500);
    digitalWrite(stepPin,LOW);
    delayMicroseconds(500);
  }
  delay(1000);
}

но ничего не работает. Нашел распиновки

все должно работать. В интернете не смог найти пример запуска не из GRBL. Помогите пожалуйста.

toxikaciya
Offline
Зарегистрирован: 11.04.2016

Для начала попройбуйте проверить работу шилда на grbl прошивке. После этого уже можно писать свою программу, вооружившись даташитом от драйвера, там подробно указано, какие сигналы и куда надо посылать.

P.S. Это какие же задачи должны быть, чтобы grbl не подошел?

taras_lebedyk
Offline
Зарегистрирован: 22.03.2016

я проверил работу Шилда на grbl, все работает прекрасно, посмотрел в прошивке grbl там тоже указаны эти пены што прописанные в скетчи, но ничего не работает (

toxikaciya
Offline
Зарегистрирован: 11.04.2016

Попробуйте библиотеку AccelStepper. Также посмотрите тут.

taras_lebedyk
Offline
Зарегистрирован: 22.03.2016

пробовал и не только с этой библиотекой, ничего не значит, нет никакой реакции

toxikaciya
Offline
Зарегистрирован: 11.04.2016

В библиотеке как драйвер инициализировали?

taras_lebedyk
Offline
Зарегистрирован: 22.03.2016
#include <AccelStepper.h>

AccelStepper Stepper1(1,5,2); //использует пин 2 и 5 для 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(); //запуск шагового двигателя. Эта строка повторяется вновь и вновь для непрерывного вращения двигателя
}

 

 не понял только за режим "external driver"

toxikaciya
Offline
Зарегистрирован: 11.04.2016

taras_lebedyk пишет:

 не понял только за режим "external driver"

Библиотека имеет несколько режимов работы - с уни- и биполярными шаговиками с прямым подключением и с внешними драйверами типа А4988/8825. Режим 1 как раз и указывает библиотеке на работу с драйвером. К сожалению сейчас не могу проверить работу библиотеки, т.к. мои дравера накрылись, а новые еще не пришли, поэтому помогу только на словах.

toxikaciya
Offline
Зарегистрирован: 11.04.2016

А почему Вас не устраивает grbl. Наколько я знаю, там достаточно просто можно настроить практически все параметры. А то, как будет работать оборудование, зависит от G-кода.

AlexeySh
Offline
Зарегистрирован: 16.01.2017

Попробуйте в setup() добавить Stepper1.setSpeed(1000); или сколько вам там надо. а то вы максимальную скорость установили, а средняя у вас 0. Можете также уменьшить максимальную скорость и ускорение. Так как в описании библиотеки сказано, что средняя скорость более 1000 не реализуема.

 

taras_lebedyk
Offline
Зарегистрирован: 22.03.2016

я пробовал (ничего (никакой реакции

AlexeySh
Offline
Зарегистрирован: 16.01.2017
AccelStepper stepper1(AccelStepper::DRIVER, STEPPER1_STEP_PIN, STEPPER1_DIR_PIN);

Да ещё инициализацию степпера обычно вот так делают.

 

misha234
Offline
Зарегистрирован: 12.04.2017

Скажите, вопрос решился? Если да , скиньте пожалуйста как. Я видимо то же не могу пробиться через 2 и 5 пин.

Batinoff
Offline
Зарегистрирован: 19.04.2017

Наверно вот в этом ошибка...добавляем 8 пин в скетч...pinMode(...,OUTPOOT) и digitalWrite(...,LOW) //LOW он включается

Electronik83
Offline
Зарегистрирован: 06.12.2015

Попробуйте задрать или опустить 8-ую ногу дуинки. Stepper enable / disable. (включение / отключение шаговиков)

Попробуйте увеличить задержки. Может оказаться, что delayMicroseconds(500); - слишком мало.

vartow
Offline
Зарегистрирован: 09.04.2018

Здравствуйте. Помогите пожалуйста в следующем вопросе. Собрал станок в связке arduino uno + GRBL 0.9J + cnc shield v3.0 + программа universal gcode sender. Установил java8. На оси Z двигатель от дисковода, помещён маркер( хотел протестить - порисовать). Конвертирую в G-код программой CHPU. Вопрос следующий: по прошествии около 20 минут станок зависает, когда открываешь визуализацию, программа закрывается и появляется лог ошибки. Помогите, пожалуйста, может кто встречался с таким косяком.

Electronik83
Offline
Зарегистрирован: 06.12.2015

Попробуй ток на моторах убавить.

vartow
Offline
Зарегистрирован: 09.04.2018

Пробовал ток менять, не помогает. Может программа с косяком? Когда открываешь окно визуализации - программа universal gcode sender закрывается и лог ошибки появляется. Хотя я пробовал разные версии - одна и та же причина. Не знаю на что и думать. Может есть знающие люди, помогите.

greymouse2
Offline
Зарегистрирован: 23.12.2021

сам сплясал на этих граблях..

1. собираем и тестим с GRBL если крутит - выключаем.

2. 

// CNC Shield Stepper  Control Demo
// Superb Tech
// www.youtube.com/superbtech
 
const int StepX = 2;
const int DirX = 5;
const int StepY = 3;
const int DirY = 6;
const int StepZ = 4;
const int DirZ = 7;
 
 
void setup() {
  pinMode(StepX,OUTPUT);
  pinMode(DirX,OUTPUT);
  pinMode(StepY,OUTPUT);
  pinMode(DirY,OUTPUT);
  pinMode(StepZ,OUTPUT);
  pinMode( DirZ,OUTPUT);
  pinMode( 8 ,OUTPUT);
  digitalWrite(8, LOW);
 
}
 
void loop() {
 digitalWrite(DirX, HIGH); // set direction, HIGH for clockwise, LOW for anticlockwise
 digitalWrite(DirY, HIGH);
 digitalWrite(DirZ, HIGH);
 
 for(int x = 0; x<200; x++) { // loop for 200 steps
  digitalWrite(StepX,HIGH);
  delayMicroseconds(500);
  digitalWrite(StepX,LOW); 
  delayMicroseconds(500);
 }
delay(1000); // delay for 1 second
 
for(int x = 0; x<200; x++) { // loop for 200 steps
  digitalWrite(StepY,HIGH);
  delayMicroseconds(500);
  digitalWrite(StepY,LOW); 
  delayMicroseconds(500);
 }
delay(1000); // delay for 1 second
 
for(int x = 0; x<200; x++) { // loop for 200 steps
  digitalWrite(StepZ,HIGH);
  delayMicroseconds(500);
  digitalWrite(StepZ,LOW); 
  delayMicroseconds(500);
 }
delay(1000); // delay for 1 second
 
}
 
собственно весь прикол в том что шилд по ДЕФОЛТУ на ногу ( NOT (enable)) подает 5v - т.е. тупо вырубает драйвер.
решение . 
 пин 8 - объявляем ВЫВОДОМ (output) 
с пина 8 подаем 0 (LOW)
 
профит и прыгающие по столу моторчики .. штатно они делают 1 оборот (если у вас конечно 200 на оборот и НЕТ перемычек под драйвером.)
ток рекомендую выставить заранее. хотя дефолтовых  0. 55 v для теста платы точно хватит..  чай не бошку таскать с директом или лазер какой..
 
типа деклаймер для тех кому авторские права в опе горят. КОД НЕ МОЙ - авторский канал на ютубе в начале кода. про 8 пин вычитал на форуме.. вот только каком - не помню..
 
люди !!! если есть кто из Ростова-на-Дону - помогите. в основном советом но если еще чем - я только за. 
хочу собрать 3d принтер.  ну и по немногу добрые (гм) узкоглазые и не очень торговцы присылают запчасти.. 
програмная часть и пайка меня заботит мало ( сам программист - и это таки звучит гордо) но вот грабли на дороге - может кто поможет определиться что и как лучше .. например силовую раму - есть труба 25мм и есть полый квадрат на 20. что лучше ? 
опять же дрыгостол как-то вызывает у меня некоторое недоумение.. 
медитирую на отдельную z (возможно на 2х моторах) но 2 оси то точно. и XY сверху . какой - в медитации..