#include <SD.h>
#include "DriversStepper.h"
const int CSPin = 10;
File root;
enum StepperParams{
STEPS = 0,
CLKWISE = 1,
DLYTIME = 2,
};
int size;
int idx = 0;
const int dirPin = 7;
const int stepPin = 8;
DriversStepper Stepper(dirPin, stepPin);
void setup()
{
Serial.begin(115200);
Serial.print("Initializing SD card... ");
if (!SD.begin(CSPin)) { //Если ошибка инициализации, то блокирование работы
Serial.println("Card initialization failed!");
while (1);
}
//Пример чтения из файла
File textFile = SD.open("wokwi.txt");
size = textFile.size();
int rawArray[size];
if (textFile) {
while (textFile.available())
{
rawArray[idx] = (int)textFile.read() - '0';
idx++;
}
textFile.close();
}
else {
Serial.println("error opening wokwi.txt!");
}
int arg = 0;
int multiplier = 1;
int steps;
int clkwise;
int dlytime;
// Serial.println();
// for(int i = 0; i < size; i++){
// if(rawArray[i] < 0 && rawArray[i - 1] < 0){
// Serial.println();
// }
// else if(rawArray[i] < 0){
// Serial.print("|");
// }
// else{
// Serial.print(rawArray[i]);
// }
// }
Serial.println();
for(int i = 0; i < size; i++){
if(rawArray[i] < 0 && rawArray[i - 1] < 0){
Serial.print("Steps: "); Serial.print(steps); Serial.print(", Clkwise: "); Serial.print(clkwise);
Serial.print(", Dlytime: "); Serial.println(dlytime);
Stepper.Exec(steps, clkwise, dlytime);
arg = 0; multiplier = 1;
steps = 0; clkwise = 0; dlytime = 0;
continue;
}
else if(rawArray[i] < 0){
multiplier = 1;
arg++;
continue;
}
switch (arg){
case STEPS:
intParcer(steps, rawArray[i], multiplier);
break;
case CLKWISE:
intParcer(clkwise, rawArray[i], multiplier);
break;
case DLYTIME:
intParcer(dlytime, rawArray[i], multiplier);
break;
default:
break;
}
}
}
void loop()
{
}
void intParcer(int& currentNum, int newNum, int& mPlier){
currentNum *= mPlier;
currentNum += newNum;
if(mPlier == 1){
mPlier *= 10;
}
}