Вы правы, считая, что это аппаратное обеспечение! Ваш код активировать двигатель в порядке. Однако ...
Цифровые выводы Arduino не способны питать двигатель. Не повредите свою доску, пытаясь ее продолжить . См. этот пост .
В кратком изложении (в интересах неизбежно мертвых ссылок):
Вам необходимо понять разницу между сигнальной линией и линия электропередачи.
Сигнальные линии используют напряжение (я) и / или ток (ы) для передачи информации (аналоговой цифровой), но обычно работают при очень низких уровнях мощности (чем меньше, тем лучше для сигналов, так как его потеря мощность).
Линия электропередачи несет мощность.
Никогда не путайте два.
Выводы цифрового сигнала имеют очень низкий выходной ток. Достаточно для питания светодиода, но не двигателя. Используйте транзистор между цифровым выходом и отдельным источником питания для питания ваших двигателей.
Помимо : любой, кто знает что-либо о схемотехнике, может поправить меня: у меня есть только базовый c знания в этой области