Встроенный в Arduino UNO светодиод подключён к контакту (пину) 13 платы. Чтобы зажечь его, надо на указанном пине установить высокий уровень, чтобы погасить — низкий.
Состоянием пина 13 управляет бит 5 (счёт от нуля) в регистре данных порта B Arduino, и нужно лишь задать этому биту требуемое значение 0 или 1. Однако невозможно задать значение только одному биту этого регистра: записать или считать можно только целиком весь регистр, байт (у него есть собственное имя PORTB). Другие пины порта могут выполнять какую-то свою функцию, поэтому менять бит 5 надо так, чтобы не затронуть другие биты:
PORTB в байтовую переменную;PORTB.Но перед этим надо настроить пин 13 на работу в режиме выхода.
Предусмотрена маска пятого бита — байт, в котором бит 5 равен 1, а остальные биты равны 0:
mask = 0b00100000.
Считать PORTB, установить биту 5 значение 1 (коротко: "установить бит 5"), не затрагивая другие биты, записать результат в порт B можно одним оператором:
PORTB = PORTB | mask;
или, в сокращённой записи
PORTB |= mask;
Считать PORTB, установить биту 5 значение 0 (коротко: "сбросить бит 5"), не затрагивая другие биты, записать результат в порт B можно, аналогично, одним оператором:
PORTB &= ~mask;
Эта же маска применяется к регистру направления DDRB для переключения пина 5 в режим выхода:
DDRB |= mask;
Нужное значение бита 5 — 0 или 1 — вводят с клавиатуры компьютера в мониторе последовательного порта Arduino IDE. Программа проверяет, какой символ был принят, и, если это '0' или '1', выполняет рассмотренный выше оператор с маской, которым, соответственно, сбрасывается или устанавливается бит 5.
Текст программы содержится в файле Ind_y_Ardu.ino, который можно получить с Github по ссылке.
Как вариант, можно получить с Github весь репозиторий цикла "Ардуино и индикаторы" и выполнить команду
git restore -s LED_builtin -- Ind_y_Ardu.ino
Файл Ind_y_Ardu.ino в рабочей области будет перезаписан версией для управления встроенным светодиодом Arduino.