Шаговик не слушается
- Войдите на сайт для отправки комментариев
Пт, 18/09/2015 - 20:31
Всем привет! Написал код, чтобы шаговик ровно через 360 шагов остановился. Но он почему-то крутится в бесконечном цикле. Помогите найти ошибку. Шаговик с шагом 1,8гр.
#include <Stepper.h>
#include <SPI.h>
#include <Ethernet.h>
//Определяем порты подключенные к L298N
int input1 = 3;
int input2 = 4;
int input3 = 5;
int input4 = 6;
void setup()
{
pinMode(input1,OUTPUT);
pinMode(input2,OUTPUT);
pinMode(input3,OUTPUT);
pinMode(input4,OUTPUT);
}
void loop(){
for (int i=0; i <=50; i++){
//1-ый шаг
digitalWrite(input1,HIGH);
digitalWrite(input2,LOW);
digitalWrite(input3,LOW);
digitalWrite(input4,HIGH);
delayMicroseconds(800); //задержка между шагами регулирует скорость двигателя
//2-ой шаг
digitalWrite(input1,LOW);
digitalWrite(input2,HIGH);
digitalWrite(input3,LOW);
digitalWrite(input4,HIGH);
delayMicroseconds(800);
//3-ий шаг
digitalWrite(input1,LOW);
digitalWrite(input2,HIGH);
digitalWrite(input3,HIGH);
digitalWrite(input4,LOW);
delayMicroseconds(800);
//4ый шаг
digitalWrite(input1,HIGH);
digitalWrite(input2,LOW);
digitalWrite(input3,HIGH);
digitalWrite(input4,LOW);
delayMicroseconds(800);
//для полного оборота надо совершить несколько циклов по 4 шага
}
}
Пардон! Чтобы шаговик ровно через 360 ГРАДУСОВ остановился.
Причина явная, после завершения цикла 50шагов по 4 позиции (200х1.8 = 1 целый оборот) нет ничего, что могло бы задержать порограму, цикл повторяется снова и снова. Место для творчества - 57 строка.
byte i = 0; while (i < 200) { // 360 град - это 200 шагов при 1,8 гр/шаг i++;Шаговик не слушается
Построже с ним!
А с чего ему останавливаться, если у Вас это всё в loop'е стоит и каждый раз повторяется?
Спасибо парни! Разобрался!