void setup() {
// Открываем порт для обмена данными Serial.begin(9600); // Выводим надпись "\n\nString toInt() RGB:" Serial.println("\n\nString toInt() RGB:"); Serial.println(); // 9-й, 10-й, 11-й порты настраиваем на выход pinMode(9, OUTPUT); pinMode(10, OUTPUT); pinMode(11, OUTPUT); } void loop() { int inChar;// Создаём переменную для хранения входящего байта //Считываем входное значение с порта и записываем в inChar if (Serial.available() > 0) { inChar = Serial.read(); } if (isDigit(inChar)) { // конвертируем входящий байт в символьную переменную
// и добавляем его в поток inString: inString += (char)inChar; } // если пришел символ "," то хранящееся значение в // inString присваивается текущему цвету // счетчик цвета увеличиваем на единицу if (inChar == ',') { switch (currentColor) { case 0: // 0 = красный red = inString.toInt(); // очищаем поток для записи новых данных inString = ""; break; case 1: // 1 = зелёный green = inString.toInt(); // очищаем поток для записи новых данных inString = ""; break; } currentColor++; } // если пришел символ перевода строки // то хранящееся значение в inString присваиваем синему цвету if (inChar == '\n') { blue = inString.toInt(); // устанавливаем на выводах 9,10,11 шим сигнал // соответствующий величине хранящейся в переменных // red, green, blue. При значении 0 светодиод не горит // при значении 255 светодиод светит максимально ярко analogWrite(11, red); analogWrite(9, green); analogWrite(10,blue); // выводим в монитор порта цвет и его текущее значение Serial.print("Red: "); Serial.print(red); Serial.print(", Green: "); Serial.print(green); Serial.print(", Blue: "); Serial.println(blue); // очищаем string inString = ""; // сбрасываем счётчик currentColor = 0; } }