Как мы уже знаем, analogWrite(pin, value) в качестве value принимает значения от 0 до 255. Если передать значение из-за пределов этого диапазона, функция сработает, но в общем случае вы получите неожиданный результат.
Оператор X % Y дает остаток от деления X на Y. Если X меньше Y, т.е. целая часть результата деления равна 0, оператор % будет возвращать X. Таким образом:
Пока brightness + 1 меньше 256, в brightness записывается значение brightness + 1
Как только brightness + 1 принимает значение 256, результатом (brightness + 1) % 256становится 0 и на следующей итерации loop() всё начинается сначала.
Оператор % работает только с целыми операндами.
В выражении (brightness + 1) % 256 скобки используются для назначения порядка действий. Операция % имеет больший приоритет, чем +, а сложение нам нужно выполнять раньше. С операциями умножения и деления оператор взятия остатка имеет одинаковый приоритет.