Сравнить данные последовательного чтения и значение аналогового чтения
Я собираюсь отправить вход в Arduino через последовательную связь. Эта переменная должна храниться в переменной. Те данные, которые я посылаю через последовательную связь, должны сравниваться с аналоговым входным значением, и если оба становятся равными, то нужно выполнить какое-то действие.
Данные, отправляемые в Arduino через последовательную связь, отправляются только один раз. Таким образом, программа должна сохранить значение и, следовательно, сравнить его со значением аналогового входа. Что я должен использовать, строку или преобразование строки?
2 ответа
Ваши аналоговые данные с использованием analogRead() будут иметь значение int в диапазоне 0-1023 (хотя, в зависимости от вашего датчика, оно может быть намного меньше этого значения, но это минимальное / максимальное значения). Таким образом, ваше целевое значение, отправленное через последовательный порт, может быть просто сохранено в переменной int с помощью parseInt ().
Вы должны определить конец строки. Если вы посылали односимвольные команды или байтовые значения, то вы можете просто указать значение Serial.read() в "int". Где, как я подозреваю, вы посылаете текстовые номера, например, "123" или строку "1","2",3","\n".
Будет работать либо char*(string), либо String. Но вы должны построить "строку" из serial.read и определить конец строки. Следовательно, отмечая использование "\ n". Или вы можете создать его так, чтобы он всегда ожидал одинакового количества символов. например, "0","2",3"