Сообщество - TECHNO BROTHER
Добавить пост

TECHNO BROTHER

1 646 постов 12 525 подписчиков

Популярные теги в сообществе:

Регулятор громкости и тембра на BD37033FV + 0.96 I2C 128X64 OLED (Arduino)

На базе Arduino и аудиопроцессоре BD37033FV можно собрать довольно качественный регулятор тембра и громкости. В качестве органов управления регулятором тембра и громкости применены кнопки, энкодер и ИК пульт.

Аудиопроцессор BD37033FV имеет несколько входов и выходов, в данном случае будет использовано только три стерео входа и шесть выходов (ПК ЛК фронт, ПК ЛК тыл, два выхода сабвуфера).

Ранее в статье рассматривался пример создания на основе аудиопроцессора BD37033FV регулятора громкости и тембра с использованием дисплея LCD1602 + I2C, в этой статье аналогичный пример, но с использованием дисплея 0.96′ I2C 128X64 OLED.

Регулятор громкости и тембра на BD37033FV + 0.96 I2C 128X64 OLED (Arduino) Arduino, Электроника, Программирование, Самоделки, Аудиотехника, Длиннопост

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

Управление OLED дисплеем в данном примере осуществляется при помощи шины I2C.

Параметры дисплея SSD1306:

  • Технология дисплея: OLED

  • Разрешение дисплея: 128 на 64 точки

  • Диагональ дисплея: 0,96 дюйма

  • Угол обзора: 160°

  • Напряжение питания: 2.8 В ~ 5.5 В

  • Мощность: 0,08 Вт

  • Габариты: 27.3 мм х 27.8 мм х 3.7 мм

Регулятор тембра и громкости на BD37033FV имеет следующие характеристики:

  • Напряжение питания от 7.0 до 9.5  В

  • Ток потребления  31 мА

  • КНИ 0,002% (VOUT=1Vrms BW=400-30KHz)

  • Выходное напряжение шума 5,5 µVrms

  • Перекрестные помехи между каналами -100 дБ

  • Входное сопротивление 100 кОм

  • Максимальное входное напряжение 2,1 Vrms

  • Перекрестные помехи между селекторами -100 дБ

  • Входной предварительный усилитель (независимый для каждого входа) 0…16 дБ

  • Диапазон регулировки громкости от -79 до +15 дБ

  • Режим MUTE — 100 дБ

  • Регулировка тембра по ВЧ СЧ и НЧ -15…+15 дБ, регулируемые частотные полосы и скважность

  • Тонкомпенсация 0…15 дБ, регулируемые частотные полосы

  • ФНЧ сабвуфера — регулируемые частотные полосы

  • Независимый для каждого выхода аттенюатор -79…15 дБ

  • Управление:

    • Энкодер — регулировка всех основных параметров

    • Кнопки — MUTE, MENU_SET, INPUT

    • ИК пульт — Работает только в основном меню (регулировка громкости, тембра и переключение входов)

Основное меню

Регулятор громкости и тембра на BD37033FV + 0.96 I2C 128X64 OLED (Arduino) Arduino, Электроника, Программирование, Самоделки, Аудиотехника, Длиннопост
Регулятор громкости и тембра на BD37033FV + 0.96 I2C 128X64 OLED (Arduino) Arduino, Электроника, Программирование, Самоделки, Аудиотехника, Длиннопост

В основное меню собраны основные параметры такие как громкость, тембр (ВЧ, СЧ, НЧ), выбор входа и регулировка предусилителя входа (независимый для каждого входа). Выбор параметра осуществляется при помощи кнопки энкодера, а изменение параметра при помощи поворота ручки энкодера, дополнительно для управления аудиопроцессором используются кнопки выбора входа, активация режима MUTE и переключения с основного меню на вспомогательное (и наоборот). В основном меню так же все параметры можно изменить при помощи ИК пульта.

Второе  меню

Регулятор громкости и тембра на BD37033FV + 0.96 I2C 128X64 OLED (Arduino) Arduino, Электроника, Программирование, Самоделки, Аудиотехника, Длиннопост

Во втором меню находятся редко изменяемые параметры, в нем ИК пульт недоступен. Для перехода во второе меню нужно нажать кнопку MENU_SET, выбор параметра меню осуществляется при помощи кнопки энкодера, а изменение параметра при помощи поворота ручки энкодера и кнопки INPUT (кнопка отвечает за изменение дополнительно параметра пункта меню).

Регулятор громкости и тембра на BD37033FV + 0.96 I2C 128X64 OLED (Arduino) Arduino, Электроника, Программирование, Самоделки, Аудиотехника, Длиннопост

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

#define IR2 0x33B820DF // button encoder

#define IR3 0x33B8946B // mute

#define IR4 0x33B810EF // >>>

#define IR5 0x33B8E01F // <<<

#define IR6 0x33B844BB // INPUT

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

Регулятор громкости и тембра на BD37033FV + 0.96 I2C 128X64 OLED (Arduino) Arduino, Электроника, Программирование, Самоделки, Аудиотехника, Длиннопост

Скетч - http://rcl-radio.ru/?p=120824

Показать полностью 5

TDA7313 + DS3231 + IR + LCD2004 (Arduino)

Ранее в http://rcl-radio.ru/?p=58563 описывался пример использования аудиопроцессора TDA7313 под управлением Arduino Nano с дисплеем LCD1602, на этой странице будет рассмотрен аналогичный пример но с использованием дисплея LCD2004 c I2C модулем на базе микросхем PCF8574, что позволяет подключать символьный дисплей LCD2004 к плате Arduino всего по двум проводам SDA и SCL (А4 и А5).

TDA7313 + DS3231 + IR + LCD2004 (Arduino) Arduino, Электроника, Программирование, Самоделки, Аудиотехника, Длиннопост

Микросхема TDA7313 имеет три стерео входа, регуляторы тембра НЧ и ВЧ, тонкомпенсация и четыре выхода (псевдоквадро). Управление осуществляется с помощью I2C. Обвязка минимальная — несколько конденсаторов и два резистора. Номинальное напряжение питания 9В.

Основные характеристики TDA7313

  • Напряжение питания 6…10 В (9 В рекомендуемое)

  • КНИ не более 0,01 %

  • Отношение сигнал / шум 106 дБ

  • Разделение каналов на частоте 1 кГц 103 дБ

  • Регулировка громкости от -78.75 до 0 дБ (0…63 уровня)

  • Регулировка тембра НЧ и ВЧ ±14 дБ (-7…+7)

  • Регулировка аттенюаторов независимое для каждого выхода от -38.75 до 0 дБ (шаг 1,25  дБ)

  • Регулировка предусилителя от 0 до 11.25 дБ (шаг 3,75 дБ)

Плата Arduino Nano аудиопроцессор TDA7313 обмениваются данными на шине I2C по линиям

TDA7313 + DS3231 + IR + LCD2004 (Arduino) Arduino, Электроника, Программирование, Самоделки, Аудиотехника, Длиннопост
TDA7313 + DS3231 + IR + LCD2004 (Arduino) Arduino, Электроника, Программирование, Самоделки, Аудиотехника, Длиннопост

В данном примере применены несколько модулей, таких как энкодер KY-040, часы реального времени DS3231, LCD2004_I2C, ИК-датчик VS1838B. Управление параметрами аудиопроцессора осуществляется при помощи 4-х кнопок — STANDBY, MUTE, SET, INPUT и энкодера KY-040.

TDA7313 + DS3231 + IR + LCD2004 (Arduino) Arduino, Электроника, Программирование, Самоделки, Аудиотехника, Длиннопост

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

TDA7313 + DS3231 + IR + LCD2004 (Arduino) Arduino, Электроника, Программирование, Самоделки, Аудиотехника, Длиннопост

Дополнительно имеется меню входов которое активируется нажатием кнопки INPUT, при этом происходит переключение входа и имеется возможность изменить регулировку предусилителя входа (независимая для каждого входа) при помощи энкодера.

TDA7313 + DS3231 + IR + LCD2004 (Arduino) Arduino, Электроника, Программирование, Самоделки, Аудиотехника, Длиннопост

Так как предусмотрена управляемая яркость подсветки дисплея, то можно установить яркость подсветки в основном  режиме и в режиме STANDBY (как правило с пониженной яркостью подсветки), регулировка яркости подсветки осуществляется в меню №2.

Подсветка — убрать перемычку с модуля I2C PCF8574 и подключить вывод модуля к цифровому выходу Arduino D6. Перед подключением замерить ток подсветки который не должен превышать 20 мА (у моего модуля ток не более 15 мА, замер производить между контактами перемычки).

TDA7313 + DS3231 + IR + LCD2004 (Arduino) Arduino, Электроника, Программирование, Самоделки, Аудиотехника, Длиннопост

Максимальный выходной ток одного выхода Arduino Nano не должен превышать 40 мА.

В проекте используются часы реального времени DS3231, текущее время выводится в меню №1, а так же в режиме STANDBY.

TDA7313 + DS3231 + IR + LCD2004 (Arduino) Arduino, Электроника, Программирование, Самоделки, Аудиотехника, Длиннопост

Установить текущее время можно двумя способами:

  • Установки времени через скетч:

Раскомментируйте строку:

clock.setDateTime(__DATE__, __TIME__); // Устанавливаем время на часах, основываясь на времени компиляции скетча

загрузите скетч, далее закомментируйте строку:

// clock.setDateTime(__DATE__, __TIME__); // Устанавливаем время на часах, основываясь на времени компиляции скетча

повторно загрузите скетч.

  • Установка времени кнопками:

Перейдите в режим STANDBY, нажать и удерживать кнопку энкодера, нажимать кнопки:
SET — обнуление секунд
IN — коррекция минут
MUTE — коррекция часов

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

#define IR_1 0x33B8A05F // Кнопка вверх

#define IR_2 0x33B8609F // Кнопка вниз

#define IR_3 0x33B810EF // Кнопка >

#define IR_4 0x33B8E01F // Кнопка <

#define IR_5 0x33B850AF // Кнопка IN

#define IR_6 0x33B844BB // Кнопка SET

#define IR_7 0x33B8946B // Кнопка MUTE

#define IR_8 0x33B800FF // Кнопка STANDBY (POWER)

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

TDA7313 + DS3231 + IR + LCD2004 (Arduino) Arduino, Электроника, Программирование, Самоделки, Аудиотехника, Длиннопост

В проекте предусмотрен выход STANDBY для управления режим STANDBY усилителя мощности, а так же режим MUTE. Все параметры сохраняются в энергонезависимую память, сохранение происходит в момент перехода в режим STANDBY.

TDA7313 + DS3231 + IR + LCD2004 (Arduino) Arduino, Электроника, Программирование, Самоделки, Аудиотехника, Длиннопост

Скетч - http://rcl-radio.ru/?p=127449

Показать полностью 9

Генератор (AD9833) + частотомер (Arduino)

Ранее на сайте рассматривались примеры создания генератора на модуле AD9833 и частотомера, но это были отдельные проекты, на этой странице будет рассмотрен пример создания генератора и частотомера в одном проекте.

Генератор (AD9833) + частотомер (Arduino) Arduino, Электроника, Самоделки, Программирование, Длиннопост

AD9833 — генератор сигналов с низким энергопотреблением. Позволяет генерировать сигналы с частотой до 12.5 МГц синусоидальной, треугольной и прямоугольной формы. Управление осуществляется с использованием трехпроводного интерфейса SPI.

Основные характеристики микросхемы:

  • Цифровое программирование частоты и фазы.

  • Потребляемая мощность 12.65 мВт при напряжении 3 В.

  • Диапазон выходных частот от 0 МГц до 12.5 МГц.

  • Разрешение 28 бит (0.1 Гц при частоте опорного сигнала 25 МГц).

  • Синусоидальные, треугольные и прямоугольные выходные колебания.

  • Напряжение питания от 2.3 В до 5.5 В.

  • Трехпроводной интерфейс SPI.

  • Расширенный температурный диапазон: от –40°C до +105°C.

  • Опция пониженного энергопотребления.

При генерации синусоидальных и треугольных импульсов амплитуда изменяется в диапазоне 38мВ…0,65В. При генерации импульсов прямоугольной формы на выходе присутствует сигнал уровня TTL.

Работа генератора контролируется при помощи 2-х кнопок и энкодера, при нажатии кнопки энкодера можно перебирать разряды и поворотом ручки энкодера можно установить число от 0 до 9 в каждом разряде. При изменении частоты генератора выход генератора отключается, после установки нужно частоты необходимо нажать кнопку «Генератор On/Off«, для изменения формы сигнала необходимо нажать кнопку «Форма сигн.». Так же при изменении формы сигнала выход генератора отключается.

Частотомер работает независимо от генератора и в управлении не нуждается.

Генератор в данном проекте ограничен максимальной частотой в 10 МГц, диапазон измерения частотомера от 0 до 6,5 МГц.

Генератор (AD9833) + частотомер (Arduino) Arduino, Электроника, Самоделки, Программирование, Длиннопост
  1. Показания частотомера

  2. Показания генератора

  3. Индикатор выходного сигнала генератора

  4. Форма сигнала

Генератор (AD9833) + частотомер (Arduino) Arduino, Электроника, Самоделки, Программирование, Длиннопост

Скетч http://rcl-radio.ru/?p=128106

Показать полностью 3

PT2258 — 6-и канальный регулятор громкости (2) (Arduino)

Ранее в http://rcl-radio.ru/?p=80541 рассматривался пример создания регулятора громкости на аудиопроцессоре PT2258 с использованием четырех разрядного семисегментного индикатора. На этой странице аналогичный проект, но в нем будет использован индикатор LCD2004 c модулем I2C.

ИМС PT2258 — шести канальный регулятор громкости с микроконтроллерным управлением. Управление PT2258 осуществляется при помощи шины I2C. Регулятор громкости обладает низким уровнем шума и малым коэффициентом нелинейных искажений. Регулировка громкости может быть как независимая для каждого канала, так и общая для всех каналов.

Основные характеристики PT2258:

  • Напряжение питания от 5 до 10 В, 9 В — рекомендуемое

  • Ток потребления 8 мА

  • Входное сопротивление 30 кОм

  • Максимальное входное напряжение 2,8 Vrms

  • Разделение каналов 100 дБ

  • Коэффициент нелинейных искажений 0,005%

  • Диапазон регулировки громкости от -79 до 0 дБ

  • Шаг регулировки громкости 1 дБ

  • Режим MUTE

  • Отношение сигнал/шум 105 дБ

PT2258 — 6-и канальный регулятор громкости (2) (Arduino) Arduino, Электроника, Программирование, Самоделки, Аудиотехника, Длиннопост

Схема регулятора громкости достаточно проста, выводы 4 и 17 (CODE2 и CODE1) в зависимости от подключения к GND или VCC позволяют изменять адрес микросхемы при работе с I2C шиной, что дает возможность подключения других утс-в на шину I2С, у которых нет возможности изменить адрес:

  • CODE1 = GND, CODE2 = GND 80H

  • CODE1 = GND, CODE2 = VCC 84H

  • CODE1 = VCC, CODE2 = GND 88H

  • CODE1 = VCC, CODE2 = VCC 8CH

Библиотека PT2258  поддерживает адрес 0х88, если возникнет необходимость изменить адрес шины I2C, то потребуется корректировка адреса в библиотеке:

Файл — PT2258.h

PT2258 — 6-и канальный регулятор громкости (2) (Arduino) Arduino, Электроника, Программирование, Самоделки, Аудиотехника, Длиннопост

В платформе Arduino адрес I2C 7 бит, поэтому вместо 0х88 (0B10001000), указывается 0х44 (0B1000100).

Регулятор громкости на PT2258 содержит следующие компоненты:

  • Плата Arduino Nano

  • Дисплей LCD2004 с модулем I2C

  • Часы реального времени DS3231

  • Энкодер KY-040

  • Три тактовые кнопки

  • ИК-датчик VS1838B

Схема регулятора громкости

PT2258 — 6-и канальный регулятор громкости (2) (Arduino) Arduino, Электроника, Программирование, Самоделки, Аудиотехника, Длиннопост

Основные функциональные возможности регулятора громкости:

  • Основное меню:

    • Регулировка громкости 64 уровня (64 дБ), осуществляется при помощи энкодера и ИК пульта

    • Вывод даты и времени

PT2258 — 6-и канальный регулятор громкости (2) (Arduino) Arduino, Электроника, Программирование, Самоделки, Аудиотехника, Длиннопост
  • Второе меню (для перехода в меню нажать кнопку SET, нажимая на кнопку энкодера можно перебирать пункты меню)

    • По канальная регулировка аттенюаторов выходов в диапазоне от 0 до 15 дБ

    • Регулировка яркости подсветки дисплея в обычном режиме и в режиме STANDBY

PT2258 — 6-и канальный регулятор громкости (2) (Arduino) Arduino, Электроника, Программирование, Самоделки, Аудиотехника, Длиннопост
  • Меню коррекции времени

    • Режим установки-корректировки времени:
      Нажать и удерживать кнопку энкодера, далее нажать кнопку SET, после появится меню корректировки времени, параметры перебираются кнопкой энкодера, ручка энкодера меняет выбранный параметр.

PT2258 — 6-и канальный регулятор громкости (2) (Arduino) Arduino, Электроника, Программирование, Самоделки, Аудиотехника, Длиннопост
  • Режим MUTE, активируется при помощи кнопки MUTE или ИК пульта

PT2258 — 6-и канальный регулятор громкости (2) (Arduino) Arduino, Электроника, Программирование, Самоделки, Аудиотехника, Длиннопост
  • Режим STANDBY, активируется при помощи кнопки или ИК пульта

PT2258 — 6-и канальный регулятор громкости (2) (Arduino) Arduino, Электроника, Программирование, Самоделки, Аудиотехника, Длиннопост

Так как предусмотрена управляемая яркость подсветки дисплея, то можно установить яркость подсветки в основном  режиме и в режиме STANDBY (как правило с пониженной яркостью подсветки), регулировка яркости подсветки осуществляется в меню №2.

Подсветка — убрать перемычку с модуля I2C PCF8574 и подключить вывод модуля к цифровому выходу Arduino D6. Перед подключением замерить ток подсветки который не должен превышать 20 мА (у моего модуля ток не более 15 мА, замер производить между контактами перемычки).

PT2258 — 6-и канальный регулятор громкости (2) (Arduino) Arduino, Электроника, Программирование, Самоделки, Аудиотехника, Длиннопост

Максимальный выходной ток одного выхода Arduino Nano не должен превышать 40 мА.

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

#define POWER 0x33B800FF

#define VOLUME_UP 0x33B8E01F

#define VOLUME_DW 0x33B810EF

#define MUT 0x33B8946B

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

PT2258 — 6-и канальный регулятор громкости (2) (Arduino) Arduino, Электроника, Программирование, Самоделки, Аудиотехника, Длиннопост

Скетч - http://rcl-radio.ru/?p=128120

Показать полностью 10

Регулятор громкости и тембра на LC75421M (Arduino)

Ранее в http://rcl-radio.ru/?p=128799 был показан пример тестового запуска аудиопроцессора LC75421M, на этой странице будет показан пример практического применения аудиопроцессора в качестве регулятора громкости и тембра.

Регулятор громкости и тембра на LC75421M содержит следующие компоненты:

  • Аудиопроцессор LC75421M

  • Плата Arduino Nano (Atmega328)

  • Энкодер KY-040 (модуль)

  • Три тактовые кнопки

  • Модуль часов реального времени DS3231

  • ИК-датчик VS1838B

  • Пульт ДУ (NEC)

  • Дисплей LCD1602 с модулем I2C

Регулятор громкости и тембра на LC75421M обладает следующими характеристиками:

  • Регулировка громкости от -76 до 0 дБ (шаг 1 дБ)

  • Регулировка баланса ±4 дБ

  • Регулировка BASS от 0 до 14 шагов (±11.9 дБ)

  • Регулировка TREBLE от 0 до 14 шагов (±11.9 дБ)

  • Регулировка SUPER BASS от 0 до 10 шагов (0…+20 дБ)

  • 5-и канальный селектор входов с независимой регулировкой предусилителя от 0 до 18,75 дБ

  • Режим MUTE

  • Режим STANDBY

  • Часы с коррекцией времени

  • Напряжение питания от 7,5 до 10 В

  • Изменение яркости подсветки

Основное управление параметрами аудиопроцессора будет осуществляться при помощи энкодера (KY-040) и 3-х кнопок, так же будет применен ИК пульт который будет дублировать энкодер и кнопки управления. Вся информация будет выводится на дисплей LCD1602 + I2C (I2C модуль на базе микросхем PCF8574 позволяют подключить символьный дисплей 1602 к плате Arduino всего по двум проводам SDA и SCL (А4 и А5), что дает возможность не использовать цифровые выходы Arduino при подключении дисплея.)

Громкость

Регулятор громкости и тембра на LC75421M (Arduino) Arduino, Электроника, Программирование, Самоделки, Аудиотехника, Длиннопост

BASS

Регулятор громкости и тембра на LC75421M (Arduino) Arduino, Электроника, Программирование, Самоделки, Аудиотехника, Длиннопост

SUPER BASS

Регулятор громкости и тембра на LC75421M (Arduino) Arduino, Электроника, Программирование, Самоделки, Аудиотехника, Длиннопост

TREBLE

Регулятор громкости и тембра на LC75421M (Arduino) Arduino, Электроника, Программирование, Самоделки, Аудиотехника, Длиннопост

Баланс

Регулятор громкости и тембра на LC75421M (Arduino) Arduino, Электроника, Программирование, Самоделки, Аудиотехника, Длиннопост

Часы (работаю в режиме STANDBY)

Регулятор громкости и тембра на LC75421M (Arduino) Arduino, Электроника, Программирование, Самоделки, Аудиотехника, Длиннопост

Коррекция времени часов: в режиме STANDBY нажать и удерживать кнопку энкодера, далее нажать кнопки INPUT,  MUTE для изменения времени часов, минут.

Так же предусмотрено изменение яркости дисплея в режиме STANDBY: выход D6 Arduino подключить к пину управления подсветки:

Регулятор громкости и тембра на LC75421M (Arduino) Arduino, Электроника, Программирование, Самоделки, Аудиотехника, Длиннопост

Подсветка — убрать перемычку с модуля I2C PCF8574 и подключить вывод модуля к цифровому выходу Arduino D6. Перед подключением замерить ток подсветки который не должен превышать 20 мА (у моего модуля ток не более 15 мА, замер производить между контактами перемычки).

Максимальный выходной ток одного выхода Arduino Nano не должен превышать 40 мА.

Яркость подсветки можно настроить через скетч:

#define BRIG_L 50

#define BRIG_H 250

  • BRIG_L — яркость в режиме STANDBY (0-250)

  • BRIG_H — яркость в рабочем режиме (0-250)

Схема подключения аудиопроцессора

Схема блока управления

Регулятор громкости и тембра на LC75421M (Arduino) Arduino, Электроника, Программирование, Самоделки, Аудиотехника, Длиннопост

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

#define IR_2 0x2FDB24D // Кнопка menu

#define IR_4 0x2FD906F // Кнопка >

#define IR_5 0x2FDF20D // Кнопка <

#define IR_6 0x2FD6A95 // Кнопка IN

#define IR_7 0x2FDF00F // Кнопка MUTE

#define IR_8 0x2FD00FF // Кнопка STANDBY (POWER)

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

Регулятор громкости и тембра на LC75421M (Arduino) Arduino, Электроника, Программирование, Самоделки, Аудиотехника, Длиннопост

Скетч:

Показать полностью 9

Регулятор громкости и тембра на LC75421M + 0.96 I2C 128X64 OLED (Arduino)

Ранее в статье рассматривался пример создания на основе аудиопроцессора LC75421M регулятора громкости и тембра с использованием дисплея LCD1602 + I2C, в этой статье аналогичный пример, но с использованием дисплея 0.96′ I2C 128X64 OLED.

Регулятор громкости и тембра на LC75421M + 0.96 I2C 128X64 OLED (Arduino) Arduino, Электроника, Программирование, Самоделки, Аудиотехника, Длиннопост

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

Управление OLED дисплеем в данном примере осуществляется при помощи шины I2C.

Параметры дисплея SSD1306:

  • Технология дисплея: OLED

  • Разрешение дисплея: 128 на 64 точки

  • Диагональ дисплея: 0,96 дюйма

  • Угол обзора: 160°

  • Напряжение питания: 2.8 В ~ 5.5 В

  • Мощность: 0,08 Вт

  • Габариты: 27.3 мм х 27.8 мм х 3.7 мм

Регулятор громкости и тембра на LC75421M + 0.96 I2C 128X64 OLED (Arduino) Arduino, Электроника, Программирование, Самоделки, Аудиотехника, Длиннопост

Регулятор громкости содержит два основных блока, первый блок микроконтроллерный (Arduino Nano) с органами управления и индикации, второй блок плата аудиопроцессора.

Регулятор громкости и тембра на LC75421M обладает следующими характеристиками:

  • Регулировка громкости от -76 до 0 дБ (шаг 1 дБ)

  • Регулировка баланса ±4 дБ

  • Регулировка BASS от 0 до 14 шагов (±11.9 дБ)

  • Регулировка TREBLE от 0 до 14 шагов (±11.9 дБ)

  • Регулировка SUPER BASS от 0 до 10 шагов (0…+20 дБ)

  • 5-и канальный селектор входов с независимой регулировкой предусилителя от 0 до 18,75 дБ

  • Режим MUTE

  • Режим STANDBY

  • Часы с коррекцией времени

  • Напряжение питания от 7,5 до 10 В

Основное управление параметрами аудиопроцессора будет осуществляться при помощи энкодера (KY-040) и 3-х кнопок, так же будет применен ИК пульт который будет дублировать энкодер и кнопки управления.

Коррекция времени часов: в режиме STANDBY нажать и удерживать кнопку энкодера, далее нажать кнопки INPUT,  MUTE для изменения времени часов, минут.

Схема подключения аудиопроцессора

Регулятор громкости и тембра на LC75421M + 0.96 I2C 128X64 OLED (Arduino) Arduino, Электроника, Программирование, Самоделки, Аудиотехника, Длиннопост

Схема блока управления

Регулятор громкости и тембра на LC75421M + 0.96 I2C 128X64 OLED (Arduino) Arduino, Электроника, Программирование, Самоделки, Аудиотехника, Длиннопост

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

#define IR_2 0x2FDB24D // Кнопка menu

#define IR_4 0x2FD906F // Кнопка >

#define IR_5 0x2FDF20D // Кнопка <

#define IR_6 0x2FD6A95 // Кнопка IN

#define IR_7 0x2FDF00F // Кнопка MUTE

#define IR_8 0x2FD00FF // Кнопка STANDBY (POWER)

Для получения кодов кнопок Вашего пульта загрузите скетч:

#include <boarddefs.h> // входит в состав библиотеки IRremote
#include <IRremote.h> // http://rcl-radio.ru/wp-content/uploads/2019/06/IRremote.zip

IRrecv irrecv(12); // указываем вывод модуля IR приемника
decode_results ir;

void setup(){
irrecv.enableIRIn();
Serial.begin(9600);
}

void loop(){
if ( irrecv.decode( &ir )) {Serial.print(«0x»);Serial.println( ir.value,HEX);irrecv.resume();}
}

Далее откройте монитор порта, в котором при нажатии кнопки пульта Вы увидите коды кнопок.

Регулятор громкости и тембра на LC75421M + 0.96 I2C 128X64 OLED (Arduino) Arduino, Электроника, Программирование, Самоделки, Аудиотехника, Длиннопост

Скетч - http://rcl-radio.ru/?p=128826

Показать полностью 4

Радио модули NRF24L01 (ARDUINO)

Радио модули NFR24L01 работают в диапазоне частот 2.4-2.5 ГГц, поддерживают передачу данных до 2 Мбит/с и могут работать на 125 каналах. Радио модули выпускаются малой мощности (до 100 метров или около 30 метров в помещении) и с усилителем к которому можно подключить внешнюю антенну (до 1000 м).

Один модуль способен поддерживать связь сразу с шестью приемниками или передатчиками, то есть можно объединить сразу семь устройств в общую радиосеть на частоте 2,4 ГГц. Скорость беспроводного соединения можно настраивать: 250kbps, 1Mbps или 2Mbps, а так же можно изменять мощность в пережиме передатчика от -18dBm до 0dBm.

Радио модули NRF24L01 (ARDUINO) Arduino, Электроника, Самоделки, Программирование, Длиннопост

Основные параметры радио модуля NRF24L01

  • Напряжение питания от 1.9 В до 3.6 В

  • Потребляемый ток при мощности 0dBm 11.3 мА

  • Потребляемый ток при передачи 2 Мбит 13.5 мА

  • Частота 2,4 – 2,525 ГГц

  • Скорость передачи: 250 Кбит, 1 Мбит или 2Mбит

  • Программируемая выходная мощность: 0, -6, -12 и -18 dBm

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

Радио модули NRF24L01 (ARDUINO) Arduino, Электроника, Самоделки, Программирование, Длиннопост

При передачи сигнала радио модуль NRF24L01 кратковременно может потреблять большой ток, поэтому рекомендуется по питанию установить электролитический конденсатор емкость от 10 до 220 мкФ.

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

Перед загрузкой скетчей Вам понадобятся следующие библиотеки:

Тестовый скетч

В этом примере один радио модуль работает в качестве передатчика, а другой в качестве приемника. Передатчик передает два числа, а приемник принимает сигнал и выводит в монитор порта эти числа.

ПЕРЕДАТЧИК

#include <SPI.h>

#include <nRF24L01.h>

#include <RF24.h>

RF24 radio(9, 10); // (CE, CSN)

int data[2]; 

void setup(){

radio.begin();

radio.setChannel(5); // канал от 0 до 125

radio.setDataRate (RF24_1MBPS); // RF24_250KBPS, RF24_1MBPS, RF24_2MBPS

radio.setPALevel (RF24_PA_HIGH); // RF24_PA_MIN=-18dBm, RF24_PA_LOW=-12dBm, RF24_PA_HIGH=-6dBm, RF24_PA_MAX=0dBm

radio.openWritingPipe (0xA0A0A0A001);

}

void loop(){

data[0] = 1234;

data[1] = 5678;

radio.write(&data, sizeof(data));

delay(1000);

}

ПРИЕМНИК

#include <SPI.h>

#include <nRF24L01.h>

#include <RF24.h>

RF24 radio(9, 10); // (CE, CSN) 

int data[2]; 

void setup(){

delay(1000);

Serial.begin(9600);

radio.begin();

radio.setChannel(5); // канал от 0 до 125 radio.setDataRate (RF24_1MBPS); // RF24_250KBPS, RF24_1MBPS, RF24_2MBPS

radio.setPALevel (RF24_PA_HIGH); // RF24_PA_MIN=-18dBm, RF24_PA_LOW=-12dBm, RF24_PA_HIGH=-6dBm, RF24_PA_MAX=0dBm r

adio.openReadingPipe (1, 0xA0A0A0A001);

radio.startListening (); // radio.stopListening ();

}

void loop(){

if(radio.available()){

radio.read(&data, sizeof(data));

Serial.println(data[0]);

Serial.println(data[1]);

} }

Радио модули NRF24L01 (ARDUINO) Arduino, Электроника, Самоделки, Программирование, Длиннопост

Управление 4-я реле

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

Радио модули NRF24L01 (ARDUINO) Arduino, Электроника, Самоделки, Программирование, Длиннопост

ПЕРЕДАТЧИК

#include <SPI.h>

#include <nRF24L01.h>

#include <RF24.h>

RF24 radio(9, 10); // (CE, CSN) 

int data_reg;

bool w1,w2,w3,w4; 

void setup(){

delay(1000);

Serial.begin(9600);

radio.begin();

radio.setChannel(5); // канал от 0 до 125

radio.setDataRate(RF24_250KBPS); // RF24_250KBPS, RF24_1MBPS, RF24_2MBPS

radio.setPALevel(RF24_PA_MIN); // RF24_PA_MIN=-18dBm, RF24_PA_LOW=-12dBm, RF24_PA_HIGH=-6dBm, RF24_PA_MAX=0dBm

radio.openWritingPipe(0xA1A1A1A102);

pinMode(2,INPUT_PULLUP);

pinMode(3,INPUT_PULLUP);

pinMode(4,INPUT_PULLUP);

pinMode(5,INPUT_PULLUP);

}


void loop(){

if(digitalRead(2)==LOW && w1==0){

w1=1;

data_reg |= (1<<0);

delay(200);

}

if(digitalRead(2)==LOW && w1==1){

w1=0;

data_reg &=~(1<<0);

delay(200);

if(digitalRead(3)==LOW && w2==0){

w2=1;

data_reg |= (1<<1);

delay(200);

}

if(digitalRead(3)==LOW && w2==1){

w2=0;

data_reg &=~(1<<1);

delay(200);

if(digitalRead(4)==LOW && w3==0){

w3=1;

data_reg |= (1<<2);

delay(200);

}

if(digitalRead(4)==LOW && w3==1){

w3=0;

data_reg &=~(1<<2);

delay(200);

if(digitalRead(5)==LOW && w4==0){

w4=1;

data_reg |= (1<<3);

delay(200);

}

if(digitalRead(5)==LOW && w4==1){

w4=0;

data_reg &=~(1<<3);

delay(200);

radio.write(&data_reg, sizeof(data_reg));

Serial.println(data_reg);

delay(100);

}

ПРИЕМНИК

#include <SPI.h>

#include <nRF24L01.h>

#include <RF24.h>

RF24 radio(9, 10); // (CE, CSN) 

int data_old,data;

unsigned long times; 

void setup(){

delay(1000);

Serial.begin(9600);

pinMode(2,OUTPUT);

pinMode(3,OUTPUT);

pinMode(4,OUTPUT);

pinMode(5,OUTPUT);

radio.begin();

radio.setChannel(5); // канал от 0 до 125 radio.setDataRate(RF24_250KBPS); // RF24_250KBPS, RF24_1MBPS, RF24_2MBPS

radio.setPALevel(RF24_PA_MIN); // RF24_PA_MIN=-18dBm, RF24_PA_LOW=-12dBm, RF24_PA_HIGH=-6dBm, RF24_PA_MAX=0dBm

radio.openReadingPipe(1, 0xA1A1A1A102);

radio.startListening();

}

void loop(){

if(radio.available()){

radio.read(&data, sizeof(data));

Serial.println(data); 

if(((data >> 0) & 1) ==1){

digitalWrite(2,HIGH);

}

else{digitalWrite(2,LOW);

}

if(((data >> 1) & 1) ==1){

digitalWrite(3,HIGH);

}

else{digitalWrite(3,LOW);

}

if(((data >> 2) & 1) ==1){

digitalWrite(4,HIGH);

}

else{digitalWrite(4,LOW);

}

if(((data >> 3) & 1) ==1){

digitalWrite(5,HIGH);

}

else{

digitalWrite(5,LOW);

} } }

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

Электронный термометр DS18B20

В следующем примере к передатчику подключен цифровой датчик температуры DS18B20, передатчик передает температуру, а приемник выводит ее на дисплей LCD1602_I2C. В момент получения информации на экран выводится символ «*».

Радио модули NRF24L01 (ARDUINO) Arduino, Электроника, Самоделки, Программирование, Длиннопост
Радио модули NRF24L01 (ARDUINO) Arduino, Электроника, Самоделки, Программирование, Длиннопост

Терморегулятор

Радио модули NRF24L01 (ARDUINO) Arduino, Электроника, Самоделки, Программирование, Длиннопост

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

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

Радио модули NRF24L01 (ARDUINO) Arduino, Электроника, Самоделки, Программирование, Длиннопост
  • Температура регулирования

  • Индикатор получения информации (в момент приема выводится символ *)

    Скетчи - http://rcl-radio.ru/?p=128866

Показать полностью 7

Аудиопроцессор PT2315 (Arduino)

ИМС PT2315 (аналог TDA7315) представляет собой простой стерео аудиопроцессор, который позволяет регулировать громкость и тембр.

Аудиопроцессор PT2315 (Arduino) Arduino, Электроника, Программирование, Самоделки, Аудиотехника, Длиннопост

Основные параметры аудиопроцессора PT2315:

  • Напряжение питания от 6 до 10 В

  • Ток потребления от 30 до мА

  • Максимальное входное напряжение 2,5 Vrms

  • Коэффициент гармоник 0,07 %

  • Разделение каналов 85 дБ

  • Отношение сигнал/шум 95 дБ

  • Регулировка громкости от -70 до 0 дБ с шагом регулировки 1,25 дБ

  • Регулировка тембра (BASS, TREBLE) ±14 дБ с шагом регулировки 2 дБ

  • Аттенюаторы выходов (CHL, CHR) от 0 до 30 дБ с шагом регулировки 1,25 дБ

  • Управление I2C

Библиотека — https://github.com/liman324/PT2315.git

Тестовый скетч:

#include <Wire.h>

#include <PT2315.h> 

PT2315 pt; 

void setup() {

Serial.begin(9600);

delay(600);

audio();

void loop() {  }

void audio(){

pt.set_volume(0); // int 0...56 === 0...-70 dB step 1.25 dB

pt.set_att_l(0); // int 0...24 === 0...-30 db step 1.25 dB

pt.set_att_r(0); // int 0...24 === 0...-30 db step 1.25 dB

pt.set_loudness(1); // bool 0...1 = on...off

pt.setBass(0); // int -7...+7 === -14...+14 dB step 2 dB

pt.setTreble(7); // // int -7...+7 === -14...+14 dB step 2 dB

}

На базе Adruino Nano используя аудиопроцессор PT2315 можно собрать простой регулятор громкости и тембра.

Аудиопроцессор PT2315 (Arduino) Arduino, Электроника, Программирование, Самоделки, Аудиотехника, Длиннопост

Регулятор громкости позволяет регулировать громкость, тембр НЧ, тембр ВЧ и баланс, так же поддерживает функцию MUTE.

Аудиопроцессор PT2315 (Arduino) Arduino, Электроника, Программирование, Самоделки, Аудиотехника, Длиннопост
Аудиопроцессор PT2315 (Arduino) Arduino, Электроника, Программирование, Самоделки, Аудиотехника, Длиннопост

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

#define IR2 0x2FDB24D // button encoder

#define IR3 0x2FDF00F // mute

#define IR4 0x2FD906F // >>>

#define IR5 0x2FDF20D // <<<

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

Аудиопроцессор PT2315 (Arduino) Arduino, Электроника, Программирование, Самоделки, Аудиотехника, Длиннопост

Скетч http://rcl-radio.ru/?p=128899

Показать полностью 5
Отличная работа, все прочитано!