Серия «Arduino»

89

ATtiny13 + 0,91 I2C 12832 OLED (Arduino IDE)

Для простых и компактных проектов разработанных в среде Ardino IDE, таких как например простое реле времени, логичней применять простые и недорогие микроконтроллеры. Так как Arduino IDE поддерживает микроконтроллеры серии ATtiny, мной для этого проекта был выбран микроконтроллер ATtiny13.

ATtiny13 — низкопотребляющий 8 битный КМОП микроконтроллер с AVR RISC архитектурой. Выполняя команды за один цикл, ATtiny13 достигает производительности 1 MIPS при частоте задающего генератора 1 МГц, что позволяет разработчику оптимизировать отношение потребления к производительности.

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

ATtiny13 + 0,91 I2C 12832 OLED (Arduino IDE) Arduino, Электроника, Программирование, Самоделки, Длиннопост

Далее в статье будет рассмотрено несколько простых проектов с применением микроконтроллера ATtiny13 и 0,91′ I2C 128×32 OLED дисплея.

Для поддержки ATtiny13 в Arduino IDE необходимо выполнить несколько простых операций:

  • Добавление поддержки платы

Откройте в Arduino IDE вкладку Файл > Настройки и добавьте ссылку для менеджера плат

https://mcudude.github.io/MicroCore/package_MCUdude_MicroCor...

ATtiny13 + 0,91 I2C 12832 OLED (Arduino IDE) Arduino, Электроника, Программирование, Самоделки, Длиннопост

Далее перейдите во вкладку Инструменты > Плата > Менеджер плат

ATtiny13 + 0,91 I2C 12832 OLED (Arduino IDE) Arduino, Электроника, Программирование, Самоделки, Длиннопост

Выберите и установите новую плату MicroCore by MCUdude.

Далее в Инструменты > Плата выберите плату ATtiny13.

  • Для прошивки скетча  Вам понадобится программатор USBAsp

ATtiny13 + 0,91 I2C 12832 OLED (Arduino IDE) Arduino, Электроника, Программирование, Самоделки, Длиннопост

В моем случае я использую микроконтроллер который установлен на плату переходник, схема подключения достаточно простая:

ATtiny13 + 0,91 I2C 12832 OLED (Arduino IDE) Arduino, Электроника, Программирование, Самоделки, Длиннопост

Распиновка программатора USBAsp

ATtiny13 + 0,91 I2C 12832 OLED (Arduino IDE) Arduino, Электроника, Программирование, Самоделки, Длиннопост
ATtiny13 + 0,91 I2C 12832 OLED (Arduino IDE) Arduino, Электроника, Программирование, Самоделки, Длиннопост

В настройках платы нужно выбрать поддержку Attiny13 и установить частоту  9.6 MHz internal, в пункте EEPROM выберите EEPROM not retanied,  в пункте ‘Расчет времени’ выберите Micros disabled .

ATtiny13 + 0,91 I2C 12832 OLED (Arduino IDE) Arduino, Электроника, Программирование, Самоделки, Длиннопост

Далее необходимо выставить нужные фьюзы для микроконтроллера, чтобы он всегда работал на выбранной Вами частоте. Для этого в настройках Arduino IDE выберите программатор USBasb и нажмите Инструменты > Записать загрузчик. Эту операцию необходимо проводить всего один и снова повторить если Вы будете менять частоту работы микроконтроллера.

Для загрузки скетча в настройках Arduino IDE выберите программатор USBasb и во вкладке Скетч нажмите на Загрузить через программатор (или просто нажать кнопку — Загрузить).

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

Термометр на DS18B20

ATtiny13 + 0,91 I2C 12832 OLED (Arduino IDE) Arduino, Электроника, Программирование, Самоделки, Длиннопост
ATtiny13 + 0,91 I2C 12832 OLED (Arduino IDE) Arduino, Электроника, Программирование, Самоделки, Длиннопост

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

Термометр на DS18B20 с большими цифрами

ATtiny13 + 0,91 I2C 12832 OLED (Arduino IDE) Arduino, Электроника, Программирование, Самоделки, Длиннопост

Секундомер

ATtiny13 + 0,91 I2C 12832 OLED (Arduino IDE) Arduino, Электроника, Программирование, Самоделки, Длиннопост

Дискретность отсчета 0,1 секунда, максимальное время 999 минут. Первое нажатие кнопки BUTTON запускает секундомер, второе нажатие останавливает его, третье сбрасывает показания.

ATtiny13 + 0,91 I2C 12832 OLED (Arduino IDE) Arduino, Электроника, Программирование, Самоделки, Длиннопост

Простые часы на DS1307

ATtiny13 + 0,91 I2C 12832 OLED (Arduino IDE) Arduino, Электроника, Программирование, Самоделки, Длиннопост
ATtiny13 + 0,91 I2C 12832 OLED (Arduino IDE) Arduino, Электроника, Программирование, Самоделки, Длиннопост

Простые часы с гашением экрана

ATtiny13 + 0,91 I2C 12832 OLED (Arduino IDE) Arduino, Электроника, Программирование, Самоделки, Длиннопост

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

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

Часы на ИВЛ1-7/5 (Arduino IDE)

Ранее в статье http://rcl-radio.ru/?p=77848 был описан пример создания часов на цифровом многоразрядном вакуумном люминесцентном индикаторе ИВЛ1-7/5. В этой статье аналогичный проект, но в нем применена упрощенная схема питания и применен недорогой микроконтроллер Atmega8.

Часы на ИВЛ1-7/5 (Arduino IDE) Arduino, Электроника, Программирование, Видео, YouTube, Длиннопост
Часы на ИВЛ1-7/5 (Arduino IDE) Arduino, Электроника, Программирование, Видео, YouTube, Длиннопост

Основные данные индикатора ИВЛ1–7/5:

  • Цвет свечения: Зеленый

  • Номинальная яркость индикатора 500 кд/м2, минимальная – 300 кд/м2.

  • Напряжение накала: 5 В

  • Ток накала: 120 ± 12 мА

  • Напряжение анода–сегмента импульсное: 27 В

  • Ток анодов–сегментов импульсный одного разряда: 12 мА

  • Напряжение сетки импульсное: 27 В

  • Ток сетки импульсный одного разряда: 12 мА

  • Скважность: 5 ± 0,5

  • Минимальная наработка: 10 000 ч

  • Яркость индикатора, изменяющаяся в течение минимальной наработки, не менее: 100 кд/м2

  • Срок хранения не менее: 4 лет

Предельно допустимый электрический режим индикатора ИВЛ1–7/5:

  • Напряжение накала строго в пределах: 4,5–5,8 В

  • Наибольшее напряжение анодов–сегментов: 50 В

  • Наибольшее напряжение сетки импульсное: 50 В

Схема часов

Часы на ИВЛ1-7/5 (Arduino IDE) Arduino, Электроника, Программирование, Видео, YouTube, Длиннопост

Для установки текущего времени используются три кнопки, но рекомендую при первом запуске использовать установку времени по времени компиляции, для этого необходимо раскомментировать строку:

// set_time(22,7,2,26,13,10,0);// год 00-99, ДН 1-7 (1=ВС), мес 1-12, дата 1-31, час 0-23, мин 0-59, сек 0-59

Залить скетч в микроконтроллер, далее закомментировать строку и залить скетч по новой.

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

Для использования ATmega8 в Arduino IDE Вам необходимо собрать следующую схему (в данном случае допускается внутрисхемное программирование, то есть прошивать контроллер при полной собранной схеме часов):

Часы на ИВЛ1-7/5 (Arduino IDE) Arduino, Электроника, Программирование, Видео, YouTube, Длиннопост

Перед прошивкой ATmega8 необходимо установить поддержку контроллера в Arduino IDE, для этого откройте меню Файл >> Настройки и в пункте Дополнительные ссылки для Менеджера плат вставьте ссылку:

https://mcudude.github.io/MiniCore/package_MCUdude_MiniCore_...

Часы на ИВЛ1-7/5 (Arduino IDE) Arduino, Электроника, Программирование, Видео, YouTube, Длиннопост

Далее переходим в меню  Инструменты >> Плата >> Менеджер плат

В строке поиска напишите atmega8, списке менеджера плат выберите пакет: MiniCore by MCUdude

Часы на ИВЛ1-7/5 (Arduino IDE) Arduino, Электроника, Программирование, Видео, YouTube, Длиннопост

После установки поддержки плат в Arduino IDE появится плата Atmega8

Часы на ИВЛ1-7/5 (Arduino IDE) Arduino, Электроника, Программирование, Видео, YouTube, Длиннопост
  • Для прошивки скетча или загрузчика Вам понадобится программатор USBasp

Часы на ИВЛ1-7/5 (Arduino IDE) Arduino, Электроника, Программирование, Видео, YouTube, Длиннопост

Распиновка USBasp

Часы на ИВЛ1-7/5 (Arduino IDE) Arduino, Электроника, Программирование, Видео, YouTube, Длиннопост

Перед загрузкой в настройках платы укажите частоту кварцевого резонатора (12 МГц), выбрать программатор  USBasp, в пункте Bootloader выберите No bootloader или Yes (UART0) если планируете загружать скетчи через UART ( USB — TTL ).

Во вкладке «Инструменты»  нажмите «Записать загрузчик«.(делается только один раз)

После записи загрузчика Вы в Arduino IDE увидите примерно следующее:

Часы на ИВЛ1-7/5 (Arduino IDE) Arduino, Электроника, Программирование, Видео, YouTube, Длиннопост

Для загрузки скетча выберите вкладку — Скетч >> Загрузить через программатор

Часы на ИВЛ1-7/5 (Arduino IDE) Arduino, Электроника, Программирование, Видео, YouTube, Длиннопост

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

Часы на ИВЛ1-7/5 (Arduino IDE) Arduino, Электроника, Программирование, Видео, YouTube, Длиннопост
Часы на ИВЛ1-7/5 (Arduino IDE) Arduino, Электроника, Программирование, Видео, YouTube, Длиннопост
Часы на ИВЛ1-7/5 (Arduino IDE) Arduino, Электроника, Программирование, Видео, YouTube, Длиннопост

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

Показать полностью 13 1
85

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

Микроконтроллер Atmega88 может стать отличной заменой сильно подорожавших плат Arduino Nano. Большое кол-во проектов создаваемых на платах Arduino Nano часто используют небольшое объем памяти и применять Arduino Nano в данных проектах нецелесообразно.  Atmega88 имеет 8 кБ программируемой Flash памяти, 1кБ SRAM памяти и 512 байта EEPROM.

Регулятор громкости и тембра LC75342 на Atmega88 (Arduino IDE) Arduino, Электроника, Программирование, Длиннопост

Микроконтроллер Atmega88 поддерживается средой программирования Arduino IDE, так же большинство библиотек совместимы с этими контроллерами.

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

ИМС LC75342 представляет собой аудиопроцессор специально разработанный для регулирования параметров аудиосигнала с минимальными искажениями. Аудиопроцессор включает в себя регулятор громкости, тембра, коммутатор входов и предусилители входов.

Более подробно об аудиопроцессоре можно узнать из статьи — LC75342 (Arduino)

Основные параметры LC75342

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

  • Независимая регулировка громкости (баланс)

  • Входной предварительный усилитель входа от 0 до +30 дБ (шаг 2 дБ)

  • 4-х канальный коммутатор входов

  • Регулировка тембра BASS от -20 до +20 дБ (шаг 2 дБ)

  • Регулировка тембра TREBLE от -10 до +10 дБ (шаг 2 дБ)

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

  • Управление цифровое 3-Wire (CL, DI, CE) (макс. тактовая частота до 500 кГц)

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

  • Коэффициент нелинейных искажений 0,01% (макс.)

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

Регулировка громкости возможна в пределах от -79 до -4 дБ, недостающие 4 дБ отданы регулятору баланса.

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

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

Регулятор громкости и тембра LC75342 на Atmega88 (Arduino IDE) Arduino, Электроника, Программирование, Длиннопост
Регулятор громкости и тембра LC75342 на Atmega88 (Arduino IDE) Arduino, Электроника, Программирование, Длиннопост

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

Регулятор громкости и тембра LC75342 на Atmega88 (Arduino IDE) Arduino, Электроника, Программирование, Длиннопост

Как добавить микроконтроллер Atmega88 в среду программирования Arduino IDE и прошивать микроконтроллер можно узнать из статьи http://rcl-radio.ru/?p=113040.

Перед загрузкой в настройках платы укажите частоту кварцевого резонатора (12 МГц), выбрать программатор  USBasp, в пункте Variant тип контроллера 88P/88PA, 88/88A (для Atmega88 20PU который я используя для этой статьи) или 88PB, в пункте Bootloader выберите No bootloader или Yes (UART0) если планируете загружать скетчи через UART ( USB — TTL ).

Во вкладке «Инструменты»  нажмите «Записать загрузчик«.(делается только один раз)

Регулятор громкости и тембра LC75342 на Atmega88 (Arduino IDE) Arduino, Электроника, Программирование, Длиннопост

Для запуска LCD1602 c I2C модулем на PCF8574, Вам понадобятся две библиотеки:

  • Wire_low — библиотека для работы с шиной I2C (тестовая версия)

  • Lcd1602_i2c_low — библиотека для работы с LCD1602 I2C на PCF8574

Скетч использует 5738 байт (70%) памяти устройства. Всего доступно 8192 байт.
Глобальные переменные используют 141 байт (13%) динамической памяти, оставляя 883 байт для локальных переменных. Максимум: 1024 байт.

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

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

Генератор AD9833 + ПП8-8(8А) (Arduino)

Ранее в http://rcl-radio.ru/?p=120649 рассматривался пример взаимодействия переключателя программного поворотного ПП8-8(8А) с микроконтроллерами типа Atmega8, Atmega48, Atmega88, Atmega168, Atmega328 (Arduino Nano), на этой странице будет показан практический пример использования такого переключателя совместно с модулем AD9833.

Генератор AD9833 + ПП8-8(8А) (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.

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

Более подробно об генераторе на AD9833 можно узнать на странице http://rcl-radio.ru/?p=78387.

Переключатель программный поворотный ПП8-8(8А) позволяет задавать необходимую частоту генератора на базе AD9833 в диапазоне от 0 до 9 999 999 Гц, а так же менять форму выходного сигнала.

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

Форма сигнала (синус, меандр, треугольник) задается крайним слева переключателем. Генератор фактически может выдавать частоту до 12,5 МГц, на что рассчитан программный переключатель при использовании всех секций, но чтобы не делать отдельную кнопку для изменения формы сигнала, было принято решение ограничить частоту генератора до 10 МГц и отвести под переключатель формы сигнала одну из секций переключателя.

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

Установленная частота выводится на дисплей LCD1602 c I2C модулем.

Как отмечалось в начале скетч полностью совместим с микроконтроллерами Atmega8, Atmega48, Atmega88, Atmega168, Atmega328 (Arduino Nano).

Тестирование

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

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

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

ESP32 + PCM5102A — интернет радио (2) (Arduino)

Ранее в статье http://rcl-radio.ru/?p=111051 рассматривался пример создания интернет-радио на основе ESP32 (ESP32 DevKit v1 Wi-Fi Bluetooth ESP32-WROOM-32) и звукового ЦАП PMC5102A с использованием дисплея LCD1602 + I2C, в этой статье аналогичный пример, но с использованием дисплея 0.96′ I2C 128X64 OLED.

В Интернет радио использованы следующие компоненты:

  • ESP32 DevKit v1 Wi-Fi Bluetooth ESP32-WROOM-32

  • DAC PCM5102A

  • 0.96′ I2C 128X64 OLED

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

  • Тактовая кнопка  — 2 шт

ESP32 + PCM5102A — интернет радио (2) (Arduino) Arduino, Электроника, Программирование, Самоделки, Длиннопост, Esp32

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

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

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

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

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

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

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

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

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

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

ESP32

ESP32 + PCM5102A — интернет радио (2) (Arduino) Arduino, Электроника, Программирование, Самоделки, Длиннопост, Esp32

ESP32 — серия недорогих микроконтроллеров с низким энергопотреблением. Представляют собой систему на кристалле с интегрированным Wi-Fi и Bluetooth контроллерами и антеннами. В серии ESP32 используется микроконтроллерное ядро Tensilica Xtensa LX6 в вариантах с двумя и одним ядром. В систему интегрирован радиочастотный тракт: симметрирующий трансформатор, встроенные антенные коммутаторы, радиочастотные компоненты, малошумящий усилитель, усилитель мощности, фильтры и модули управления питанием. ESP32 создан и разработан компанией Espressif Systems, китайской компанией, расположенной в Шанхае, а производится компанией TSMC по техпроцессу 40 нм. Серия является преемником микроконтроллеров ESP8266.

Характеристики ESP32 DevKit v1:

  • микроконтроллер: ESP32-WROOM-32

  • процессор: 2-ядерный Xtensa Dual-Core 32-bit LX6

  • тактовая частота процессора: 80, 160 или 240 МГц

  • оперативная память: 520 Кбайт;

  • флэш-память: 448 Кбайт;

  • преобразователь USB – UART

  • количество выводов платы: 30;

  • Bluetooth: спецификации 4.2 с функциями  BR/EDR и Low Energy

  • WiFi: стандарта IEEE 802.11b/g/n/e/i безопасность WFA, WPA/WPA2 и WAPI на частоте 2,4 ГГц со скоростью до 150 Мбит/с, встроенный стек TCP/IP

  • антенна: PCB

  • режимы беспроводной связи: STA/AP/STA+AP

  • расстояние приема/передачи в идеальных условиях: 400 м;

  • периферия: АЦП 12 бит до 18 каналов, ЦАП 8 бит 2 канала, датчик температуры, 4x SPI, 2x I2S, 2x I2C, 3x UART, Ethernet контроллер, CAN 2.0, ведущий SD/eMMC/SDIO, ведомый SDIO/SPI, инфракрасный приемопередатчик, ШИМ до 16 каналов, датчик Холла, аналоговый предусилитель, шифровальщики, хешеры, генератор случайных чисел

  • поддерживаемые среды разработки: Arduino IDE, PlatformIO, Espressif IDF (IoT Development Framework), Micropython, JavaScript, LUA

PCM5102A

  • Напряжение однополярное … 3,3 В

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

  • Динамический диапазон … 112 дБ

  • Уровень нелинейных искажений (THD+N) … -93 дБ

  • Выходное напряжение … 2.1 Vrms

  • Поддерживаемая частота дискретизации от 8 кГц до 384 кГц

  • Поддержка входных форматов данных … I2S, Left-Justified / 16, 24 и 32 бит

Схема Интернет радио

ESP32 + PCM5102A — интернет радио (2) (Arduino) Arduino, Электроника, Программирование, Самоделки, Длиннопост, Esp32
  1. Название станции (бегущая строка)

  2. Номер станции и скорость потока

  3. Настройки радио:

    • Громкость (0…22 уровень)

    • Баланс (±16 дБ)

    • Bass (-40…+16 дБ)

    • Middle (-40…+16 дБ)

    • Treble (-40…+16 дБ)

ESP32 + PCM5102A — интернет радио (2) (Arduino) Arduino, Электроника, Программирование, Самоделки, Длиннопост, Esp32

Интернет радио не содержит WEB страницы, все параметры и url адреса станций необходимо заносить в скетч:

авторизация в сети

String ssid =  "Keenetic-9009";  // ssid сети WI-FI  

String password = "32481975";  // пароль от сети WI-FI

список станций

"https://rusradio.hostingradio.ru/rusradio96.aacp",

"https://str.pcradio.ru/funradio_sk_80s90s-hi",

"http://radio.promodj.com:8000/186mph-192",

"http://live.novoeradio.by:8000/narodnoe-radio-128k",

"http://listen1.myradio24.com:9000/3355",

кол-во станций

#define CH  5  // кол-во станций

Управление Интернет радио осуществляется при помощи энкодера и двух кнопок. Кнопки позволяют переключать каналы станций, а энкодер регулировать параметры громкости, баланса и тембра. Кнопка энкодера осуществляет переход по пунктам меню.

Как добавить ESP32 в среду Ardiuno IDE можно узнать на странице http://rcl-radio.ru/?p=92558

Версия платы должна быть не ниже 1.0.5

ESP32 + PCM5102A — интернет радио (2) (Arduino) Arduino, Электроника, Программирование, Самоделки, Длиннопост, Esp32

Плата ESP32 Dev Module

ESP32 + PCM5102A — интернет радио (2) (Arduino) Arduino, Электроника, Программирование, Самоделки, Длиннопост, Esp32
ESP32 + PCM5102A — интернет радио (2) (Arduino) Arduino, Электроника, Программирование, Самоделки, Длиннопост, Esp32

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

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

Регулятор громкости и тембра на 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
24

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
82

Генератор (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
Отличная работа, все прочитано!