Для простых и компактных проектов разработанных в среде Ardino IDE, таких как например простое реле времени, логичней применять простые и недорогие микроконтроллеры. Так как Arduino IDE поддерживает микроконтроллеры серии ATtiny, мной для этого проекта был выбран микроконтроллер ATtiny13.
ATtiny13 — низкопотребляющий 8 битный КМОП микроконтроллер с AVR RISC архитектурой. Выполняя команды за один цикл, ATtiny13 достигает производительности 1 MIPS при частоте задающего генератора 1 МГц, что позволяет разработчику оптимизировать отношение потребления к производительности.
Микроконтроллер ATtiny13 отлично подходит для маленьких и дешевых проектов, а поддержка средой программирования Arduino IDE заметно упрощает работу с микроконтроллером.
Далее в статье будет рассмотрено несколько простых проектов с применением микроконтроллера ATtiny13 и 0,91′ I2C 128×32 OLED дисплея.
Для поддержки ATtiny13 в Arduino IDE необходимо выполнить несколько простых операций:
Добавление поддержки платы
Откройте в Arduino IDE вкладку Файл > Настройки и добавьте ссылку для менеджера плат
Далее перейдите во вкладку Инструменты > Плата > Менеджер плат
Выберите и установите новую плату MicroCore by MCUdude.
Далее в Инструменты > Плата выберите плату ATtiny13.
Для прошивки скетча Вам понадобится программатор USBAsp
В моем случае я использую микроконтроллер который установлен на плату переходник, схема подключения достаточно простая:
Распиновка программатора USBAsp
В настройках платы нужно выбрать поддержку Attiny13 и установить частоту 9.6 MHz internal, в пункте EEPROM выберите EEPROM not retanied, в пункте ‘Расчет времени’ выберите Micros disabled .
Далее необходимо выставить нужные фьюзы для микроконтроллера, чтобы он всегда работал на выбранной Вами частоте. Для этого в настройках Arduino IDE выберите программатор USBasb и нажмите Инструменты > Записать загрузчик. Эту операцию необходимо проводить всего один и снова повторить если Вы будете менять частоту работы микроконтроллера.
Для загрузки скетча в настройках Arduino IDE выберите программатор USBasb и во вкладке Скетч нажмите на Загрузить через программатор (или просто нажать кнопку — Загрузить).
Примеры использования ATtiny13
Термометр на DS18B20
Так как OLED экраны имеют свойство выгорать при постоянном свечении символов, то в схему термометра добавлена кнопка, при нажатии на которую загорается экран на 10 секунд а потом гаснет до следующего нажатия кнопки.
Термометр на DS18B20 с большими цифрами
Секундомер
Дискретность отсчета 0,1 секунда, максимальное время 999 минут. Первое нажатие кнопки BUTTON запускает секундомер, второе нажатие останавливает его, третье сбрасывает показания.
Ранее в http://rcl-radio.ru/?p=120649 рассматривался пример взаимодействия переключателя программного поворотного ПП8-8(8А) с микроконтроллерами типа Atmega8, Atmega48, Atmega88, Atmega168, Atmega328 (Arduino Nano), на этой странице будет показан практический пример использования такого переключателя совместно с модулем AD9833.
AD9833 — генератор сигналов с низким энергопотреблением. Позволяет генерировать сигналы с частотой до 12.5 МГц синусоидальной, треугольной и прямоугольной формы. Управление осуществляется с использованием трехпроводного интерфейса SPI.
Основные характеристики микросхемы:
Цифровое программирование частоты и фазы.
Потребляемая мощность 12.65 мВт при напряжении 3 В.
Диапазон выходных частот от 0 МГц до 12.5 МГц.
Разрешение 28 бит (0.1 Гц при частоте опорного сигнала 25 МГц).
Синусоидальные, треугольные и прямоугольные выходные колебания.
Напряжение питания от 2.3 В до 5.5 В.
Трехпроводной интерфейс SPI.
Расширенный температурный диапазон: от –40°C до +105°C.
Переключатель программный поворотный ПП8-8(8А) позволяет задавать необходимую частоту генератора на базе AD9833 в диапазоне от 0 до 9 999 999 Гц, а так же менять форму выходного сигнала.
Форма сигнала (синус, меандр, треугольник) задается крайним слева переключателем. Генератор фактически может выдавать частоту до 12,5 МГц, на что рассчитан программный переключатель при использовании всех секций, но чтобы не делать отдельную кнопку для изменения формы сигнала, было принято решение ограничить частоту генератора до 10 МГц и отвести под переключатель формы сигнала одну из секций переключателя.
Установленная частота выводится на дисплей LCD1602 c I2C модулем.
Как отмечалось в начале скетч полностью совместим с микроконтроллерами Atmega8, Atmega48, Atmega88, Atmega168, Atmega328 (Arduino Nano).
Ранее в статье 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 шт
В OLED дисплее отсутствует дополнительный слой подсветки всей поверхности экрана. Каждый пиксел, формирующий изображение, испускает самостоятельное свечение. При этом картинка получается яркой и контрастной.
Управление OLED дисплеем в данном примере осуществляется при помощи шины I2C.
Параметры дисплея SSD1306:
Технология дисплея: OLED
Разрешение дисплея: 128 на 64 точки
Диагональ дисплея: 0,96 дюйма
Угол обзора: 160°
Напряжение питания: 2.8 В ~ 5.5 В
Мощность: 0,08 Вт
Габариты: 27.3 мм х 27.8 мм х 3.7 мм
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 бит
Схема Интернет радио
Название станции (бегущая строка)
Номер станции и скорость потока
Настройки радио:
Громкость (0…22 уровень)
Баланс (±16 дБ)
Bass (-40…+16 дБ)
Middle (-40…+16 дБ)
Treble (-40…+16 дБ)
Интернет радио не содержит WEB страницы, все параметры и url адреса станций необходимо заносить в скетч:
авторизация в сети
String ssid = "Keenetic-9009"; // ssid сети WI-FI
String password = "32481975"; // пароль от сети WI-FI
Управление Интернет радио осуществляется при помощи энкодера и двух кнопок. Кнопки позволяют переключать каналы станций, а энкодер регулировать параметры громкости, баланса и тембра. Кнопка энкодера осуществляет переход по пунктам меню.
Фото 1. Радиоприемник с ламповым детектором. Вид на монтаж.
Постепенно собирая оборудование и осваивая стеклодувное дело надеюсь добраться и до самодельных вакуумных радиоламп, простейшая из которых – диод. Образцово-показательное их применение – конечно радио! Классика жанра, традиция. Простейшее же радио на простейшей радиолампе – детекторный радиоприемник с вакуумным диодом. В чистом виде в старой литературе не описан, надо полагать - слишком нерациональное по тем временам (батарейное питание, редкие и дорогие радиолампы) решение, зато нередко применялись лампы комбинированные, например, диод-пентод 1Б1П и одним баллоном можно было и продетектировать сигнал и усилить его (Рис. 2). Впрочем, чаще использовалась практическая, но и менее наглядная, схема где детектором служил участок сетка-катод – «сеточное детектирование», обычного триода (пентода).
Рис. 2. Ламповый детектор-усилитель. Вход включают вместо кристаллического детектора радиоприемника. О. Л. Бартовский. Первые шаги радиолюбителя. Изд. «Советская школа», 1962 г.
«В химически чистом виде» средневолновой детекторный радиоприемник с радиолампой встретил в литературе современной – последствие нынешнего ренессанса, если не сказать более, применения вакуумных приборов. Конечно такой радиоприемник в обычном своем качестве - технический курьез. Здесь же – он не более чем этакий наглядный стенд для демонстрации работоспособности электровакуумного прибора (ЭВП), отсюда кстати и упрощенные требования к колебательному контуру. Для начала соберем радиоприемник-стенд с фабричной радиолампой. Электровакуумный аналог классических для детектора Д2, Д9 – 6Х2П. Косвенный накал 6,3 В Х 300 мА, два раздельных экранированных диода (Рис. 3).
Рис. 3. Цоколевка 6Х2П. Лампа в семиштырьковом пальчиковом исполнении.
К делу.
Первым долгом изготовим контур радиоприемника. Ныне, средневолновые вещательные радиостанции прекратили свое существование. Мощное АМ вещание перебралось или осталось на волнах коротких (КВ). Построив невысокую Г-образную антенну (конец провода ~14 м длиной заброшен на дерево высотой ~7 м) включил ее на вход фабричного КВ радио и покрутил ручки. Нашел сосредоточие мощных вещательных станций в районе 6 МГц. Макетным образом собрал простейший детектор на германиевом точечном диоде с контуром на эту частоту и убедился в работоспособности антенны и приемника. «Международное радио Китая» можно было сносно слушать через небольшие активные акустические системы (АС) для компьютера.
Фото 4. Контурную катушку на 6 МГц (вместе с собственной емкостью антенны), намотал проводом Ø1 мм на толстостенном пластиковом каркасе Ø92 мм. 15 витков.
Фото 5. Прошлый макетный вариант радио показал – лучший прием был при небольшой индуктивной связи антенной катушки с контурной. Достаточно было поднести к ней свернутый несколько раз длинный антенный провод (на фото - голубого цвета).
Фото 6. Здесь, такой виток связи сделал стационарным и регулируемым – на подвижном бумажном каркасе-гильзе сверху катушки контурной.
Подвижный каркас выклеил прямо на намотанной контурной катушке – по бокам от нее выровнял высоту каркаса двумя полосками ватмана временно закрепленными липкой лентой. Из нескольких слоев такого же ватмана выклеил подвижную гильзу и намотал на нее катушку связи – 3 витка провода потоньше, Ø около 0,5 мм.
Фото 7. Контурная катушка, снятая катушка связи. Последняя с небольшим трением перемещается поверх контурной. Положение ее подбирается при настройке по максимальной громкости передачи в наушниках.
Фото 8. Детекторное радио требует высокоомных наушников, малочувствительных и давно снятых с производства. Заменить их можно наушниками современными, низкоомными но с согласующим трансформатором.
Очень хорошо подойдут старые ТВЗ, ТВК от ламповых телевизоров или маломощные сетевые с аналогичными моточными данными. Свой ТВ-ЗШ нашел в непотребном виде, но с целыми катушками. Стальную обойму и недостающие пластины магнитопровода подобрал от других аналогичных трансформаторов. Вставил немагнитную прокладку из листа писчей бумаги (~0,1 мм) на случай применения лампового однотактного усилительного каскада. Собранный магнитопровод со всех сторон простучал на ровной деревяшке резиновой киянкой и поместил в обойму.
Фото 9. Мой радиоприемник имеет несколько тяжелых элементов. Их следует закрепить на едином основании иначе работать со схемой будет крайне неудобно.
В своем деревянном хламе подобрал некрупный обрезок 10 мм фанеры, из кусочков соснового брусочка сделал, и приколотил гвоздиками, ножки.
Фото 10. Контурную катушку закрепил тремя нетолстыми саморезами. Насквозь через фанерку, в массивный пластик каркаса.
У трансформатора отогнул четыре лапки на обойме и прижал их коротенькими саморезами с широкими шляпками. Разъем для наушников – старый ненужный переходник для гнезда Ø 6.3 мм, приклеил его термоклеем к деревянному шасси и припаял к низкоомной обмотке трансформатора гибким монтажным проводом. Диод-детектор – стеклянный Д2. Подвигал катушки, попереключал антенну с заземлением и лучшего, самого громкого результата добился используя катушки наоборот – верхняя подвижная 3 витка – контурная, нижняя 15 витков – связи (?). ЧуднО. На мое «Радио Китая» местами наплывают какие-то французы (?) но это черт с ними. Работает хорошо - вполне громко и четко, конечно с учетом характерных КВ «замираний сигнала». Блокировочный конденсатор параллельно нагрузке детектора (высокоомная обмотка трансформатора) паче чаяний громкости не добавил, но звучание сделал басовитее и приятнее, при этом почти пропал зуд от регулятора-диммера паяльника поблизости.
Фото 11. Нетолстые выводы катушки тоже неплохо бы закрепить на основании, например, на винтовых клеммах. Для них подобрал латунный пруток. Как раз более-менее соответствующий стержню под М4.
Отрезал две заготовки, зачистил и обработал на точиле торцы, в тисках нарезал М4 под ходовые гайки. Порывшись в своих закромах подобрал комплект неоцинкованных (гальваническая пара – харам!) шайб и гаечек.
Фото 12. Просверлил отверстия, укоротил обратные части шпилек ювелирным лобзиком, собрал клеммы. Провода от катушки укоротил по месту, зачистил, залудил, зажал между верхним комплектом шайб. Нанес пояснительные надписи.
Фото 13. Для 6Х2П нашлась стандартная керамическая панелька. Подобрал для нее две одинаковых длинных шестигранным стойки.
Парой гибких изолированных монтажных проводов сделал выводы к питанию накала, соединения от анода-катода одножильным нетонким медным луженым проводом – зачищенный от лаковой изоляции старый обмоточный. Стойки закрепил на деревянной панели винтиками М3, насквозь. Задействован только один диод, выводы второго свободны. Ламповый вариант работает тоже неплохо. Особенной теплоты в звучании не обнаружено, но в темноте светится красиво. Питание накала – от лабораторного стабилизированного, регулируемого БП.
L2 – 15 витков провода Ø1,0 мм на каркасе 92 мм. L1 - 3 витка провода Ø0,5 мм на каркасе (Ø~98 мм) поверх L2. Верхняя катушка с легким трением перемещается по L2, ее положение следует подобрать один раз по максимальной громкости в телефонах. Детектор Д – полупроводниковый «кристаллический» типа Д2, Д9, Д18 или один из диодов 6Х2П (Рис.3). Трансформатор согласующий, от старого лампового телевизора или радиоприемника, наушники низкоомные.
На базе Arduino и аудиопроцессоре BD37033FV можно собрать довольно качественный регулятор тембра и громкости. В качестве органов управления регулятором тембра и громкости применены кнопки, энкодер и ИК пульт.
Аудиопроцессор BD37033FV имеет несколько входов и выходов, в данном случае будет использовано только три стерео входа и шесть выходов (ПК ЛК фронт, ПК ЛК тыл, два выхода сабвуфера).
Ранее в статье рассматривался пример создания на основе аудиопроцессора BD37033FV регулятора громкости и тембра с использованием дисплея LCD1602 + I2C, в этой статье аналогичный пример, но с использованием дисплея 0.96′ I2C 128X64 OLED.
В 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
ИК пульт — Работает только в основном меню (регулировка громкости, тембра и переключение входов)
Основное меню
В основное меню собраны основные параметры такие как громкость, тембр (ВЧ, СЧ, НЧ), выбор входа и регулировка предусилителя входа (независимый для каждого входа). Выбор параметра осуществляется при помощи кнопки энкодера, а изменение параметра при помощи поворота ручки энкодера, дополнительно для управления аудиопроцессором используются кнопки выбора входа, активация режима MUTE и переключения с основного меню на вспомогательное (и наоборот). В основном меню так же все параметры можно изменить при помощи ИК пульта.
Второе меню
Во втором меню находятся редко изменяемые параметры, в нем ИК пульт недоступен. Для перехода во второе меню нужно нажать кнопку MENU_SET, выбор параметра меню осуществляется при помощи кнопки энкодера, а изменение параметра при помощи поворота ручки энкодера и кнопки INPUT (кнопка отвечает за изменение дополнительно параметра пункта меню).
Для управления регулятором подойдет практически любой пульт ИК, для поддержки Вашего пульта необходимо прописать коды кнопок в скетч:
#define IR2 0x33B820DF // button encoder
#define IR3 0x33B8946B // mute
#define IR4 0x33B810EF // >>>
#define IR5 0x33B8E01F // <<<
#define IR6 0x33B844BB // INPUT
Для получения кодов кнопок Вашего пульта загрузите скетч и откройте монитор порта, при нажатии кнопки пульта его код будет отображен в мониторе порта.
Ранее в http://rcl-radio.ru/?p=58563 описывался пример использования аудиопроцессора TDA7313 под управлением Arduino Nano с дисплеем LCD1602, на этой странице будет рассмотрен аналогичный пример но с использованием дисплея LCD2004 c I2C модулем на базе микросхем PCF8574, что позволяет подключать символьный дисплей LCD2004 к плате Arduino всего по двум проводам SDA и SCL (А4 и А5).
Микросхема 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 по линиям
В данном примере применены несколько модулей, таких как энкодер KY-040, часы реального времени DS3231, LCD2004_I2C, ИК-датчик VS1838B. Управление параметрами аудиопроцессора осуществляется при помощи 4-х кнопок — STANDBY, MUTE, SET, INPUT и энкодера KY-040.
В проекте используется два меню, в первом меню выводятся основные параметры аудиопроцессора — громкость, тембр НЧ и ВЧ, индикатор входа и часы. Во втором меню осуществляется регулировка дополнительных параметров — аттенюаторы выходов, включение или выключение тонкомпенсации, яркость подсветки дисплея в активном режиме и в режиме STANDBY.
Дополнительно имеется меню входов которое активируется нажатием кнопки INPUT, при этом происходит переключение входа и имеется возможность изменить регулировку предусилителя входа (независимая для каждого входа) при помощи энкодера.
Так как предусмотрена управляемая яркость подсветки дисплея, то можно установить яркость подсветки в основном режиме и в режиме STANDBY (как правило с пониженной яркостью подсветки), регулировка яркости подсветки осуществляется в меню №2.
Подсветка — убрать перемычку с модуля I2C PCF8574 и подключить вывод модуля к цифровому выходу Arduino D6. Перед подключением замерить ток подсветки который не должен превышать 20 мА (у моего модуля ток не более 15 мА, замер производить между контактами перемычки).
Максимальный выходной ток одного выхода Arduino Nano не должен превышать 40 мА.
В проекте используются часы реального времени DS3231, текущее время выводится в меню №1, а так же в режиме STANDBY.
Установить текущее время можно двумя способами:
Установки времени через скетч:
Раскомментируйте строку:
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)
Для получения кодов кнопок Вашего пульта загрузите скетч и откройте монитор порта, при нажатии кнопки пульта его код будет отображен в мониторе порта.
В проекте предусмотрен выход STANDBY для управления режим STANDBY усилителя мощности, а так же режим MUTE. Все параметры сохраняются в энергонезависимую память, сохранение происходит в момент перехода в режим STANDBY.
Ранее на сайте рассматривались примеры создания генератора на модуле AD9833 и частотомера, но это были отдельные проекты, на этой странице будет рассмотрен пример создания генератора и частотомера в одном проекте.
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 МГц.
Ранее в 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 дБ
Схема регулятора громкости достаточно проста, выводы 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
В платформе Arduino адрес I2C 7 бит, поэтому вместо 0х88 (0B10001000), указывается 0х44 (0B1000100).
Регулятор громкости на PT2258 содержит следующие компоненты:
Плата Arduino Nano
Дисплей LCD2004 с модулем I2C
Часы реального времени DS3231
Энкодер KY-040
Три тактовые кнопки
ИК-датчик VS1838B
Схема регулятора громкости
Основные функциональные возможности регулятора громкости:
Основное меню:
Регулировка громкости 64 уровня (64 дБ), осуществляется при помощи энкодера и ИК пульта
Вывод даты и времени
Второе меню (для перехода в меню нажать кнопку SET, нажимая на кнопку энкодера можно перебирать пункты меню)
По канальная регулировка аттенюаторов выходов в диапазоне от 0 до 15 дБ
Регулировка яркости подсветки дисплея в обычном режиме и в режиме STANDBY
Меню коррекции времени
Режим установки-корректировки времени: Нажать и удерживать кнопку энкодера, далее нажать кнопку SET, после появится меню корректировки времени, параметры перебираются кнопкой энкодера, ручка энкодера меняет выбранный параметр.
Режим MUTE, активируется при помощи кнопки MUTE или ИК пульта
Режим STANDBY, активируется при помощи кнопки или ИК пульта
Так как предусмотрена управляемая яркость подсветки дисплея, то можно установить яркость подсветки в основном режиме и в режиме STANDBY (как правило с пониженной яркостью подсветки), регулировка яркости подсветки осуществляется в меню №2.
Подсветка — убрать перемычку с модуля I2C PCF8574 и подключить вывод модуля к цифровому выходу Arduino D6. Перед подключением замерить ток подсветки который не должен превышать 20 мА (у моего модуля ток не более 15 мА, замер производить между контактами перемычки).
Максимальный выходной ток одного выхода Arduino Nano не должен превышать 40 мА.
ИК пульт дублирует работу энкодера и кнопок. Для управления регулятором подойдет практически любой пульт ИК, для поддержки Вашего пульта необходимо прописать коды кнопок в скетч:
#define POWER 0x33B800FF
#define VOLUME_UP 0x33B8E01F
#define VOLUME_DW 0x33B810EF
#define MUT 0x33B8946B
Для получения кодов кнопок Вашего пульта загрузите скетч и откройте монитор порта, при нажатии кнопки пульта его код будет отображен в мониторе порта.