Нужна помощь в проверке скетча.

Rus-Skipper
Offline
Зарегистрирован: 29.12.2015
Доброго времени суток. Я сделал станок для выжигания по дереву,
Работает иногда правда самопроизвольно возрастает скорость предачи данных Ардуины с компьютером. Посмотрите скетч, может криво написал, на си++ писал первый раз.
int stp = 9; //контакт подключения к шагу 9
int dir = 8; // соединить контакт 8 В режим шагнуть
int stp1 = 7; //контакт подключения к шагу 9
int dir1 = 6; // соединить контакт 8 В режим шагнуть
int Distance = 0; // записываем количество шагов, которое было совершено
int Distance1 = 0; 
long delayTime;
int inSize = 0; 
char str[128]; 

void setup()
{  
Serial.begin(9600);  
  pinMode(stp, OUTPUT);
  pinMode(dir, OUTPUT);  
  pinMode(stp1, OUTPUT);
  pinMode(dir1, OUTPUT);  
}
void loop()
{  
char c;
if(Serial.available()) {
c = Serial.read();
//delayMicroseconds(600);  
if (c == 'f') { // forward

  for (int Distance=0; Distance < 2; Distance++){
      
  digitalWrite(dir, HIGH);
    digitalWrite(stp, HIGH);   
    delayMicroseconds(600);              
    digitalWrite(stp, LOW);  
   delayMicroseconds(600);  
 
 }
 inSize = inSize + 2;  
Serial.println("ok");
    }
if (c == 'r') { // reverse
 //for (int Distance=0; Distance <= 199; Distance++)
  int var ;
 var = 0;
 
while(var < inSize)
 {
 var++;  
   //Serial.println(var);  
 digitalWrite(dir, LOW);
    digitalWrite(stp, HIGH);  
   delayMicroseconds(600);           
    digitalWrite(stp, LOW);  
   delayMicroseconds(600); 
    }
   // delay(200); 
   Serial.println("ko");
    inSize=0; 
}
if (c == 's') { // step 47 шагов
  for (int Distance1=0; Distance1 < 47; Distance1++){
      
  digitalWrite(dir1, HIGH);
    digitalWrite(stp1, HIGH);   
    delayMicroseconds(600);              
    digitalWrite(stp1, LOW);  
    delayMicroseconds(600);  
 }
Serial.println("ok");
    }
}
}

 

Rus-Skipper
Offline
Зарегистрирован: 29.12.2015