Можно ли функцией Serial.read(); принять массив байт в Ардуину?
Или как правильно принимать массив?
И можно ли Serial.read(); принять строковое значение, а не цифровое?
Можно ли функцией Serial.read(); принять массив байт в Ардуину?
Или как правильно принимать массив?
И можно ли Serial.read(); принять строковое значение, а не цифровое?
Принимай по байтно , складывай эти значения в массивМожно ли функцией Serial.read(); принять массив байт в Ардуину?
Строка это тоже массив , из строки можно также как из массива вытаскивать по одному элементуPHP код:
char Str[9] = {'c','a', 'r', 'd', 'u', 'i', 'n', 'o', '\0'};
void setup()
{
Serial.begin(115200);
}
void loop()
{
if (Serial.available() > 8)
{
for (int i=0; i < 9; i++) Str[i] = Serial.read();
}
Serial.println(Str);
delay(1000);
}
Примеры объявления
char Str[9] = {'c','a', 'r', 'd', 'u', 'i', 'n', 'o', '\0'};
char Str[ ] = "carduino";
char Str[9] = "carduino";
Последний раз редактировалось Chip; 17.12.2011 в 15:08.
Спасибо!
Вот что у меня получается:
Зашиваю скетч (на картинке), открываю сериал монитор, он ничего не отображает но ползунок прокрутки движется, то есть приходят пустые символы.
После того как отправляю в порт девять единиц (111111111 SEND), начинают валиться эти единицы, а в конце какие-то символы.
Я хотел спросить, что это за символы ?
в функции println /r/n идут. следующая строкаприходят пустые символы
напиши char Str[10];что это за символы ?
должно быть место для окончания строки. тогда не будет лишних символов
Последний раз редактировалось manu_245; 17.12.2011 в 23:03.
Спасибо, так лучше!!!!!)))))))))))))
Скажите пожалуйста, а вот так принимать массив в ардуину, будет правильно?
Или лучше как-то по другому?PHP код:
if (Serial.available() > 0) //priem ot kompa
{
inByte = Serial.read();
serialInArray[serialCount] = inByte;
serialCount++;
if (serialCount ==3)
{
watertemp = serialInArray[0]; //senstvaz
// volts = serialInArray[0]; //volts
turbo = serialInArray[1]; //kpa
pboost = serialInArray[2]; //pboost
serialCount = 0;
inByte = 0;
Serial.flush();
}
}
Я бы указал длину принимаемого массива
if (Serial.available() > длинна-1)
Вот так?
..............Всё работает!PHP код:
if (Serial.available() > 7)
{
inByte = Serial.read();
serialInArray[serialCount] = inByte;
serialCount++;
if (serialCount ==8)
Спасибо!!!
Последний раз редактировалось mebitek; 22.12.2011 в 23:28.
У меня такая же задача.
Проблема в том, что данные в массив почему-то записываются не побайтно, а посимвольно, что ли.
Т.е. если отправляю в Serial число 236, прога записывает в три ячейки массива числа 2, 3 и 6.
Что делаю не так?
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)