Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Manufacturing Technology >> Производственный процесс

JX Wave Generator — Генератор сигналов на Arduino с DDS AD9833 и OLED-дисплеем

Компоненты и материалы

КомпонентКоличествоПримечание
Arduino Nano R31Подойдет практически любая модель Arduino
OLED-дисплей SH1106 I2C 128x64 (4 пина)1
Модуль DDS AD98331Генератор синусоиды/треугольника/прямоугольника
Ротационный энкодер с кнопкой1Требуется паяльник для монтажа
Модуль ротационного энкодера1Удобнее для макетной платы
Релейный модуль 5В (опционально)1Для переключения AC/DC связи выхода
Ридовое реле 5В 500 Ом1Лучше для слабых сигналов, подключается напрямую к пинам Arduino (10 мА)
Конденсатор 10 мкФ1
Конденсатор 10 нФ (полиэстеровый)1
Блок питания AC-DC 100-220В → 5В (опционально)1Для автономного питания без USB

Необходимые инструменты

Приложения и онлайн-сервисы

О проекте

Давно откладывал покупку осциллографа. После его приобретения стало понятно, что для хоббийной диагностики аудиосхем и не только нужен недорогой генератор сигналов. Соединив увлечение электроникой и программированием, лучшее решение — собрать его самостоятельно на базе Arduino.

Основные функции

JX Wave Generator — Генератор сигналов на Arduino с DDS AD9833 и OLED-дисплеем

Краткая справочная карта управления

JX Wave Generator — Генератор сигналов на Arduino с DDS AD9833 и OLED-дисплеем

Прототип

Использовался готовый релейный модуль с контактами 10А, так как под рукой не было микрoreed-реле. Это был бы лучший выбор, чтобы избежать дополнительных транзисторов, диодов и резисторов, когда силовые реле не нужны. Цифровой пин Arduino выдает максимум 40 мА, поэтому электромеханическое реле с катушкой 120/150 Ом подключить напрямую нельзя.

ОСТОРОЖНО! При работе с сетевым напряжением соблюдайте меры безопасности. Риск удара током и повреждения глаз/кожи. Берегите свою жизнь — она одна!

JX Wave Generator — Генератор сигналов на Arduino с DDS AD9833 и OLED-дисплеем
JX Wave Generator — Генератор сигналов на Arduino с DDS AD9833 и OLED-дисплеем
JX Wave Generator — Генератор сигналов на Arduino с DDS AD9833 и OLED-дисплеем
JX Wave Generator — Генератор сигналов на Arduino с DDS AD9833 и OLED-дисплеем

Программный код

Проект состоит из трёх файлов:

JX_Wave_Generator_8.7.7.ino (основная логика)

Версия 8.7.7. Мелкая ревизия от 16.01.2021. Код лицензирован по MIT. Реализована машина состояний с режимами: LOGARITHMIC, SINGLEDIGIT, SWEEP, OPTIONS и подрежимами настройки. Используются прерывания от кнопки энкодера, библиотека SimpleRotary для энкодера и адаптированная Adafruit_SH1106 для дисплея. Настройки сохраняются в EEPROM (структура config_type).

JXWG_Defs.h (определения)

Содержит: пины подключения (энкодер, реле, AD9833), константы режимов, типы волн (SQUARE, SINE, TRIANGLE), режимы связи (AC, DC, OFF), макросы для работы с EEPROM, структуру конфигурации и указатель на функцию сброса микроконтроллера.

JXWG_Graphics.h (графика)

Массивы байт в PROGMEM для всех иконок: режимы работы (лог, цифра, sweep), типы волн (квадрат, синус, треугольник), режимы связи (AC, DC, OFF), параметры sweep (min, max, step, opt, start, pause), маленькие иконки для строки состояния. Общий объём ~1148 байт флеш-памяти.

Схемы подключения

JX Wave Generator — Генератор сигналов на Arduino с DDS AD9833 и OLED-дисплеем
JX Wave Generator — Генератор сигналов на Arduino с DDS AD9833 и OLED-дисплеем

Производственный процесс

  1. Высокоскоростная фотография капель воды на Arduino Nano — DIY-триггер для вспышки
  2. Сборка Bluetooth-робота-шпиона на Arduino с управлением с телефона
  3. FlickMote: жестовое IR-пульт для умного дома на Arduino 101 и ультразвуковом датчике
  4. DIY Arduino TV-B-Gone: универсальный пульт для выключения любого телевизора
  5. Создание пользовательских LED-часов с будильником — видно с 12 метров
  6. Find Me: Умный поисковик вещей на Arduino и Bluetooth
  7. Оптимизированные решения питания для проектов на Arduino
  8. Сборка DIY VR-скейтборда на Arduino, Google Cardboard и Bluetooth
  9. Подключение Arduino Mega к GPS-модулю NEO‑6M: пошаговое руководство
  10. Крестики-нолики на Arduino с матрицей MAX7219 и картонным корпусом