String Data = ""; // Контейнер для хранения приниятой информации с ПК
bool recievedFlag = false; // Метка говорящая о том, что пришли все данные
// Setup - Функция настройки. Выполняется, после запуска один раз
void setup() {
Serial.begin(9600);
Serial.println("Start program");
// Настройка светодиода
pinMode(13, OUTPUT);
digitalWrite(13, LOW);
// Цикл который выводит числа от 1 до 100
for (int i = 1; i <= 100; i++) {
Serial.println(i);
}
Serial.println("Vvedite chislo:");
}
void loop() {
// String "Пока Serial доступен и там есть данные, то начинаем читать данные"
// char 'П' 'О' 'К' 'А'
// While
while (Serial.available() > 0) {
Data += (char)Serial.read(); // Заполняем строку введенными данными
recievedFlag = true; // Устанавливаем флаг, который говорит, что данные получены
delay(2); // Ожидание, для корректной работы
}
if (recievedFlag == true) { // если данные получены
recievedFlag = false; // опустить флаг
// \n - символ, которым заканчивается строка (он есть, но мы его не видим)
// Начало проверки буквенных Команд
if (Data == "ON\n") {
Serial.println("on");
digitalWrite(13, HIGH);
}
else if (Data == "OFF\n") {
Serial.println("OFF");
digitalWrite(13, LOW);
}
else if (Data == "Blink\n") {
Serial.println("Blink");
for (int i = 0; i <= 5; i++) {
digitalWrite(13, HIGH);
delay(500);
digitalWrite(13, LOW);
delay(500);
}
}
// Конец проверки буквенных символов
// Начало проверки введенных цифр
else {
int chislo = Data.toInt();
Serial.print("Value:");
Serial.println(chislo);
for (int i = 1; i <= chislo; i ++) {
Serial.print(i);
Serial.print(":");
// / - целочисленное деление
// % - вычисления остатка от деления.
if (i % 2 == 0) {
Serial.println("EVEN");
}
else Serial.println("ODD");
}
}
// Конец проверки введенных цифр.
// Очистка строки, где были данные. Чтобы на следующий прием она была пустой.
Data = "";
}
}