Генератор сигналов прямоугольной и синусоидальной формы на Arduino: схема и программа
Главная » Обзоры
Каждый инженер, увлекающийся электроникой, на определенном этапе своей деятельности мечтает о создании своей мини лаборатории. Мультиметр, осциллограф, генератор сигналов специальной формы, источник питания, трансформатор – вот лишь минимальный обязательный набор для подобной лаборатории. Конечно, сейчас все это можно купить, но чтобы сэкономить свои деньги, часть из этих устройств можно сделать самостоятельно на основе платы Arduino. Например, генератор сигналов или осциллограф.
В этой статье мы рассмотрим как на основе платы Arduino достаточно просто сконструировать генератор сигналов прямоугольной и синусоидальной формы. При формировании сигналов прямоугольной формы данный генератор может формировать прямоугольную волну с перепадами уровней 5V/0V с частотой от 1 Гц до 2 МГц. Частотой формируемого сигнала можно будет управлять с помощью инкрементального энкодера. Коэффициент заполнения (цикл занятости) данного сигнала будет равен 50%, но его можно изменить, внеся соответствующие изменения в программу. Рассматриваемый нами генератор не является промышленным устройством и его не рекомендуется использовать на серьезном производстве, но для домашних условий использования он вполне подойдет.
Также на нашем сайте вы можете посмотреть проекты более «продвинутых» генераторов для формирования сигналов прямоугольной и синусоидальной формы:
- генератор сигналов на Arduino и DDS модуле AD9833;
- генератор перестраиваемой частоты 10 кГц – 225 МГц на Arduino и модуле Si5351.
Если же вам нужно исключительно простое решение для формирования сигналов прямоугольной формы с частотой до 1 МГц с помощью платы Arduino, то рекомендуем этот проект.
Работа схемы
Схема генератора сигналов на основе платы Arduino представлена на следующем рисунке.
Плата Arduino Nano управляет всеми процессами в схеме. ЖК дисплей используется для отображения частоты формируемого сигнала, а с помощью углового кодера производится установка частоты сигнала. Также на нашем сайте вы можете прочитать статью о подключении инкрементального энкодера к плате Arduino.
Схема запитывается от USB кабеля Arduino. Необходимые соединения в схеме представлены в следующей таблице.
Контакт платы Arduino | Куда подключен |
D14 | контакт RS ЖК дисплея |
D15 | контакт RN ЖК дисплея |
D4 | контакт D4 ЖК дисплея |
D3 | контакт D5 ЖК дисплея |
D6 | контакт D6 ЖК дисплея |
D7 | контакт D7 ЖК дисплея |
D10 | to Rotary Encoder 2 |
D11 | to Rotary Encoder 3 |
D12 | to Rotary Encoder 4 |
D9 | выход прямоугольного сигнала |
D2 | контакт D9 платы Arduino |
D5 | выход SPWM сигнала |
В схеме мы будем формировать прямоугольную волну (сигнал прямоугольной формы) на контакте D9 платы Arduino. Его частоту мы будем регулировать с помощью углового кодера. Для формирования синусоидального сигнала мы будем формировать SPWM сигнал (синусоидальный ШИМ (широтно-импульсной модуляции) сигнал) на контакте D5, его частота будет зависеть от частоты сигнала прямоугольной формы, которая будет подаваться на контакт D2 и будет действовать как прерывание и затем мы с помощью процедуры обработки (обслуживания) прерывания будем управлять частотой синусоидального сигнала.
Вы можете собрать схему проекта на макетной или даже на печатной плате, но мы решили спаять ее на перфорированной плате, в результате у нас получилась конструкция, показанная на следующих рисунках:
На самостоятельную проработку
Рейтинг
( 2 оценки, среднее 4.5 из 5 )
Понравилась статья? Поделиться с друзьями:
Проекты на Arduino и их моделирование / Habr
Многие из вас уже знакомы с таким весьма интересным и удобным в разработке “конструктором” как — Arduino. Эта статья — один из подходов к разработке и реализации проектов на Arduino.
Эта статья описывает исключительно этап моделирования схемы, проектировка устройства до сборки и программное обеспечение для этого в рамках создания проекта на Arduino.
Основные этапы проекта
Работа над проектом на базе Arduino, как и робота над любым другим проектом включает в себя стандартные этапы.
Основные действия можно описать следующим образом:
Этап | Описание |
---|---|
Идея | На этом этапе нам надо понять какие задачи будет решать наше устройство и что от него нужно. |
Условия реализации | Сколько ресурсов мы готовы потратить и какая итерационная трата самого устройства нам нужна (расходники, электричество). |
Элементы | Одна из сложных задач, учитывая большое разнообразие элементной базы, — выбор элементной базы. Облегчается за счет следующего этапа. |
Моделирование схемы | Создание виртуальной схемы/модели, подбор элементов и нахождения ошибок на этапе моделирования. |
Скетч | Создание программы, которая будет выполняться микроконтроллером. Одна из двух основных составляющих работы схемы, имеет также подпункт об использовании библиотек и алгоритма работы. |
Сборка | Окончательная сборка схемы, её настройка и проверка выполнения задач. |
Хочу предупредить, что для выполнения отдельных больших проектов может потребоваться поэтапная разработка. Таким образом, в случае подключения множества элементов имеет место быть последовательное подключение и проверка работы каждого элемента отдельно и вместе, в том числе совместимость и правильность работы кода для Arduino.
Чтобы n-ный раз не повторять других авторов пишущих про Arduino, далее я рассмотрю именно работу с программой Fritzing.
Больше по теме самой Arduino можно почитать тут, тут или на официальном сайте Arduino.
Моделирование схем
Основная проблема в создании проекта — его описание и моделирование на ранних этапах, так вот с Arduino все гораздо легче!
Любую схему можно проверить, воспользовавшись удобным редактором схем, который также может и моделировать саму программу.
Изучая этему создания проектов на Ардуино, я нашел такую программу как — Fritzing!
Удобный интерфейс бесплатной, по сути, альтернативной IDE для Arduino позволяет смоделировать схему любой сложности и с любыми элементами, которые мы бы хотели. Большинство стандартных элементов уже есть в библиотеке программы, много создано сообществом или можем создать сами, благо программа позволяет нам это сделать.
Пооконно пройдемся по программе
Окно «Добро пожаловать»
Содержит информацию об открытых ранее проектах, возможностях новых версий и изменения программы.
Окно «Макетная плата»
Здесь происходит основная работа, а именно сборка и разводка проводов схемы. Так, тут мы выберем (правое меню) элементы, объединим их выводы в соответствии с нужным нам алгоритмом действия и подключения, для удобствам можем поменять цвета проводов (как на схеме). Данную схему можно сохранить в виде изображения.
Экспорт Макетной платы как изображения
Окно «Принципиальная схема»
Пример завершенной автотрассировки
Окно «Печатная плата»
Тут можно создать трассировку дорожек для будущей печатной платы, сделать ее макет и получить на выходе готовый для создания макет.
Окно «Код»
В окне «Код» есть возможность написать скетч для своей платы и протестировать не выходя из программы. Просто подключаем Arduino, выбираем какая именно плата у нас, выбираем порт и загружаем скетч на плату.
Программа также может помочь в загрузке кода (скетч) в Arduino и в моделировании печатной платы (разводка дорожек, размещение элементов и т. д.).
Полезные ссылки
- Проекты Fritzing
- Форум с элементами
- Создать элемент самому
Примеры собраных в Fritzing схем
Схема с использыванием модуля RFID
Схема с использованием дисплея и модуля барометра
Заключение
Опробовал эту программу в обучении и создании минимальных проектов на базе Arduino и решил поделиться этой удобной и полезной, фактически, IDE для Arduino. В поисках подходящих комплексных программных решений остановился на этой из-за большого функционала программы. Итог — завершенные 7 проектов на базе Arduino!
Компоненты печатной платы Arduino Uno
Arduino — это платформа для прототипирования электроники, которая позволяет легко создавать интересные и полезные проекты, изучать электронику и быстро тестировать новые идеи. В этой статье мы подробно рассмотрим каждую часть печатной платы Arduino Uno, чтобы лучше понять, как Arduino работает на аппаратном уровне.
Микроконтроллер ATMEGA328
Сердцем Arduino является микроконтроллер ATMEGA328. ATMEGA328 изначально предназначалась для систем промышленной автоматизации, и работа с ней напрямую требует продвинутых навыков электротехники и программирования. Arduino был разработан, чтобы упростить программирование и подключение устройств к микроконтроллеру ATMEGA328.
Микроконтроллер ATMEGA328 прикреплен к печатной плате гнездом с гнездом, поэтому его можно снять с печатной платы:
Контакты GPIO
Контакты на верхней и нижней части платы являются входом и выходом общего назначения (GPIO ) булавки. Контакты GPIO используются для подключения внешних цепей, датчиков и других устройств к Arduino:
Цифровые контакты
Цифровые контакты могут подавать высокий (5 В) или низкий (0 В) сигнал на внешние компоненты и устройства. Некоторые из цифровых контактов имеют специальные функции, которые будут объяснены ниже. Цифровые контакты помечены от 0 до 13:
Аналоговые контакты
Аналоговые контакты могут генерировать или обнаруживать любое напряжение от 0 до 5 В. Они помечены от A0 до A5:
Контакты питания и заземления
Контакты питания и заземления могут подавать 5 В или 3,3 В на внешние устройства и цепи:
Контакты SDA и SCL
Контакты SDA и SCL используются для I2C связь:
Контакты Tx и Rx
Контакты TX и RX используются для связи UART:
Контакты широтно-импульсной модуляции
Контакты, помеченные волнистыми линиями, являются контактами широтно-импульсной модуляции:
Кнопка сброса
Кнопка сброса перезапускает Arduino и запускает скетч с самого начала:
Кристаллический генератор
Кристаллический генератор дает Arduino возможность отслеживать время и генерировать сигналы широтно-импульсной модуляции и последовательной связи. Кварцевый генератор имеет частоту 16 МГц, что означает, что Arduino может выполнять двоичные инструкции с частотой 16 МГц или 16 миллионов раз в секунду:
Блок питания
Блок питания находится в нижней левой части печатной платы Arduino:
Гнездо питания
Питание Arduino может осуществляться от источника 5 В, подаваемого по кабелю USB. Но для запуска Arduino вдали от компьютера он может питаться от адаптера питания от 7 до 12 В переменного тока в постоянный. Адаптер питания подключается к Arduino через входной разъем питания:
Развязывающие конденсаторы блока питания
Развязывающие конденсаторы блока питания фильтруют поступающее питание для уменьшения скачков напряжения, которые могут повредить плату:
Регулятор напряжения
Регулятор напряжения снижает входное напряжение от 7 до 12 вольт до 5 вольт, что является рабочим напряжением Arduino:
USB-разъем
Программы загружаются с вашего компьютера в Arduino с помощью USB-соединения. Последовательные данные, сгенерированные Arduino, также отправляются через USB на ваш компьютер, когда они отображаются на последовательном мониторе. USB-кабель также может питать Arduino, когда он подключен к компьютеру. Это разъем для кабеля USB:
Чип управления USB
Чип управления USB представляет собой микроконтроллер ATMEGA16U2. Он контролирует все соединения USB между Arduino и вашим компьютером:
Контакты для программирования микросхемы управления USB
Эта группа контактов представляет собой разъем последовательного программирования (заголовок ICSP) для контроллера USB. Эти контакты используются для программирования и перепрошивки прошивки на ATMEGA16U2:
ATMEGA328 Programming Pins
Эти контакты являются контактами ICSP для ATMEGA328. Они используются для программирования и перепрошивки прошивки на ATMEGA328:
Светодиод на контакте 13
Это светодиод для поверхностного монтажа, который подключен к цифровому контакту 13. Всякий раз, когда контакт 13 находится в состоянии высокого напряжения, светодиод загорается:
Светодиоды Tx и Rx
Светодиоды TX и RX горят при передаче данных между Arduino и вашим компьютером:
Индикатор питания
Индикатор питания загорается при включении питания Arduino:
Блог для производителей от Circuito.
iolang=’en’)>
Блог для производителей от Circuito.io Сообщение в блоге