Я использую приложение для Android для отправки значений для управления сервоприводами.
Код:
char inputData[4];
char buffer[3];
void loop()
{
if(Serial.available() > 3) {
for (int i = 0; i < 4; i++){
inputData[i] = Serial.read();
}
char buffer[4];
buffer[0] = inputData[1];
buffer[1] = inputData[2];
buffer[2] = inputData[3];
buffer[3] = '\0';
int angle = atoi(buffer);
Serial.write(angle);
}
}
Проблема: я получаю значения + буквы A-F для адресации каждого сервопривода - A10, A180, B30 и т. Д. Теперь проблема в том, чтобы превратить это в фактическое целое число. Как вы можете видеть, я объявил массив символов для хранения целых чисел, и, как предложено в посте на форуме arduino, я добавил \ 0 в конце массива. В настоящее время Atoi возвращает случайные символы, в основном квадраты и некоторые случайные числа. Я пытался даже назначить их для строки, а затем .toInt (), но та же проблема там, в основном квадраты.
Есть идеи?
Спасибо!