Научим сервомотор работать по программе.
Подключим к Ардуино 2 сервопривода.
Запишем углы поворота на SD карту, по горизонтали и вертикали.
Пример можно использовать для перемещения видеокамеры, на заранее определённые точки.
Для примера нам понадобятся.
Сначала рассмотрим пример управления двумя сервомоторами с помощью потенциометров. А потом сохраним все эти движения на SD карту. Затем считывая значения с карты, моторы будут сами поворачиваться на определённый угол.
Для примера я установил сервомоторы один на другой, чтобы добиться перемещения по горизонтали и вертикали.
Это фото одного из моих проектов, где я подключал лазер и управлял с помощью сервоприводов лазерным лучом.
Теперь управляя нижним мотором, мы сможем охватить пространство в 180⁰ по горизонтали, а управляя верхним - 180⁰ по вертикали.
Для начала нам надо считать и сохранить углы поворотов на SD карту. Для этого используем 2 потенциометра. Один для вращения по горизонтали, другой по вертикали. К слову сказать, что сервоприводов может быть больше чем два, всё зависит от модели Ардуино которую вы используете.
В архиве, который находится на моём сайте «Ардуино для начинающих» два скетча.
Первый нужен для сохранения значений на SD карту.
Второй, для считывания с SD карты и управление сервомотором.
Сначала устанавливаем первый скетч, и управляя потенциометрами вращаем сервомоторы в разные стороны.
Записав все эти значения, можно переходить ко второму этапу.
Устанавливаем второй скетч.
Потенциометры теперь можно отключить, они нам больше не понадобятся.
Теперь скетч считывает записанные данные с карты и управляет движением сервопривода.
Посмотрим схему подключения.
Потенциометры подключены по обычной схеме.
Два крайних вывода соединим с плюсом и минусом питания, а центральные контакты подключены к аналоговым входам А0, и А1, Ардуино.
Нужно обязательно подключать к аналоговым входам.
Таким способом мы будем подавать различное напряжение от 0 до напряжения питания.
Эти значения будут поступать на АЦП(Аналого-цифровой преобразователь), который преобразует их в значение от 0 до 1023. Так как АЦП в Ардуино 10 битный, то есть это значит 2 в 10 степени, то диапазон преобразования будет 1024.
Модуль МикроSD карты подключаем к шине SPI.
Три вывода с модуля, которые подключены к плате, к контактам D11, D12, D13 надо подключать именно так, а вот вывод чипселект(CS) можно подключать к любому цифровому выводу.
Я подключил к D4.
Сервоприводы SG 90, которые я использовал, довольно слабые, и их можно подключить к контакту +5 вольт платы.
Но лучше подключать к отдельному источнику напряжения!
Если у вас будут более мощные сервоприводы, то их надо подключать к контактам VIN или к отдельному источнику питания.
И не забудьте соединить земли всех источников питания!
Сигнальные выводы можно подключать к любым цифровым выводам.
Я подключил к D9 и D10. И в скетче прописаны именно эти контакты.
Никаких дополнительных библиотек устанавливать не придётся, так как они уже есть в среде разработки Arduino IDE.
Теперь немного информации.
- SD карта должна быть отформатирована в формате FAT16 или FAT32.
- Файлы должны быть в формате 8.3. То есть имя файла не больше 8 символов, а расширение 3 символа.
- Библиотека SD работает по шине SPI, поэтому задействованы пины 11, 12, 13.
И самое главное, чуть не забыл.
Вы можете сами создать текстовой файл с нужными значениями. Например, указав на какое значение нужно поворачиваться тому или другому сервомотору.
Запись должна быть в том формате, что и на видео.
Работу скетча я здесь описывать не буду, так как подробно всё рассказал в видео.
Ну и вывод.
Использование SD карты освобождает микроконтроллер от использования встроенной памяти, которой и так немного. И добавляет огромное поле для внешних файлов.
Если вам нравятся мои видео или статьи, то вы можете поставить лайк, это очень поможет мне в продвижении канала.
Также вы можете написать в комментариях, что бы вы хотели ещё увидеть или прочитать.
У меня более 150 видео и возможно я уже снял урок по этой теме, и его осталось только выложить на Дзэн.
Спасибо за то, что досмотрели или дочитали до конца.
А пока на этом всё.
До скорой встречи.