Продолжаем освоение платы ардиуно уно. В прошлой статье мы научились выводить информационные сообщения на экран компьютера/ноутбука.
Если вы помните, у нас с вами осталось незавершённое дело. А именно способ задание входных параметров функций Serial.print () и Serial.println (). Мы задавали параметры этих функций непосредственно в строках, где они вызывались, вместо того, чтобы задавать параметры, через переменные.
Для начала снова соберём схему с двумя светодиодами. После чего открываем программу, что мы написали в 5 уроке.
Как вы можете видеть, я дополнил второй цикл for необходимыми строками. Надеюсь, вы также выполнили это задание :-) Если же нет, тогда дополните вашу программу.
Не стоит копировать строки кода из текста статьи. Например, кавычки в вердовском документе могут не восприниматься за «кавычки» в программной среде Arduino IDE. Еще хочу сказать следующее – если с первой попытки загрузить программу в МК не удалось, стоит повторить попытку (несколько раз).
В одной из предыдущих статей я уже затрагивал вопросы касающееся использования переменных. Повторюсь. Намного практичнее вносить изменения в необходимые параметры через изменения значений переменных, что находятся вначале программы или в отдельном файле, чем рыскать в поисках нужных значений по всему коду.
До сегодняшнего момента, мы использовали переменные, что имели тип целого числа. Такими числами удобно вести подсчёт или указывать номер вывода микроконтроллера. Кроме того, данный тип занимает гораздо меньший объём памяти микроконтроллера в сравнении с другими типами. Однако при считывании данных с датчиков (например, датчик температуры) мы будем получать значения, которые состоят из целой и дробной части. Для того, чтобы работать с такими числами нам потребуется тип float (числа с плавающей точкой). Данный тип будет описан отдельно, сейчас же поговорим о строковом типе данных String.
Переменным типа String присваиваются данные заключенные в двойные кавычки.
Объявим переменные типа String.
- String greenLedText = “”;
- String redLedText = “”;
В коде программы заменим текстовые сообщения на имена переменных. Как вы можете видеть, при записи переменных в качестве входных параметров функций двойные кавычки не нужны. Но что же будет, если мы запишем имя одной из переменных в двойных кавычках? А вот сейчас мы и проверим…
Загрузим программу и посмотрим на результат. Одна строка отображается корректно, а вторая вместо того, чтобы выводить на экран необходимую информацию выводит имя переменной. Всему виной двойные кавычки.
Правило следующее: хотите вывести строку непосредственно с круглых скобок ставьте двойные кавычки, нужно вывести информацию, что присвоена строковой переменной – кавычки не ставим.
Создадим локальную переменную «приветствие» в void setup. Почему именно локальную? Во-первых, она занимает значительно меньше места в памяти микроконтроллера. Во-вторых, что мы зря что-ли обсуждали вопросы локальных и глобальных переменных, нужно теорию применять на практике. А почему создаём «локалку» именно в void setup, а всё потому, что он выполняется всего один раз.
Объявляем и присваиваем значение переменной.
String first_message = “Hello”;
Одного «hello» будет мало, нужно еще что-то. Давайте напишем что-то вроде… :-) и разобьём это на два сообщения.
- String second_message = “I am Migalka”;
- String third_message = “I want blinky”;
Вызов функций следует выполнять после строки включения (инициализации) последовательного порта.
- Serial.println (first_message);
- Serial.println (second_message);
- Serial.println (third_message);
Загрузим программу и посмотрим на результат. Как и планировалось, приветствие выводится один раз. Но как-то не красиво согласны? :-) Для того, чтобы второе и третье сообщение были на одной строке есть несколько вариантов:
- Заменить функцию println (second_message) на Serial.print (second_message). Для того, чтобы третье сообщение не наплывало на второе после … «Migalka» поставьте пробел.
- Соединить вместе второе и третье сообщение. sum_message = second_message + third_message;
Выбираем второй вариант. Предварительно объявим новую строковую переменную String sum_message;
Заменяем имя «second_message» на «sum_message». Если вы заменяли функцию Serial.println (second_message) на Serial.print (second_message), верните все назад, чтобы новое сообщение начиналось с новой строки, а строчку «Serial.println (third_message);» удаляем по причине ненадобности.
Загрузим программу и смотрим на результат.
Урок 6
На этом всё. Продолжение следует!)