UART - SD Card

Нет ответов
sfm
Offline
Зарегистрирован: 17.08.2014

помогите пожалуйста выровнять кусочек кода. давненько сделал лазерный гравер, лазер бюджетный рисует долго, решил сделать автономку, столкнулся с проблемой. есть ардуино про мини + картридер. на карте памяти построчний G-kod цыфри буквы выглядит примерно так 

G71
M08
G0 F600
G1 F150
M05
G0 Y0 X0.38
M03
G1 Y0 X0.5

с карты памяти считываєтся строчка, отправлеется в станок, на что станок должен ответить принял команду "ок" или "error: Bad number format" вобщем немогу обработать, и следующяя команда "ок" готов принять следуюцюю команду.

набросал вот такой кодик 

#include <SPI.h>
#include <SD.h>
#include <SoftwareSerial.h>
SoftwareSerial cnc(8, 9);
const int chipSelect = 10;
//#define CMD_MAX_TIME 10000
File logFile;
void setup()
{
  pinMode(SS, OUTPUT);
  SD.begin(chipSelect);
  Serial.begin(115200);
  cnc.begin(115200);
}

void loop()
{
  File dataFile = SD.open("cat.cnc");
  if (dataFile){
    while (dataFile.available())
    {
      char rByte = dataFile.read();
      Serial.write(rByte);
      cnc.print(rByte);
      if (rByte == 13)
      {
        rByte = Serial.read();
        if (rByte != -1)
        {
         cnc.print(rByte);
        }
          while (rByte != 111 ) { // Выход по timeOut
          rByte = Serial.read();
          if (rByte != -1)
          {
            cnc.print(rByte);
          }
        }
        cnc.print(rByte);
      }
    }
    dataFile.close();
  }
  else {Serial.println("error opening cat.cnc");}
}

 

SoftwareSerial cnc - виртуальный порт в котором смотрю лог

первая проблема ето код команды "ок" я думал он "111" но как оказалось ето лишь первая буква "о"

и в результате получился вот такой лог:

G71

Grbl 0.9i ['$' foo
M08
r help]
erroo
G0 F600
r: Unsuppoo
G1 F150
rted coo
M05 S3000
mmand
oo
G0 Y0 X0.38
k
oo
M03
k
oo
G1 Y0 X0.5
k
oo
M05
k
oo
G0 Y0 X0.63
k
oo
M03
k
oo
G1 Y0 X0.75
k
oo
M05
k
oo
G0 Y0 X1.5
k
oo
M03
k
oo
G1 Y0 X1.63
k
oo
M05
k
oo
G0 Y0 X4.13
k
oo
M03
k
oo
G1 Y0 X4.25
k
oo
M05
k
oo
G0 Y0 X4.38
k
oo
M03
k
oo
G1 Y0 X4.5
k
oo
M05
k
oo
G0 Y0 X6
k
oo
M03
k
oo
G1 Y0 X6.13
k
oo
M05
k
oo
G0 Y0 X6.63
k
oo
M03
k
oo
G1 Y0 X6.75
k
oo
M05

......................

помогите пожалуйста подружить карту памяти с портом.

автономка должна отследить ети 2 "ок" первый "ок" или ошибка автономка игнорирует вернее будет сигнализировать не екран *обработчик напишу. и должна ждать *если станок на паузе, ждать очень долго, и на появления 2 "ок" должон отправить следующюю строку. давно мучюсь, и немогу написать. да можно купить автономку, можно купить ардуино мега и залить готовую прошивку, но автономка будет стоять дороже гравера. а он делался с подручных материалов. сатнок собран на ардуино нано, автономку хочу сделать на промини + екран 2004. пока застрял на карте памяти