Здравствуйте уважаемые форумчане! Помогите пожалуйста разобраться со скетчем для шаговика. Плата "ардуино уно", драйвер ШГ L298N, ШГ от принтера. Скетч взял из примеров, в самой программе. Подключтл, загрузил, всё работает. Вот теперь пытаюсь сделать так чтобы двигатель сперва крутился один раз в одну сторону, затем один раз в другую, с одними параметрами, а затем так-же но только медленнее и делал меньше шагов. Какая строчка в коде за что отвечает, я разобрался, но вот как изменить параметры никак не разберусь. Постоянно выдает ту или инную ошибку. Подскажите пожалуйста как и что дописАть в скетче чтоб вс заработало. Прошу сильно не принать, т.к. в программировании я не силён, только-только познаю эту сложную, но интересную науку. Всем откликнувшимся заранее БОЛЬШОЕ СПАСИБО!!! вот сам скетч: #include <Stepper.h> const int stepsPerRevolution = 200; Stepper myStepper(stepsPerRevolution, 8, 9, 10, 11); void setup() { myStepper.setSpeed(60); Serial.begin(9600); } void loop() { Serial.println("clockwise"); myStepper.step(stepsPerRevolution); delay(500); Serial.println("counterclockwise"); myStepper.step(-stepsPerRevolution); delay(500); }
http://arduino-diy.com/arduino-sovety-dlya-nachinayushchikh-shagovyy-dvigatel-Nema-17 Посмотри тут, как раз проверка работы двигателя и кручение его в разные стороны. а ещё лучше работу простого движка освой, потом на шаговик переходи.
Я сделал восход солнца вручную. Вот фрагмент из основных функций: Код (C++): void stopStep() { // выключение двигателя Step(0, 0, 0, 0); } void rotateR() // 24 шага по часовой стрелке = 1 оборот оси = 1 мм движения штока вниз { for (byte i = 0; i < 6; i++) { // один такой блок сдвигает шток на 1/6 мм Step(1, 0, 1, 0); // один такой шаг сдвигает шток на 1/24 мм Step(0, 1, 1, 0); Step(0, 1, 0, 1); Step(1, 0, 0, 1); } printCount(); } void rotateL() // 24 шага по часовой стрелке = 1 оборота оси = 1 мм движения штока вверх { for (byte i = 0; i < 6; i++) { // один такой блок сдвигает шток на 1/6 мм Step(1, 0, 0, 1); // один такой шаг сдвигает шток на 1/24 мм Step(0, 1, 0, 1); Step(0, 1, 1, 0); Step(1, 0, 1, 0); } printCount(); } void Step(boolean a, boolean b, boolean c, boolean d) // один шаг { digitalWrite(A, a); digitalWrite(B, b); digitalWrite(C, c); digitalWrite(D, d); delay(delStep); }
С простым движком я как бы уже разобрался, а вот с шаговым никак. Запустить, крутить туда-сюда. А вот чтоб каждое его кручение было с разными скоростями и с разным количеством шагов, никак не пойму. Вот поэтому и прошу помощи в том, что и где подкорректировать в скетче, чтоб хоть было посмотреть, как это должно выглядеть. Но только на примере скетча из примеров.
Я вам дал пример как можно крутить ШД хоть пошагово, хоть пооборотно. Скорость регулируется задержками между шагами/оборотами, без задержек скорость максимальна.