MicroPython:Библиотеки/pyb/Класс DAC

Материал из Онлайн справочника
Версия от 17:31, 24 мая 2023; EducationBot (обсуждение | вклад)
(разн.) ← Предыдущая версия | Текущая версия (разн.) | Следующая версия → (разн.)
Перейти к навигацииПерейти к поиску

Перевод: Максим Кузьмин
Проверка/Оформление/Редактирование: Мякишев Е.А.


Класс DAC – цифро-аналоговое преобразование[1]

Класс DAC используется для вывода аналоговых значений (напряжения) на контакты X5 или X6. Диапазон напряжения – между 0 и 3.3 вольтами.

Примечание

В будущем API этого модуля ждут изменения.

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

from pyb import DAC

dac = DAC(1)            # создаем «dac» на контакте X5
dac.write(128)          # записываем значение на «dac»
                        # (на X5 появится напряжение 1.65 вольт)

dac = DAC(1, bits=12)   # используем 12-битное разрешение
dac.write(4095)         # задаем максимальное значение (3.3 вольта)

Чтобы вывести непрерывную синусоиду:

import math
from pyb import DAC

# создаем буфер, содержащий синусоиду:
buf = bytearray(100)
for i in range(len(buf)):
    buf[i] = 128 + int(127 * math.sin(2 * math.pi * i / len(buf)))

# задаем синусоиду при 400 Гц:
dac = DAC(1)
dac.write_timed(buf, 400 * len(buf), mode=DAC.CIRCULAR)

Чтобы вывести непрерывную синусоиду в 12-битном разрешении:

import math
from array import array
from pyb import DAC

# создаем буфер, содержащий синусоиду, при помощи полуслов:
buf = array('H', 2048 + int(2047 * math.sin(2 * math.pi * i / 128)) for i in range(128))

# выводим синусоиду при 400 Гц:
dac = DAC(1, bits=12)
dac.write_timed(buf, 400 * len(buf), mode=DAC.CIRCULAR)

Конструкторы

Методы

См.также

Внешние ссылки