String
- Войдите на сайт для отправки комментариев
Пт, 16/03/2018 - 14:23
Суть такова, я пытаюсь управлять ргб лентой по блютусу через телефон. Но я дошел до проблемы когда мне нужно управлять яркостью ленты(pot). Я решил сделать через операции со строками, но ничего не заработало. Я попытался посмотреть через serial.println что выдает значение, что бы понять где ошибка, но в итоге все крякнуло(в коде). Кто нибудь может подсказать где ошибка или другой возможный вариант решения этой проблемы.
#define blu 3
#define grn 6
#define red 5
String val, pot;
int myLength, r, g, b;
void setup()
{
analogWrite(grn, 0);
analogWrite(red, 0);
analogWrite(blu, 0);
Serial.begin(9600);
pinMode(red, OUTPUT);
pinMode(grn, OUTPUT);
pinMode(blu, OUTPUT);
}
void loop()
{
if (Serial.available()){
val = Serial.readString();
myLength = val.length();
val.remove(myLength-3, myLength);
pot.substring(myLength-3, myLength);
if (val == "red")
{
analogWrite(red, pot.toInt());
}
if (val == "green")
{
analogWrite(grn, pot.toInt());
}
if (val == "blue")
{
analogWrite(blu, pot.toInt());
}
Serial.println(val);
Serial.println(pot);
}
}
Прям так и крякнуло? Громко?
И этта, почитай про сравнение строк в С. Ну хоть немношка.
http://arduino.ru/forum/obshchii/vstavka-programmnogo-koda-v-temukomment...
Из Вашего кода без всякого ущерба можно убрать строки с 23 по 36.
Астрологи объявили неделю вопросов от новичков о сравнении строк???
Не, мужики, со сравненением строк на этот раз всё в порядке. Переменная val объявлена как String, а у этого класса есть метод
Вот он и сравнивает. По идее, должно быть нормально.
ТС,
Я не понимаю фразы "в итоге все крякнуло(в коде)". Вы уж потрубитесь изъясняться внятно.
По Вашему коду, я бы поставил вывод не в конце, а в строках 19-22 после каждой строки. И тогда сразу обнаружил бы странность в строке 22, например. Даже две странности.
1. Выражение "pot.substring(myLength-3, myLength);" не имеет никакого сымсла, т.к. результат ничему не присваивается.
2. В этом выражении Вы используете pot, которая ниде и никогда не получает нкакого значения. Где Вы присваиваете что-либо переменной pot? А если нигде, то какой смысл брать от неё подстроку?