Задать вопрос
@Roman_Popov
лужу, паяю, линуксом управляю

Читать значения переменных из файла?

На SD-карте файл, который содержит строки, состоящие из двух трехзначных чисел. Примерно так:
123 567
137 457
265 356
...

Разделитель можно использовать любой, не только пробел.
Требуется считывать эти данные построчно и присваивать значения двум переменным. В конечном счете посредством несложных вычислений это будут углы поворотов для двух серв.
Пробовал так:
#define N_SERVO 2
int PIN_SERVO[N_SERVO] = {2,3};
Servo servo[N_SERVO];

for (int i = 0; i < N_SERVO; i++)
{
  servo[i].attach(PIN_SERVO[i]));
}

data = SD.open("1.txt", FILE_READ);
while (data.available())
{
  for (int i = 0; i < N_SERVO; i++)
  {
   servo[i].write(data.parseInt( ));
  }
}
data.close();


Считывает только одну первую ЦИФРУ, даже не число, и закрывает файл.
  • Вопрос задан
  • 2142 просмотра
Подписаться 2 Оценить Комментировать
Решения вопроса 1
@Roman_Popov Автор вопроса
лужу, паяю, линуксом управляю
Разобрался сам. Привычка решать задачи в общем виде подвела...
Выкинул все циклы for. В цикле while:
while (myFile.available()) {
      int i=myFile.parseInt();
      int j=myFile.parseInt();
      int val = ((i*0.4905) - 55.0224) + 0.51;    
      myservo.write(val);
      delay (20);
      int val1 = ((j*0.4905) - 55.0224) + 0.51;    
      myservo1.write(val1);
      delay (20);
    }
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
slimus
@slimus
Symfony, Golang
Не работал с sd но судя по документации (https://www.arduino.cc/en/Tutorial/ReadWrite) нужно делать data.read()
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы