увеличить как часто Arduino Uno записывает данные - PullRequest
0 голосов
/ 14 ноября 2018

В настоящее время я использую Arduino Uno для записи данных со светоизлучающей схемы на мой компьютер, чтобы измерить, как быстро падают семена, чтобы, в свою очередь, измерить конечную скорость этих семян.

В настоящее время он записывает показания напряжения в цепях примерно каждые 15 миллисекунд.

Тем не менее, мне нужно, чтобы он записывал напряжение чаще, чтобы захватить семена, которые маленькие и быстро падают.

  • Возможно ли это с Arduino Uno?
  • Нужно ли использовать что-то еще?

Код, который я использую, вставлен ниже. Это довольно простой код, но я его не писал, поэтому не знаю, как его редактировать, чтобы узнать, может ли он записывать чаще.

    //int sensorValue_1;  // variable to store the value coming from the sensor
    //int sensorValue_2;
    //int sensorValue_3;
    //unsigned long time1;
    //unsigned long time2;
    //unsigned long time3;

     void setup() {
      Serial.begin(9600);          //  setup serial
    }

    void loop() {
      // read the value from the sensor:
      //analogRead(A0);
      //delay(2);
      Serial.print(analogRead(A0));
      Serial.write(' ,');
      Serial.print(millis());
      Serial.write(' ,');

      //analogRead(A1);
      //delay(2);
      Serial.print(analogRead(A1));
      Serial.write(' ,');
      Serial.print(millis());

      Serial.write('\n');
    }

Ответы [ 2 ]

0 голосов
/ 15 ноября 2018

Зачем использовать аналогRead ()? Конечно, чтобы измерить скорость, вы измеряете время прохождения семян через две точки на известном расстоянии друг от друга? Это может быть цифровой импульс.

Я бы использовал прерывания на двух разных выводах, start и stop. Обработчик прерываний будет просто записывать метку времени при срабатывании. Основной цикл проверит оба значения, выполнит вычисления и сообщит результат.

0 голосов
/ 14 ноября 2018

Вы можете увеличить скорость своего кода, изменив скорость передачи в бодах до 115200. Это значительно ускоряет обмен данными между вашим ПК и Arduino, поэтому программа может записывать больше данных за один и тот же период времени.

Это будет новый код:

void setup() {
  Serial.begin(115200);          //  setup serial
}

void loop() {
  Serial.print(analogRead(A0));
  Serial.write(',');
  Serial.print(millis());
  Serial.write(',');

  Serial.print(analogRead(A1));
  Serial.write(',');
  Serial.print(millis());

  Serial.write('\n');
}

При использовании Serial Monitor для Arduino для просмотра данных вы можете изменить скорость передачи в правом углу с 9600 бод до 115200 бод насм. правильные данные.

Вы можете даже изменить скорость передачи в бодах на еще более высокую скорость, например 1000000, но я раньше не проверял это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...