Рассмотрено практическое программирование микроконтроллеров AVR, в том числе популярной платформы Arduino. Рассказано, как выйти за рамки ограничений Arduino, когда следует применять прямое программирование на ассемблере, а когда использовать языки высокого уровня. Изложены общие принципы устройства микроконтроллеров AVR и их программирования, система команд, программирование таймеров, арифметические операции, память, интерфейсы, режимы энергосбережения и сторожевой таймер, программы реального времени, обмен данными с персональным компьютером. Особое внимание уделено переносу типичных Arduino-проектов на ассемблер. Даны готовые рецепты для программирования большинства основных функций современной микроэлектронной аппаратуры. Для учащихся, инженерно-технических работников и радиолюбителей.