Акции
Блог
О 3DiY
  • О компании
  • Реквизиты
  • Партнеры
  • Клиенты
  • Вакансии
Оплата
Доставка
Гос. закупки
Товары под заказ
ВК Видео
Отзывы
Услуги
  • 3D печать
    • 3D печать пластиком FDM/FFF
    • 3D печать фотополимером
Контакты
  • Как до нас добраться
    8 (800) 500-45-93
    8 (800) 500-45-93отдел продаж Россия
    8 (495) 565-35-93отдел продаж Москва
    E-mail

    info@3d-diy.ru — отдел продаж

    support@3d-diy.ru — тех. поддержка

    Адрес
    Москва, Павловская улица, 27с7
    м. Тульская
    Режим работы
    пн – пт 11:00—19:00
    8.05 – 11.05 не работаем
    3DIY
    3D принтеры
    Материалы для 3D печати
    Комплектующие 3D принтера
    Arduino и робототехника
    Комплектующие ЧПУ станка
    Инструменты
    Запчасти для 3D принтеров по брендам
    Товары снятые с продажи
    • 3D принтеры
      • Печать пластиком (FDM/FFF)
        Печать пластиком (FDM/FFF)
      • Печать фотополимером (SLA/DLP/LCD)
        Печать фотополимером (SLA/DLP/LCD)
      • Печать воском (MJP)
        Печать воском (MJP)
      • Для дома
        Для дома
      • Для бизнеса
        Для бизнеса
      • Для производства
        Для производства
      • Наборы для сборки
        Наборы для сборки
      • Промышленные
        Промышленные
      Phrozen
      FlyingBear
      QIDI
      CreatBot
      FlashForge
      Bambu Lab
      ERYONE
      Elegoo
      eSUN
      Creality
      BIGTREETECH
      Anycubic
    • Материалы для 3D печати
      • Пластики
        Пластики
        • ABS
        • PLA
        • PETG
        • HIPS
        • PVA
        • FLEX (TPU)
        • Nylon/PA (Нейлон)
        • PC (Поликарбонат)
        • PEEK
        • POM (Полиацеталь)
        • PP (Полипропилен)
        • Резина
        • Стеклонаполненные
        • Термочувствительные
        • Угленаполненные
        • SBS
        • Светящиеся
        • Металлические
        • Спец. пластик
        • Пластик для 3D ручек
      • Фотополимеры
        Фотополимеры
        • Стандартные
        • ABS-типа
        • Гибкие
        • Водосмываемые
        • Выжигаемые
        • Инженерные
        • Стоматологические
        • Для хобби
      Phrozen
      FlyingBear
      QIDI
      CreatBot
      FlashForge
      Bambu Lab
      ERYONE
      Elegoo
      eSUN
      Creality
      BIGTREETECH
      Anycubic
    • Комплектующие 3D принтера
      • Электроника
        Электроника
        • Платы управления
        • Шаговые двигатели (ШД)
        • Драйверы ШД 3D принтеров
        • Драйверы шаговых двигателей ЧПУ
        • Дисплеи
        • Датчики и модули
        • Блоки питания
        • Реле
        • Концевые выключатели
        • Вентиляторы      
          • Вентиляторы осевые
          • Вентиляторы радиальные (улитки)
          • Решетки и фильтры для вентиляторов
        • Провода, кабели и разъемы
      • Механика
        Механика
        • Зубчатые шкивы
        • Зубчатые ремни
        • Трапецеидальные винт-гайки
        • Шарико-винтовые передачи (ШВП)      
          • Гайки ШВП
          • Модули крепления гаек ШВП
          • Обратотанные ШВП
          • Опоры ШВП
        • Соединительные муфты
        • Ролики для зубчатых ремней
        • Цилиндрические направляющие
        • Рельсовые направляющие      
          • Профильные направляющие HIWIN
          • Профильные направляющие КИТАЙ
        • Держатели вала
        • Корпусные детали      
          • Корпуса
          • Апгрейды
          • Комплектующие для корпусов
        • Запчасти OpenBuilds
        • Подшипники качения
        • Пружины
      • Нагревательные столы и сопутствующие
        Нагревательные столы и сопутствующие
        • Нагревательные платформы
        • PEI пластины
        • Стекла и Зеркала
        • Теплоизоляция
        • Основания для столов
        • Силиконовые проставки (пружины)
        • Термисторы
        • Зажимы-фиксаторы
        • Пружины
      • Экструдеры
        Экструдеры
        • Экструдеры и механизмы подачи
        • Хотэнды
        • Сопла
        • Термобарьеры
        • Термисторы
        • Нагревательные блоки
        • Теплоизоляция нагревательных блоков
        • Тефлоновые трубки
        • Радиаторы
        • Нагревательные элементы
        • Шестерни
        • Фитинги
        • Сопутствующие товары
      • Сушилки для пластика
        Сушилки для пластика
      • УФ-камеры
        УФ-камеры
      • Мойки
        Мойки
      • Ультразвуковые ванны (мойки)
        Ультразвуковые ванны (мойки)
      • 3D ручки
        3D ручки
      • 3D-сканеры
        3D-сканеры
      • Расходные материалы для SLA / LCD
        Расходные материалы для SLA / LCD
      • Сопутствующие
        Сопутствующие
      • Наборы для мейкеров
        Наборы для мейкеров
      • Инструменты для 3D печатника
        Инструменты для 3D печатника
      • Постобработка
        Постобработка
      • Адгезивы
        Адгезивы
      Phrozen
      FlyingBear
      QIDI
      CreatBot
      FlashForge
      Bambu Lab
      ERYONE
      Elegoo
      eSUN
      Creality
      BIGTREETECH
      Anycubic
    • Arduino и робототехника
      • Arduino
        Arduino
      • Raspberry Pi
        Raspberry Pi
        • Микрокомпьютеры
        • Дисплеи      
          • TFT-LCD дисплеи Raspberry Pi
          • IPS-LCD дисплеи Raspberry Pi
          • AMOLED дисплеи Raspberry Pi
        • Корпуса
        • Шилды
        • Камеры
        • Питание
        • Охлаждение
      • Обучающие наборы
        Обучающие наборы
      • Orange Pi
        Orange Pi
      • Одноплатники
        Одноплатники
      • Модули
        Модули
        • Платы расширения
        • Беспроводные модули
        • Интерфейсы
        • Релейные модули
        • Преобразователи питания
        • Лазерные модули
        • Аудио
        • Видео
        • Клавиатура
        • Драйверы моторов
        • Измерительные
        • Другие
      • Датчики
        Датчики
        • Аудио
        • Газа
        • Инфракрасные
        • Климатические
        • Жидкостные
        • Механического воздействия
        • Положения (акселерометры/компасы/гироскопы)
        • Пространства
        • Света и цвета
        • Тактильные
        • Тока и напряжения
      • Дисплеи
        Дисплеи
        • TFT-LCD дисплеи
        • STN-LCD дисплеи
        • LED дисплеи
        • OLED дисплеи
        • Дисплеи DWIN
        • E-Paper дисплеи
      • Механика
        Механика
        • Колёса
        • Коллекторные двигатели
        • Сервоприводы
        • Шаговые двигатели
        • Другие
        • Линейные актуаторы (приводы)
      • Макетные платы
        Макетные платы
      • Светодиоды
        Светодиоды
        • Светодиодные кольца
        • Светодиодные матрицы
        • Сегментные индикаторы
        • Светодиоды круглые
        • Другие
      • Провода и кабели
        Провода и кабели
      • Источники питания
        Источники питания
      • Радиодетали
        Радиодетали
        • Кварц
        • Кнопки
        • Конденсаторы
        • Резисторы
        • Транзисторы
        • Другие
        • Стабилизаторы
      Phrozen
      FlyingBear
      QIDI
      CreatBot
      FlashForge
      Bambu Lab
      ERYONE
      Elegoo
      eSUN
      Creality
      BIGTREETECH
      Anycubic
    • Комплектующие ЧПУ станка
      • Шаговые двигатели и аксессуары
        Шаговые двигатели и аксессуары
        • NEMA 8
        • NEMA 11
        • NEMA 14
        • NEMA 17
        • NEMA 23
        • NEMA 34
        • NEMA 42
        • NEMA 52
        • Шаговые актуаторы
        • Шаговые двигатели с редуктором      
          • C планетарным редуктором
          • C цилиндрическим редуктором
        • Шаговые двигатели с тормозом
        • Круглые шаговые двигатели
        • Сопутствующие
      • Зубчатые ременные передачи
        Зубчатые ременные передачи
        • Зубчатые ремни      
          • Зубчатые ремни GT2
          • Зубчатые ремни HTD 3M
          • Зубчатые ремни HTD 5M
          • Зубчатые ремни T2.5
          • Зубчатые ремни T5
        • Зубчатые шкивы      
          • Зубчатые шкивы GT2
          • Зубчатые шкивы HTD 3M
        • Ролики
      • Шарико-винтовые передачи (ШВП)
        Шарико-винтовые передачи (ШВП)
        • Готовые ШВП, обработанные
        • Гайки ШВП
        • Опоры ШВП
        • Модули крепления гаек ШВП
        • Кронштейны-опоры ШВП
      • Трапецеидальные передачи винт-гайка
        Трапецеидальные передачи винт-гайка
        • Винты трапецеидальные
        • Гайки трапецеидальные
        • Муфты Oldham
        • Сопутствующие
      • Цилиндрические направляющие
        Цилиндрические направляющие
        • Полированные валы
        • Цилиндрические рельсы
        • Линейные подшипники
        • Модули с линейным подшипником
        • Втулки скольжения
        • Держатели вала
        • Пластиковые втулки скольжения
      • Профильные направляющие
        Профильные направляющие
        • Профильные направляющие HIWIN      
          • Каретки HIWIN
          • Рельсы HIWIN
        • Профильные направляющие      
          • Каретки
          • Рельсы
        • Роликовые направляющие
      • Муфты соединительные
        Муфты соединительные
        • Жесткие
        • Кулачковые
        • Спиральные
        • Мембрнные
        • Сильфонные
        • Пружинные
        • Гибкие
      • Электроника
        Электроника
        • Блоки питания
        • Вентиляторы электрические и аксессуары      
          • Вентиляторы осевые
          • Вентиляторы радиальные (улитки)
          • Решетки и фильтры для вентиляторов
        • Драйверы шаговых двигателей
        • Микропереключатели и концевики
        • Датчики касания инструмента
        • Кнопки и индикаторы
      • Фрезы
        Фрезы
        • Спиральные фрезы      
          • Стружка вверх
          • Стружка вниз
        • Компрессионные фрезы
        • Прямые фрезы
        • Конусные фрезы
        • Сферические фрезы
        • Фрезы рашпильные (кукуруза)
        • Цанги
        • Сопутствующие
      • Карбоновый профиль / трубки
        Карбоновый профиль / трубки
      • Пневматическое оборудование
        Пневматическое оборудование
        • Регуляторы давления, фильтры, лубрикаторы
      • Системы подачи смазки
        Системы подачи смазки
        • Автоматические смазочные насосы
        • Ручные смазочные насосы
        • Маслораспределительные аксессуары
      • Сопутствующие
        Сопутствующие
      • Шпиндели и сопутствующие
        Шпиндели и сопутствующие
        • Шпиндели воздушного охлаждения
        • Шпиндели жидкостного охлаждения
        • Частотные преобразователи
        • Крепления для шпинделей
        • Системы охлаждения шпинделей
        • Подведение СОЖ
        • Прижимы для шпинделей
        • Распылители масляного тумана
        • Щетка-насадка для шпинделя
        • Сопутствующие для шпинделей
      • Механика
        Механика
        • Кабель-каналы гибкие
        • Подшипники качения
        • Подшипниковые узлы
      • Конструкционный профиль
        Конструкционный профиль
        • Сухари пазовые
        • Т-болты
        • Т-гайки
        • Серия 15      
          • Анодированный
          • Без покрытия
        • Серия 20      
          • Анодированный
          • Без покрытия
        • Серия 20 (V-паз)      
          • Анодированный
          • Без покрытия
        • Серия 30      
          • Анодированный
          • Без покрытия
        • Серия 40      
          • Анодированный
          • Без покрытия
        • Серия 45      
          • Анодированный
          • Без покрытия
        • Серия 50      
          • Анодированный
          • Без покрытия
      • Комплектующие OpenBuilds
        Комплектующие OpenBuilds
        • Ролики OpenBuilds
      • Лазерные станки
        Лазерные станки
      • Лазерная резка и аксессуары
        Лазерная резка и аксессуары
        • Блоки розжига
        • Воздушные компрессоры
        • Датчики
        • Крепление лазерной трубки
        • Лазерные головки и держатели зеркал
        • Полупроводниковые лазерные модули
        • Системы охлаждения
        • Системы управления (Контроллеры)      
          • Контроллеры RuiDa
      Phrozen
      FlyingBear
      QIDI
      CreatBot
      FlashForge
      Bambu Lab
      ERYONE
      Elegoo
      eSUN
      Creality
      BIGTREETECH
      Anycubic
    • Инструменты
      • Зачистка и обрезка кабеля
        Зачистка и обрезка кабеля
      • Измерительный инструмент
        Измерительный инструмент
        • Мультиметры
      • Кабель и провода
        Кабель и провода
        • Акустический кабель
        • Высоковольтный кабель
      • Клеевые пистолеты (термопистолеты)
        Клеевые пистолеты (термопистолеты)
      • Напильники и надфили
        Напильники и надфили
      • Обжимной инструмент
        Обжимной инструмент
      • Отвертки
        Отвертки
      • Паяльное оборудование
        Паяльное оборудование
        • Наборы для паяльных работ
        • Отсосы припоя
        • Паяльные принадлежности
        • Паяльные станции
        • Припой
        • Электрические паяльники
      • Пинцеты
        Пинцеты
      • Расходные материалы
        Расходные материалы
        • Изолента
        • Клеевые стержни
      Phrozen
      FlyingBear
      QIDI
      CreatBot
      FlashForge
      Bambu Lab
      ERYONE
      Elegoo
      eSUN
      Creality
      BIGTREETECH
      Anycubic
    • Запчасти для 3D принтеров по брендам
      • 3DIY printers
        3DIY printers
        • Bizon 3
        • STRATEX 350
        • STRATEX 500
        • REX 6K Mono
        • P3 Steel 200 PRO
        • P3 Steel 300 PRO
        • P3 Steel 300 DUAL PRO
      • Bambu Lab
        Bambu Lab
        • Bambu Lab A1 mini
        • Bambu Lab A1
        • Bambu Lab P1 Series
        • Bambu Lab X1 Series
      • Creality
        Creality
        • Creality K1
        • Creality K1 MAX
        • Creality K1C
        • Creality K2 plus
      • Flashforge
        Flashforge
        • Adventurer 5M / 5M Pro
      • Qidi
        Qidi
        • Qidi Tech X-Plus 3
        • Qidi Tech X-Max 3
        • QIDI Plus 4
        • Qidi Q1 Pro
      Phrozen
      FlyingBear
      QIDI
      CreatBot
      FlashForge
      Bambu Lab
      ERYONE
      Elegoo
      eSUN
      Creality
      BIGTREETECH
      Anycubic
    • Товары снятые с продажи
        Phrozen
        FlyingBear
        QIDI
        CreatBot
        FlashForge
        Bambu Lab
        ERYONE
        Elegoo
        eSUN
        Creality
        BIGTREETECH
        Anycubic
      Войти
      0Избранное
      0Корзина
      3D принтерыПластик для 3D принтераФотополимерыКомплектующие 3DКомплектующие ЧПУРобототехникаЗапчасти 3D принтеров по брендам
      3DIY
      Войти
      0Избранное
      0Корзина
      3DIY
      Телефоны
      8 (800) 500-45-93отдел продаж Россия
      8 (495) 565-35-93отдел продаж Москва
      E-mail

      info@3d-diy.ru — отдел продаж

      support@3d-diy.ru — тех. поддержка

      Адрес
      Москва, Павловская улица, 27с7
      м. Тульская
      Режим работы
      пн – пт 11:00—19:00
      8.05 – 11.05 не работаем
      0
      0
      • Кабинет
      • 0Избранное
      • 0Корзина
      • Бренды
      • Акции
      • Услуги
        • Услуги
        • 3D печать
          • 3D печать
          • 3D печать пластиком FDM/FFF
          • 3D печать фотополимером
      • Компания
        • Компания
        • О компании
        • Реквизиты
        • Партнеры
        • Клиенты
        • Вакансии
      • Блог
      • Информация
        • Информация
        • Гарантия на товар
        • Возврат товара
        • Политика конфиденциальности
        • Договор-оферта
        • FAQ
      • Контакты
        • Контакты
        • Как до нас добраться
      8 (800) 500-45-93отдел продаж Россия
      • Телефоны
      • 8 (800) 500-45-93 отдел продаж Россия
      • 8 (495) 565-35-93 отдел продаж Москва
      • info@3d-diy.ru — отдел продаж

        support@3d-diy.ru — тех. поддержка

      • Москва, Павловская улица, 27с7
        м. Тульская
      • пн – пт 11:00—19:00
        8.05 – 11.05 не работаем
      Главная
      Блог
      Компоненты
      Цифро-аналоговый преобразователь (ЦАП)

      Цифро-аналоговый преобразователь (ЦАП)

      Цифро-аналоговый преобразователь (ЦАП)
      Компоненты

      Содержание

      • Назначение и принцип работы
      • Разновидности и сравнение
      • Подключение к Ардуино
      • Примеры использования
      • Выводы
      • FAQ


      Назначение и принцип работы

      Всем известны и любимы пины Ардуино с приставкой “А”, А0, А1 и так далее. Это своего рода вольтметры, которые информируют нас об уровне напряжения на соответствующем пине в цифровом виде. Другими словами, преобразуют аналоговый сигнал в цифровой, они так и называются - “аналого-цифровые преобразователи”, сокращенно АЦП, по английски ADC, вещь очень полезная в хозяйстве и востребованная в проектах весьма часто.

      Возникает вопрос, а можно ли сделать наоборот? Чтобы цифровой сигнал преобразовывался в аналоговый? К сожалению, Ардуино так не умеет. На неискушенный взгляд может показаться, что и не надо, есть же хорошая имитация, называется ШИМ, широтно-импульсная модуляция. Задавая ее скважность, мы можем заставить светодиод гореть в половину накала или вообще с любой яркостью. Можем, но гореть он будет все равно на полную яркость, только иногда не гореть совсем, так сказать, быстро мерцать. Не всегда и не для всех задач такая иллюзия способна полностью заменить реально заданное напряжение, например, не годится для плавного управления некоторыми типами коллекторных двигателей. Не всякому глазу приятна и полезна ШИМ подсветка, особенно при малой яркости и частоте. Отдельная задача, недостижимая для модуляции - вывод динамически изменяемой формы сигнала, отличной от прямоугольника. Никак не получится увидеть на цифровых пинах пилу, треугольник и синусоиду, а значит отпадает часть возможностей.

      Но такие устройства существуют отдельно, даже называется очень похоже, только наоборот: “цифро-аналоговые преобразователи”, сокращенно ЦАП, по-английски DAC, и их великое множество. Поговорим об относительно простых однокомпонентных решениях в виде специализированных микросхем.


      Разновидности и сравнение

      Все ЦАПы делятся на два типа по интерфейсу: с параллельным или с последовательным, и группируются по разрядности, чаще всего 8, 10 и 12 разрядов. От интерфейса зависит способ подключения, а разрядность влияет на размер “шага”, которым можно задавать напряжение. Чем больше шагов, тем они мельче, а значит, выше точность.

      “Параллельный” ЦАП это, по сути, регулируемый резистивный делитель. Подключая или отключая отдельные ветки, меняем суммарное сопротивление на плечах, тем самым получая заданное напряжение на выходе. Простейшая схема четырехразрядного ЦАПа выглядит так:

      parallel_shema.jpg

      К каждому разряду подключается свой пин контроллера и операционный усилитель на выход, чтобы сопротивление нагрузки не влияло на результат. Комбинируя сочетания включения-выключения пинов, добиваемся изменения выходного напряжения. Условным преимуществом можно назвать быстродействие, никаких вычислений в такого рода ЦАПах не производится, все процессы происходят на физическом уровне. Но недостатков больше. Во-первых, требуется достаточно много свободных ножек контроллера, например, недорогой и распространенный параллельный ЦАП КР572ПА - десятиразрядный, то есть ему нужно 10 пинов.

      unnamed.jpg 

      Во-вторых, каждый пин влияет на выходное напряжение по-своему, один больше, другой меньше, и эта зависимость нелинейна.

      В-третьих, проистекающая из второй причины необходимость программного вычисления комбинаций пинов для вывода точного напряжения. Обычные двоичные числа в качестве комбинаций тут не работают. Например, так выглядит осциллограмма при простом переборе десяти разрядов от 0 до 1023 (максимальное значение) в стандартном двоичном исчислении:

      parallel.jpg

      Вместо ровной растущей линии наблюдаем хаотичное ступенчатое изменение напряжения. Чтобы увидеть линию, необходим особый алгоритм, его написание ложится на программиста, а вычисления ложатся на контроллер, что заметно замедлит и работу, и разработку.

      В-четвертых, если разрядность более восьми, пины переключаются группами не одновременно, небольшая задержка будет даже при прямом обращении к портам, что приведет к непредсказуемым скачкам между шагами. Такие скачки тоже видно на осциллограмме выше. Если потребуется получить гладкий, быстро меняющийся сигнал, эти всплески будут проблемой.

      В-пятых, сложность подключения. Кроме разрядов и выхода, необходимо подключить несколько настроечных резисторов и конденсаторов, калибрующих точность, и, самое главное, несколько различных напряжений, логическое, опорное и зачастую отрицательное опорное, то есть от двух до трех различных. Вот вырезка из даташита на ЦАП 1108ПА1А:

      1108ПА1А.jpg

      Обратите особое внимание на ножки 1 и 2.

      ЦАПы с параллельным интерфейсом устройства важные и нужные, но они пришли к нам в наследство от аналоговой техники, когда микроконтроллеры были большой редкостью. При некотором трудолюбии, упорстве и большом количестве свободного времени их можно приспособить к своему проекту, если нет жестких требований к точности, скорости и помехам, но для облегчения жизни лучше использовать более современные ЦАПы - с последовательным интерфейсом.

      “Последовательные” ЦАПы представляют собой составное устройство с собственным микроконтроллером и делителем напряжения. По какой схеме и алгоритму происходит работа внутри этого комбайна, пользователю вникать не обязательно, важно лишь знать способ передачи в него информации. Чаще всего используется протокол SPI, он простой, быстрый и достаточно помехоустойчивый. В качестве данных в ЦАП необходимо только передать необходимое количество бит, в соответствии с количеством разряда.

      Последовательных ЦАПов в природе тоже очень много, но мы рассмотрим на их примере одного чипа - MCP4921.

      DOC004594125.jpg

      Маленький, простой в подключении и программировании, точный, быстрый и надежный, рекомендуется для большинства DIY-проектов. Он 12-разрядный, то есть расстояние от минимального до максимального значения напряжения у него разделено на 4096 шагов. Максимальное напряжение (без усиления) на выходе составляет 5 В, а значит один шаг, в теории, соответствует всего лишь 0,0012 В, и, в отличие от параллельных ЦАПов, все шаги одинаковы. Вычислить нужное значение для установки точного напряжения не составит абсолютно никакого труда, умножаем требуемое на 4096/5, то есть 819, и готово. Хотите 3.8 В, отправьте на чип число 2703. Далее узнаем, как это сделать на практике.


      Подключение к Arduino 

      Для долгой и счастливой работы даташит настойчиво рекомендует нам не лениться и подключаться правильно, тем более, что это не так уж и сложно.

      shema_polnaya.jpg

      Но нам лень собирать даже такое, и для тестирования мы используем схему в стиле “минимал”. Даже операционный усилитель пока добавлять не будем:

      mcp4921_bb.jpg

      Для максимально быстрой и надежной отправки данных используем аппаратный SPI, поэтому подключаем к чипу ножку исходящих сигналов MOSI (11), ножку синхроимпульсов SCK (13) и практически любую в качестве ключа. Мы возьмем 9. К выходу OUT подключим осциллограф, если его нет, то вольтметр или светодиод, чтобы наблюдать за работой ЦАПа.


      Примеры использования

      Попробуем вывести “треугольник” с максимальной амплитудой и точностью, то есть двигаясь по одному шагу за цикл. Для этого зальем в Ардуино такую программу:

       #include <SPI.h> unsigned int maxV = 4090; // максимальное отклонение в одну сторону unsigned int minV = 1; // минимальное значение отклонения (не менее делителя) byte defV = 1; // делитель unsigned int delV = 0; // задержка в волне мкс void setup() { pinMode(9,OUTPUT); SPI.begin(); noDel(); } void loop() {} void noDel() { cli(); while (1) { for (unsigned int analogValue = minV; analogValue < maxV; analogValue += defV) { mcpWrite1(analogValue); } for (unsigned int analogValue = maxV; analogValue > minV; analogValue -= defV) { mcpWrite1(analogValue); } } } inline void mcpWrite1(unsigned int value) { byte data; PORTB = ~(PINB & (1 << 1)); data = highByte(value); data = B00001111 & data; data = B00110000 | data; SPI.transfer (data); data = lowByte(value); SPI.transfer (data); PORTB = PINB | (1 << 1); } 

      Включаем осциллограф и наблюдаем такую картину.

      treugol_20Hz.jpg

      Практически идеальный результат. Максимальная частота почти 20 Гц, то есть за секунду напряжение способно принять более 80 тысяч разных значений. Этого вполне достаточно для формирования звука, воспроизведения музыки и прочих достаточно быстрых процессов. Впрочем, этот результат можно ускорить кратно, если перескакивать сразу через несколько шагов, например, через четыре.

      treugol_80Hz.jpg

      Как видим, треугольник все такой же ровный, но частота увеличилась тоже в 4 раза. Причем, учитывая неидеальность нашего мира и данного ЦАП в частности, в точности мы практически ничего не потеряли, потому что выходное напряжение слегка шумит, порядка 10 мВ. Иными словами, без потери точности можно формировать сигнал с делителем 10, реальная точность данного чипа порядка 10 бит. Немного сгладит ситуацию подключение по полной схеме, но это будет лишь аппаратное усреднение. Вот так выглядит шум в “чистом” виде без подавления, на ЦАП выводим значение 1200.

      DAC_shum.jpg

      Вооружившись новыми практическими знаниями, выводим максимально быструю пилу на максимальной амплитуде с минимальными потерями точности. Для этого в шапке программы меняем следующие данные:

       unsigned int maxV = 4086; // максимальное отклонение в одну сторону unsigned int minV = 10; // минимальное значение отклонения (не менее делителя) byte defV = 10; // делитель unsigned int delV = 0; // задержка в волне мкс 

      Смотрим:

      treugol_200.jpg

      Почти 200 Гц, более 300 тысяч разных уровней напряжения в секунду, неплохо.

      Завершая эксперименты, давайте посмотрим, как будет по-настоящему, не мерцая, менять яркость светодиод от минимума к максимуму и наоборот. Чтобы глаз успел заметить данный процесс, замедлим наш “треугольник”, для чего добавим задержки между сменами уровней.

       #include <SPI.h> unsigned int maxV = 4086; // максимальное отклонение в одну сторону unsigned int minV = 10; // минимальное значение отклонения (не менее делителя) byte defV = 10; // делитель unsigned int delV = 2000; // задержка в волне мкс void setup() { pinMode(9,OUTPUT); SPI.begin(); Del(); } void Del() { while (1) { for (unsigned int analogValue = maxV; analogValue > minV; analogValue -= defV) { mcpWrite1(analogValue); delayMicroseconds(delV); } for (unsigned int analogValue = minV; analogValue < maxV; analogValue += defV) { mcpWrite1(analogValue); delayMicroseconds(delV); } } } inline void mcpWrite1(unsigned int value) { byte data; PORTB = ~(PINB & (1 << 1)); data = highByte(value); data = B00001111 & data; data = B00110000 | data; SPI.transfer (data); data = lowByte(value); SPI.transfer (data); PORTB = PINB | (1 << 1); } 

      Подключаем к выходу ЦАП светодиод, не забывая резистор, любуемся на честный маячок без ШИМа.

      migalka.gif 

      Разумеется, вывод “треугольника” не единственное, на что способен ЦАП, форма сигнала может быть абсолютно любой, вычисленной по формуле или заданной по таблице. Она может меняться в зависимости от ситуации и ограничена лишь задачами и возможностями программиста. В качестве примера и финальной иллюстрации посмотрим на такую осциллограмму:

      grud.jpg


      Выводы

      Современные цифро-аналоговые преобразователи - удобные и несложные в применении устройства. Они могут и должны применяться в DIY проектах везде, где это необходимо. Рекомендуются в виде более качественной альтернативы ШИМу в управлении яркостью освещения и скорости работы двигателей.


      FAQ

        1. Как вывести синусоиду?

        Мощность контроллера не позволяет производить вычисления достаточно быстро на ходу, поэтому синусоиду, как и любые другие графики сложных функций, лучше выводить, используя заранее рассчитанные таблицы. Зная амплитуду, положения середины, шаги по вертикали и горизонтали, сделать это довольно просто, например, при помощи электронной таблицы.

          2. Стоит ли выбирать ЦАП с максимально большой разрядностью?

          Как показывает практика, смысла использовать ЦАПы с разраядностью выше 10, во всяком случае, для бытового уровня, смысла не имеет. Шумы поглотят эту точность, а времени на вывод информации и формирование сигнала потребуется больше.

            3. Для чего и как можно использовать “параллельные” ЦАП, несмотря на их недостатки?

            Для выставления нескольких редко меняющихся напряжений без особых требований к точности. Например, в режимах светильника: максимум, полумрак, ночник.

              4. Как управлять напряжением в других диапазонах, например от 0 до 24 В?

              Используя операционные усилители, можно добиваться любого масштабирования и сдвига сигнала. Например, сканирующие зеркала используют сигналы с симметричными относительно нуля напряжениями, от -ХХ, до +ХХ. При помощи несложной схемы “треугольник” 0-5 В примет правильную форму, размер и полярность.

                5. Как при помощи ЦАП воспроизводить звук?

                Проще всего это делать из WAV файлов, так как звук в них закодирован в несжатом виде. Размеры таких данных не позволяют много поместить в память Ардуино, поэтому, как правило, ЦАП используют в паре с SD-ридером. В интернете есть примеры реализации данного проекта разной степени успешности.

                Это интересно

                Сдвиговые регистры
                Компоненты
                Сдвиговые регистры
                Адресные светодиоды. WS2812B, WS2812S
                Компоненты
                Адресные светодиоды. WS2812B, WS2812S
                Цифро-аналоговый преобразователь (ЦАП)
                Компоненты
                Цифро-аналоговый преобразователь (ЦАП)
                Резисторы
                Компоненты
                Резисторы
                Динамическая индикация
                Компоненты
                Динамическая индикация
                Транзисторы
                Компоненты
                Транзисторы
                • Комментарии
                Загрузка комментариев...
                Назад к списку
                • Все публикации248
                  • 3D принтеры38
                  • 3D печать57
                  • ЧПУ10
                  • Датчики27
                  • Модули38
                  • Arduino механика6
                  • Arduino платы8
                  • Дисплеи6
                  • Кейсы1
                  • Компоненты13
                  • Мировые новости35
                  • Проекты7
                  • Сопутствующие2
                Связаться с нами
                8 (800) 500-45-93
                8 (800) 500-45-93отдел продаж Россия
                8 (495) 565-35-93отдел продаж Москва
                E-mail

                info@3d-diy.ru — отдел продаж

                support@3d-diy.ru — тех. поддержка

                Адрес
                Москва, Павловская улица, 27с7
                м. Тульская
                Режим работы
                пн – пт 11:00—19:00
                8.05 – 11.05 не работаем

                info@3d-diy.ru — отдел продаж

                support@3d-diy.ru — тех. поддержка

                Москва, Павловская улица, 27с7
                м. Тульская
                Магазин
                Бренды
                Акции
                Каталог
                Услуги
                Компания
                О компании
                Реквизиты
                Партнеры
                Клиенты
                Вакансии
                Информация
                Гарантия на товар
                Возврат товара
                Политика конфиденциальности
                Договор-оферта
                FAQ
                Помощь
                Условия оплаты
                Условия доставки
                Товары под заказ
                Гос. закупки
                Как сделать заказ
                Вопрос-ответ
                2013 - 2025 © 3DiY (Тридиай) - интернет-магазин комплектующих для 3D принтеров, ЧПУ станков и робототехники
                Конфиденциальность
                Оферта
                ГлавнаяКаталог0Корзина0ИзбранныеКабинет
                Уважаемые клиенты
                8-9 мая - выходные
                С праздником!