В этом уроке мы отправляем устройству команды, как ему светить.
#define LED_PIN 9
// для работы с текстом существуют объекты-строки (англ. string)
String message;
void setup( )
{
pinMode(LED_PIN, OUTPUT) ;
Serial.begin ( 9600 ) ;
}
void loop( )
{
// передаваемые с компьютера данные поставляются байт за
// байтом, в виде отдельных символов (англ. character). Нам
// нужно последовательно их обрабатывать пока (англ. while)
// в порту доступны (англ. available) новые данные
while (Serial.available ( ) ) {
// считываем (англ. read) пришедший символ в переменную
char incomingChar = Serial.read ( ) ;
// не стоит путать целые числа и символы. Они соотносятся
// друг с другом по таблице, называемой кодировкой. Например
// '0' — это 48, '9' — 57, 'A' — 65, 'B' — 66 и т.п. Символы
// в программе записываются в одинарных кавычках
if (incomingChar >= '0' && incomingChar <= '9' ) {
// если пришёл символ-цифра, добавляем его к сообщению
message + = incomingChar;
} else if (incomingChar == '\n' ) {
// если пришёл символ новой строки, т.е. enter, переводим
// накопленное сообщение в целое число (англ. to integer).
// Так последовательность символов '1', '2', '3' станет
// числом 123. Результат выводим на светодиод
analogWrite(LED_PIN, message.toInt ( ) ) ;
// обнуляем накопленное сообщение, чтобы начать всё заново
message = "" ;
}
}
// посылайте сообщения-числа с компьютера через Serial Monitor
}