vselax, с просто контроллером все просто, но требует определенных знаний. Arduino - это попытка все это упростить - более высокоуровневый язык программирования, простое программирование (в контроллер изначально залита минимальная программуля, которая умеет по ком-порту принять прошивку и запустить ее.
Почти все (или даже просто все) входы/выходы контроллера выведены на контакты (по типу макетки), и дальше что навесить - ваше дело. Вся набивка платы контроллера - это обвязка микроконтроллера и порт программирования (COM или USB, который - то же COM эмулирует.
Есть и готовые платы расширения (шильды), которые могут подключаться каскадно (типа как на общую шину).
А вот среда разработки - позволяет отвязаться (до определенной степени) от типа железа. Да и язык там неплохо заточен для управления RT процессами и оторван от уровня абстракции внутренних регистров контроллера/работы со стеком и т.п. особенности внутренней архитектуры контроллера (все что важно - число и типы портов ввода/вывода).
Но не буду вам тут восхвалять Arduino - это по сути конструктор для школьника, но позволяет относительно просто реализовать многие довольно серьезные штуки (от умных домов, до роботов). Склепать это напрямую на контроллере - тоже можно (и это будет оптимальнее как по размерам так и, возможно, по производительности), но такое решение требует чуть больше навыков и знаний (начиная от умения делать платы, находить нужные элементы, паять, до знания особенностей внутренней архитектуры разных контроллеров и, порой, умения программировать на ассемблере, да и программатор нужен).