MicroPython:Библиотеки/pyb/Класс DAC: различия между версиями
Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску
Myagkij (обсуждение | вклад) (Новая страница: «{{MicroPython/Панель перехода}} {{Перевод от Сubewriter}} {{Myagkij-редактор}} =<ref>[]</ref>= <syntaxhighlight lang="python"...») |
Нет описания правки |
||
(не показано 10 промежуточных версий 1 участника) | |||
Строка 3: | Строка 3: | ||
{{Myagkij-редактор}} | {{Myagkij-редактор}} | ||
=<ref>[]</ref>= | =Класс DAC – цифро-аналоговое преобразование<ref>[http://docs.micropython.org/en/latest/library/pyb.DAC.html docs.micropython.org - class DAC – digital to analog conversion]</ref>= | ||
''Класс DAC'' используется для вывода аналоговых значений (напряжения) на контакты ''X5'' или ''X6''. Диапазон напряжения – ''между 0 и 3.3 вольтами''. | |||
{{Примечание1|В будущем [[API]] этого модуля ждут изменения.}} | |||
<syntaxhighlight lang="python" | Пример использования: | ||
<syntaxhighlight lang="python"> | |||
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 вольта) | |||
</syntaxhighlight> | |||
Чтобы вывести непрерывную синусоиду: | |||
<syntaxhighlight lang="python"> | |||
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) | |||
</syntaxhighlight> | |||
Чтобы вывести непрерывную синусоиду в ''12-битном разрешении'': | |||
<syntaxhighlight lang="python"> | |||
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) | |||
</syntaxhighlight> | |||
==Конструкторы== | |||
* [[MicroPython:Библиотеки/pyb/Класс DAC/pyb.DAC()|pyb.DAC(port, bits=8, *, buffering=None)]] | |||
== Методы == | |||
* [[MicroPython:Библиотеки/pyb/Класс DAC/DAC.init()|DAC.init(bits=8, *, buffering=None)]] | |||
* [[MicroPython:Библиотеки/pyb/Класс DAC/DAC.deinit()|DAC.deinit()]] | |||
* [[MicroPython:Библиотеки/pyb/Класс DAC/DAC.noise()|DAC.noise(freq)]] | |||
* [[MicroPython:Библиотеки/pyb/Класс DAC/DAC.triangle()|DAC.triangle(freq)]] | |||
* [[MicroPython:Библиотеки/pyb/Класс DAC/DAC.write()|DAC.write(value)]] | |||
* [[MicroPython:Библиотеки/pyb/Класс DAC/DAC.write_timed()|DAC.write_timed(data, freq, *, mode=DAC.NORMAL)]] | |||
=См.также= | =См.также= |
Текущая версия от 17:31, 24 мая 2023
Перевод: Максим Кузьмин
Проверка/Оформление/Редактирование: Мякишев Е.А.
Класс DAC – цифро-аналоговое преобразование[1]
Класс DAC используется для вывода аналоговых значений (напряжения) на контакты X5 или X6. Диапазон напряжения – между 0 и 3.3 вольтами.
Пример использования:
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)
Конструкторы
Методы
- DAC.init(bits=8, *, buffering=None)
- DAC.deinit()
- DAC.noise(freq)
- DAC.triangle(freq)
- DAC.write(value)
- DAC.write_timed(data, freq, *, mode=DAC.NORMAL)