
Arduino
66 постов
66 постов
Используя платформу Arduino можно собрать простые часы на индикаторах тлеющего разряда. Индикаторы на ИН-12А используются для индикации часов и минут, а индикатор ИН-15А используется как разделитель между часами и минутами.
Индикатор ИН-12А(Б)
Напряжение источника питания 200 В
Напряжение возникновения разряда 170 В
Напряжение поддержания разряда 150 В
Ток индикации для цифр 2,5 мА
Ток индикации для запятой 0,3 мА
Постоянный рабочий ток для цифр, мА 2 — 3,5
Постоянный рабочий ток для запятой 0,3 — 0,7 мА
Импульсный рабочий ток для цифр 1 — 2 мА
Импульсный рабочий ток для запятой 0,15 — 0,2 мА
Яркость свечения катодов 100 кд/м2
Угол обзора, град ±30
Обозначение вывода ИН-12А(Б)
1 — Анод
2 — Катод «0»
3 — Катод «9»
4 — Катод «8»
5 — Катод «7»
6 — Катод «6»
7 — Катод «5»
8 — Катод «4»
9 — Катод «3»
10 — Катод «2»
11 — Катод «1»
12 — Катод «запятая» (только для ИН-12Б для ИН-12А «неиспользуется»)
ИН-15А предназначен для индикации различных букв и знаков. Индикатор ИН-15А по габаритным размерам и электрическим параметрам сходен с цифровыми индикаторами ИН-12(А,Б) и может использован совместно с ними в единой конструкции.
Обозначение вывода ИН-15А
1 — Анод
2 — Катод «µ»
3 — Катод «P»
4 — Катод «-«
5 — Катод «+»
6 — Катод «m»
7 — Катод «M»
8 — Катод «K»
9 — Катод «П»
10 — Катод «%»
11 — Катод «n»
12 — не подключен
Как ранее отмечалось, что в качестве разделителя часов и минут используется индикатор ИН-15А в котором используется знаки «-» и «+». Все индикаторы в часах используются в динамической системе индикации, поэтому все одноименные катоды индикаторов (в том числе и ИН-15А) объединены. Всеми катодами индикаторов управляет высоковольтный двоично-десятичный дешифратор К155ИД1, а каждым анодом индикатора управляет высоковольтный транзисторный оптрон TLP627.
В проекте часов используется микроконтроллер LGT8F328p, как его использовать в среде программирования Arduino IDE рассказано в — http://rcl-radio.ru/?p=129966. (Возможна замена на Arduino Nano).
Схема часов
Для нормальной работы индикаторов необходимо напряжение порядка 170 В, поэтому в часах используется высоковольтный преобразователь. В преобразователе используется транзистор IRF740 который необходимо установить на небольшой радиатор, дроссель L1 высоковольтного преобразователя состоит из ферритового сердечника (гантельный сердечник) на который до заполнения намотан провод диаметром 0,27…0,32 мм.
Управление высоковольтным преобразователем осуществляется при помощи таймера контроллера, а точнее ШИМ сигналом (выход D9). Изменяя скважность ШИМ сигнала можно регулировать выходное напряжение высоковольтного преобразователя.
Для изменения выходного напряжения преобразователя необходимо изменить значение регистра:
OCR1A = 350;
Значение регистра OCR1A (9 бит 0-511) желательно выбирать в диапазоне от 150 до 400.
После загрузки скетча измерьте напряжение на конденсаторе С3, если оно меньше 170 В, то увеличьте значение регистра OCR1A, если напряжение больше 170 В, то соответственно уменьшите значение регистра OCR1A.
В подобных конструкциях часов часто возникает такое явление как паразитная засветка индикаторов, которая характерна при динамической индикации. В скетче предусмотрена задержка включения индикатора, что дает возможность практически полностью устранить паразитную засветку.
Время задержки включения (мкс) указано в строке:
#define BR 300 // 400-3000 яркость
Если после запуска часов наблюдается паразитная засветка, то рекомендую увеличить значение BR, так же следует учитывать, что при увеличении BR будет уменьшаться яркость свечения индикаторов.
Скетч - http://rcl-radio.ru/?p=132514
Термопарный ПИД регулятор — регулятор может работать со следующими типами термопар:
S — ТПП (Платина — 10 % родий/платина)
К — ТХА [Никель — хром/никель — алюминий (хромель/алюмель)]
L — ТХК (Хромель/копель)
ПИД регулятор — регулятор собран на Arduino Nano (Atmega168, Atmega328, LGT8F328 с тактовой 16 МГц), для более точного измерения термо-ЭДС термопар используется АЦП-модуль ADS1115 16 bit который позволяет измерять двух полярное напряжение в диапазоне от -256 мВ до +256 мВ, что вполне приемлемо при измерении ТЭДС термопар (1 бит = 8 мкВ).
При измерении температуры при помощи термопары необходимо учитывать температуру окружающей среды, в качестве датчика температуры окружающей среды используется цифровой датчик температуры DS18B20.
Показания текущей температуры и температура регулирования выводится на дисплей LCD1602 с модулем I2C.
Что такое ПИД терморегулятор и как его настроить рассказано в — http://rcl-radio.ru/?p=131968.
На дисплей выводится следующая информация:
Измеренная температура с учетом температуры окружающей среды (Т=)
Температура регулирования (t=)
Тип применяемой термопары L K или S (ТХА ТХК или ТППs) (type)
Мощность нагревательного уст-ва в %
Подключение термопары к терморегулятору можно напрямую или использовать термокомпенсационные провода того же типа что и термопара.
Управление терморегулятором очень простое, кнопка TIP позволяет переключать тип термопарного входа, а кнопки UP и DW позволяют изменить температуру регулирования. Температура регулирования и тип теромопарного входа сохраняются в энергонезависимой памяти.
Кнопка SET позволяет настроить ПИД регулирующие коэффициенты kp, ki, kd.
Схема терморегулятора
ПИД регулятор будет иметь диапазон регулирования от 0°С до максимальной температуры выбранного типа термопары:
ТХА до 1372 °С
ТХК до 800 °С
ТППs до 1768 °С
Регулирующий ПИД сигнал (D9) подается на светодиод (для зрительного наблюдения) и одновременно на управляющий элемент нагревателя.
ПИД сигнал это ШИМ сигнал низкой частоты (порядка 6 Гц), в процессе изменения ПИД сигнала меняется скважность импульса ШИМ сигнала.
Скетч - http://rcl-radio.ru/?p=131984
ПИД регулятором называется уст-во с управляющей обратной связью. ПИД регулятор позволяет формировать управляющий сигнал для получения необходимой точности и качества переходного процесса. В частности температурный ПИД регулятор позволяет более оптимально поддерживать установленную температуру, устранить температурные колебания вызванные включением и выключением нагревательного элемента.
ПИД регулятор формирует управляющий сигнал состоящий из трех слагаемых:
Р — пропорциональная разница входного сигнала и сигнала обратной связи (сигнал рассогласования)
I — интегральная составляющая
D — дифференциальная составляющая
Если рассматривать все эти составляющие на примере температурного регулятора, то пропорциональная составляющая P состоит из разности текущей температуры и температуры регулирования.
P = (setpoint — currentpoint)
где: setpoint — температура регулирования, currentpoint — текущая температура
Чем больше разница между текущей температуры и температуры регулирования, тем больше сигнал рассогласования. По факту это значение основной мощности нагревательного элемента. При включении например печи, P составляющая имеет максимальное значение, при этом мощность нагревателя так же максимальна. Эта составляющая позволяет разогреть печь до температуры близкую к температуре регулирования, но при этом ни когда не сможет ее достичь, так как мощность нагревательного элемента пропорционально падает по мере приближения к заданной температуре регулирования. Далее нагревательная система стабилизируется при мощности, равной тепловым потерям.
Интегральная составляющая I — это основной элемент регулирования и поддерживания заданной температуры. Мощность нагревательного элемента необходимая для достижения заданной температуры после предварительного нагрева печи при помощи сигнала рассогласования (Р) берется именно из этой составляющей для ПИД сигнала.
I = (I + (setpoint — currentpoint) * dt)
где: setpoint — температура регулирования, currentpoint — текущая температура, dt — время опроса
Интегральная составляющая пропорциональна интегралу по времени от отклонения регулируемой величины. Её используют для устранения статической ошибки. Она позволяет регулятору со временем учесть статическую ошибку.
По простому — интегральная составляющая просто копит сумму сигнала рассогласования умноженную на время опроса. По факту интегральная составляющая оценивает скорость нагрева или охлаждения печи, выдавая при это сигнал регулирования, при котором будут минимально возможные отклонения от заданной температуры.
Интегральная составляющая обладает небольшой инерцией, при быстром и не большом изменении температуры I составляющая не всегда успевает правильно среагировать на изменение температуры, эта составляющая может выдать слишком малый сигнал регулирования, что приведет к снижению температуры ниже допустимого значения или наоборот может выдать слишком большой сигнал регулирования, что приведет к превышению заданной температуры. Для устранения всех этих нюансов служит третья составляющая ПИД сигнала, это дифференциальная составляющая D.
Дифференцирующая составляющая пропорциональна темпу изменения отклонения регулируемой величины и предназначена для противодействия отклонениям от целевого значения, которые прогнозируются в будущем. Отклонения могут быть вызваны внешними возмущениями или запаздыванием воздействия регулятора на систему.
D = (((setpoint — currentpoint) — last_error) / dt)
где: setpoint — температура регулирования, currentpoint — текущая температура, last_error — величина сигнала рассогласования в предыдущем цикле измерения, dt — время опроса
По простому — дифференциальная составляющая оценивает сигнал рассогласования и вычитает из него величину сигнала рассогласования в предыдущем цикле измерения, далее полученное значение делится на время опроса.
Например, если температура в печи в одном цикле измерения повысится на 0,05 °С, то составляющая D просто сравнит это сравнит текущую температуру цикла измерения с температурой цикла предыдущего измерения и получит значение ошибки в 0,05 °С. Эта ошибка повлечет за собой небольшую поправку ПИД сигнала, которая вызовет небольшой уменьшение мощности нагревательного элемента, что приведет к уменьшению (в идеале) температуры печи на 0,05°С. Тем самым составляющая D позволяет устранить незначительные колебания температуры.
Все три составляющие сигнала P I и D имеют свои коэффициенты — kp, ki и kd. От этих коэффициентов зависит режим работы ПИД регулятора. Эти коэффициенты могут иметь абсолютно разные значения для разных систем.
PID = (kp * P) + (ki * I) + (kd * D)
Как правильно подобрать эти коэффициенты будет написано ниже, а прежде для понимания работы ПИД регулятора необходимо собрать простой ПИД регулятор на базе Arduino.
В качестве датчика температуры используется цифровой датчик DS18B20. ПИД регулятор будет иметь диапазон регулирования от 0 до 100 °С. ПИД сигнал (D9) подается на светодиод (для зрительного наблюдения) и одновременно на управляющий элемент нагревателя.
ПИД сигнал это ШИМ сигнал низкой частоты (порядка 3 Гц), в процессе изменения ПИД сигнала меняется скважность импульса ШИМ сигнала.
Так же ПИД регулятор имеет три кнопки управления, нажимая кнопки UP и DW можно увеличить или уменьшить температуру регулирования. Кнопка SET позволяет изменить коэффициенты kp, ki и kd. Информация о работе ПИД регулятора выводится дисплей LCD1602 с модулем I2C.
Основной режим работы
Регулировка kp
Регулировка ki
Регулировка kd
Методик какие значения коэффициентов использовать достаточно много, немного разобравшись в теме я понял, что не все они подходят в каких то случаях и нуждаются в уточнении. Поэтому ниже я опишу свою методику, непосредственно используемую к терморегурятору описанному в этой статье.
После сборки ПИД регулятора установите коэффициенты kp равной 1, а ki и kd равными 0.
Коэффициент kd задает первоначальную мощность печи, при коэффициенте 1, фактически мощность (отображается на дисплее в %), будет близка к 0. Плавно увеличиваете значение этого коэффициент до момента когда в печи начнет расти температура. Полученное значение умножьте на 2, это и будет первоначальное значение коэффициента kp.
Далее самый важный коэффициент — ki. В основном от этого коэффициента зависит стабильность поддержания заданной температуры печи.
После того как коэффициент kp вывел печь в режим разогрева и выхода на стабильную температуру, медленно увеличьте коэффициент ki, до момента как начнет по понемногу расти мощность нагревателя. Если температура слишком долго растет до температуры регулирования, то увеличьте коэффициент ki, если наоборот нагрев печи слишком быстрый и перепады температуры нагрева и охлаждения печи выходят за допустимые границы температуры регулирования, то уменьшите коэффициент ki, а так же можно в этом случае немного увеличить kp.
Нужно найти компромисс, при котором печь будет выходить на заданную температуру достаточно быстро и при этом колебания температуры печи должны быть минимальными.
Как только удалось подобрать коэффициент ki и колебания температуры минимальны, можно приступить к коэффициенту kd.
С kd все просто, плавно увеличиваете величину kd, до момента когда колебания температуры станут очень маленьким или исчезнуть вовсе. При этом при каждом цикле измерения может наблюдаться цикличное изменение мощность на несколько процентов. Это говорит от том, что дифференциальная составляющая пытается скомпенсировать незначительные изменения температуры. Если изменение мощности (в %) при каждом цикле очень большое, от 10 и более %, это значит что kd очень большой.
Так же если при изменении температуры регулировки, текущая температура устанавливается на новое значение с большим перепадом (сильное превышение или занижение установленной температуры, а далее установка на нужное значение), то имеется смысл увеличить kp и уменьшить ki. Из-за того что kp мал, интегральная составляющая (ki * I) успевает накопить слишком большое значение пока идет выход на заданную температуру и не успевает его уменьшить до приемлемой величины, что вызывает большой перепад температуры.
Так как печь как правило имеет инертность, то при изменении коэффициентов нужно дать время, чтобы печь смогла среагировать на изменение параметров ПИД регулятора.
Так же следует отметить, что в примере используется микроконтроллер LGT8F328 на тактовой частоте 16 МГц который имеет полную совместимость в данном примере с микроконтроллером Atmega328.
Скетч - http://rcl-radio.ru/?p=131968
Пример создания измерителя индуктивности на LGT8F328 является продолжением статьи http://rcl-radio.ru/?p=131706 посвященной примерам работы компаратора в микроконтроллере LGT8F328.
Измерение индуктивности происходит достаточно просто, так как индуктивность и емкость представляют собой колебательный контур, то компаратор совместно с колебательным контуром будет генерировать частоту, а частотомер на Arduino произведет пересчет частоты в значения индуктивности по всем известной формуле:
L = 1/ (4π²F²C)
Схема измерителя индуктивности достаточно проста, она содержит несколько резисторов и конденсаторов, а так же плату микроконтроллера и OLED дисплей.
0,91″ I2C 128×32 OLED — это компактный дисплей, который использует технологию OLED (Organic Light Emitting Diode) для отображения изображений. Дисплей имеет интерфейс I2C, который обеспечивает простое подключение к микроконтроллерам и другим устройствам.
Основные характеристики дисплея:
— Разрешение 128×32 пикселей.
— Размер дисплея 0,91 дюйма (около 2,3 см).
— Яркость до 150 кд/м².
— Контрастность 2000:1.
— Угол обзора 160 градусов.
— Поддержка интерфейса I2C с адресом 0x3C.
Дисплей 0,91″ I2C 128×32 OLED обеспечивает четкое и яркое отображение информации, которое может быть использовано в широком спектре приложений. Он легко подключается к различным устройствам, таким как Arduino, Raspberry Pi и другим микроконтроллерам.
Дополнительно, OLED-дисплей имеет низкое энергопотребление, что позволяет использовать его в батарейных устройствах. Он также обладает быстрым временем отклика и высокой контрастностью, что делает его идеальным для использования в приложениях, где требуется быстрое и точное отображение информации.
В целом, дисплей 0,91″ I2C 128×32 OLED является отличным выбором для тех, кто ищет компактный и яркий OLED-дисплей с простым подключением по интерфейсу I2C.
В измерителе используется плата разработчика LGT8F328P-LQFP32 MiniEVB, как использовать плату в среде программирования Arduino IDE рассказано в — http://rcl-radio.ru/?p=129966
LGT8F328P-LQFP32 MiniEVB — это плата разработки, основанная на микроконтроллере LGT8F328P с 32 выводами в корпусе LQFP32. Это мощный микроконтроллер, который обеспечивает высокую производительность и широкие возможности для разработки.
Основные характеристики платы LGT8F328P-LQFP32 MiniEVB:
— Микроконтроллер LGT8F328P с тактовой частотой до 32 МГц и 32 Кбайт памяти Flash.
— Поддержка интерфейсов SPI, I2C, UART, ADC и PWM.
— Встроенный USB-интерфейс для программирования и отладки.
— Низкое энергопотребление и поддержка режима сна.
— Поддержка работы от внешнего источника питания 5 В или от USB-порта.
LGT8F328P-LQFP32 MiniEVB — это отличная плата разработки для начинающих и опытных разработчиков, которые хотят создавать проекты на основе микроконтроллера LGT8F328P. Она обеспечивает легкую разработку и отладку приложений, поддерживает широкий спектр интерфейсов и имеет удобный USB-интерфейс для программирования и отладки.
Кроме того, плата LGT8F328P-LQFP32 MiniEVB имеет компактный размер и низкое энергопотребление, что позволяет использовать ее в различных приложениях, включая портативные устройства и системы автоматизации.
Измеритель индуктивности производит непрерывное измерение и выводит результат измерения на дисплей с интервалом 1 секунда. При сборке измерителя особое внимание следует уделить точности конденсатора колебательного контура, от него зависит точность измерения индуктивности. В схеме используется конденсатор номиналом 1000 пФ, но Вы можете использовать другой номиналом до 10 нФ. При этом необходимо указать его емкость в скетче.
Измеритель индуктивности имеет два диапазона мкГн и мГн, которые переключаются автоматически.
Скетч - http://rcl-radio.ru/?p=131780
ИМС TDA7718 представляет собой аудиопроцессор с микроконтроллерным управлением. TDA7718 в своем функциональном составе имеет коммутатор входов, 6 канальный выход, регулятор громкости, аттенюатор выходов, регуляторы тембра, полосовые фильтры. Управление аудиопроцессором осуществляется при помощи шины I2C.
Основные характеристики TDA7718:
Электрические характеристики:
Напряжение питания от 7,5 до 10 В, рекомендуемое напряжение питания 8,5 В
Ток потребления 29 мА
Входное сопротивление 100 кОм
Максимальное выходное напряжение 2.2 VRMS
Максимальное входное напряжение 2.0 VRMS
Отношение сигнал/шум 104 дБ
Коэффициент нелинейных искажений 0,01%
Разделение каналов 90 дБ
Тонкомпенсация:
Диапазон регулировки аттенюатора от 0 до 15 дБ, с шагом 1 дБ
Регулировка центральной полосы: 400, 800, 2400 Гц
Регулятор громкости от -31 до 21 дБ, с шагом 1 дБ
Регулятор тембра BASS (НЧ):
Регулировка уровня от -15 до 15 дБ, с шагом 1 дБ
Регулировка центральной полосы: 60, 80, 100, 200 Гц
Регулировка добротности: 1, 1.25, 1.5, 2
Регулятор тембра MIDDLE (СЧ):
Регулировка уровня от -15 до 15 дБ, с шагом 1 дБ
Регулировка центральной полосы: 0.5, 1, 1.5, 2.5 кГц
Регулировка добротности: 0.75, 1, 1.25
Регулятор тембра TREBLE (ВЧ):
Регулировка уровня от -15 до 15 дБ, с шагом 1 дБ
Регулировка центральной полосы: 10, 12.5, 15, 17.5 кГц
Аттенюаторы выхода: независимые для каждого выхода (LF, RF, LR, RR, SL, SR) от -79 до 0 дБ
Режим MUTE: уровень -90 дБ
Сабвуфер:
2 выхода (SL, SR)
Регулировка фильтра: 55, 85, 120, 160 Гц
Регулировка фазы (0, 180)
Вход:
3 стерео входа для TDA7718B и 5 для TDA7718N
1 псевдодифференциальный вход
1 дифференциальный вход
На базе Arduino можно организовать управление всеми функциями аудиопроцессора. Для простоты управления можно воспользоваться библиотекой — https://github.com/liman324/TDA7718.git
Далее показан пример регулятора тембра и громкости на основе TDA7718B, дополнительно используется энкодер ky-040, три кнопки и ИК-приемник. Информация о текущих настройках выводится на LCD2004 c I2C модулем на базе микросхемs PCF8574.
Регулятор тембра и громкости имеет в своем составе коммутатор 3 три входа с независимой для каждого входа регулировкой уровня. Регуляторы тембра, регулятор громкости, аттенюаторы выходов, регуляторы центральных полос и добротности. Все параметры сохраняются в энергонезависимой памяти.
Регулятор тембра и громкости содержит три меню, первое и основное позволяет регулировать громкость и тембры. Все функции этого меню продублированы ИК-пультом. Значения регуляторов выводятся в дБ. Для перехода по параметрам необходимо нажимать кнопку энкодера.
Дополнительно используются три кнопки (коммутация — замыкание на GND), первая кнопка осуществляет переход в меню с редко изменяемыми параметрами, вторая кнопка позволяет переключать входы, при этом поворотом ручки энкодера можно настроить усиление каждого входа, третья кнопки активирует режим MUTE. Все три кнопки продублированы ИК-пультом.
Второе и третье меню содержит редко изменяемые параметры, регулировка параметров осуществляется только при помощи энкодера.
После загрузки скетча необходимо открыть монитор порта и получить коды кнопок Вашего ИК-пульта, которые необходимо вписать в скетч.
Скетч - http://rcl-radio.ru/?p=80718
Тахометр на Arduino предназначен для измерения частоты вращения различных вращающихся деталей, таких как роторы, валы, диски и др. Принцип измерения основан на стробоскопическом эффекте, на деталь наносят яркую белую метку, которая при вращении детали зрительно будет перемещаться или останавливаться когда частота вращения детали и частота пульсации светодиода тахометра будут одинаковые.
Схема тахометра достаточно простая, для сборки Вам понадобится 2 резистора 0,125 Вт, транзистор КТ815, яркий светодиод, индикатор LCD1602 с модулем I2C, энкодер KY-040 и плата Arduino Nano.
Светодиод в моем случае использован от подсветки LED телевизора, с номинальным рабочим напряжением 3 В, мощностью 1 Вт, но Вы можете использовать любой другой светодиод белого свечения, мощностью не менее 1 Вт.
Диапазон измерения тахометра от 10 об/мин до 25000 об/мин, с шагом 0,1 об/мин. Частота пульсаций светодиода меняется при помощи энкодера, нажатие кнопки энкодера позволяет менять множитель изменения частоты (x0.1, x1.0, x10.0, x100.0).
В верхней строке индикатора показана текущая частота в об/мин (при включении установлено 1000 об/мин), во второй сроке показан множитель и частота пульсаций светодиода (F = об/мин * 60).
Для тестирования я использовал маломощный электродвигатель, на его вал при помощи корректирующей жидкости «Штрих» была нанесена метка, после запуска электродвигателя энкодером я подобрал частоту пульсации светодиода при которой метка зрительно остановила свое вращение, частота пульсаций светодиода стала равна частоте оборотов электродвигателя.
Вид метки при синхронизации вала электродвигателя с частотой пульсаций светодиода.
При провидении измерений стробоскопическим методом есть одна особенность, если Вы не знаете примерную частоту вращения вала двигателя, то при измерении метка зрительно может остановится на меньшей кратной частоте. Например если частота вращения двигателя 1200 об/мин, то метка зрительно будет останавливаться при частоте пульсаций светодиода на 600 об/мин (кратно 2), 400 об/мин (кратно 3). Для того чтобы избежать ошибки во время измерения необходимо после синхронизации метки поднять частоту до момента следующей синхронизации, если при синхронизации Вы увидите 2 метки, то предыдущее измерение было верным.
Скетч - http://rcl-radio.ru/?p=94353
ИМС PGA2311 представляет собой электронный стерео регулятор громкости, управление регулятором громкости осуществляется при помощи трех проводной шины передачи данных. PGA2311 имеет большой динамический диапазон, сверх малый коэффициент нелинейных искажений, малый уровень шумов.
Основные характеристики PGA2311:
Диапазон регулировки громкости от -95,5 дБ до +31.5 дБ с шагом 0,5 дБ (255 ступеней)
Динамический диапазон 120 дБ
Коэффициент нелинейных искажений не более 0.0002%
Межканальные перекрестные помехи не более -130 дБ
Входное напряжение 2.5 Vrms
Режим MUTE
Регулятор громкости питается от двух полярного напряжения +/- 5 В для аналогового питания, дополнительно +5 В используется для питания цифровой части микросхемы.
Используя платформу Arduino (Nano, Uno), можно сделать качественный регулятор громкости. В регуляторе громкости дополнительно использован энкодер KY-040 для управления громкостью и балансом, дополнительно используется кнопка для активации режима MUTE. Информация о режимах работы регулятора выводится на LCD дисплея LCD1602 на базе контроллера HD44780 совместно с модулем I2C. I2C модуль на базе микросхемы PCF8574 позволяют подключить символьный дисплей 1602 к плате Arduino всего по двум проводам SDA и SCL (А4 и А5), что дает возможность не использовать цифровые выходы Arduino при подключении дисплея.
Регулятор на базе Arduino имеет диапазон регулировки громкости от -95,5 дБ до +21.5 дБ (10 дБ отведено регулятору баланса), регулировка баланса от +/- 10 дБ на канал.
Скетч - http://rcl-radio.ru/?p=88921
Часы построены на wi-fi модуле NodeMcu v3 с чипом ESP8266 (ESP-12e)(Arduino IDE), в качестве сегментов часов используется адресная светодиодная RGB лента на основе чипа WS2811 (SM16703). На индикаторы часов выводится текущее время (ЧЧ:ММ.СС) и раз в минуту на 3 секунды текущая дата.
Каждый пиксель RGB ленты содержит три RGB светодиода которыми управляет микросхема WS2811. Напряжение питания RGB ленты 12 В. Каждый сегмент индикатора содержит один пиксель ленты, из которых собраны семисегментные цифры часов. Текущее время считывается с NTP-сервера при помощи платы ESP8266.
NPT– это протокол, который используется для синхронизации часов компьютера или иного устройства с сервером времени по сети. Любое сетевое устройство может послать сетевой пакет определённого вида серверу времени, а тот в ответ пришлёт точное значение времени. Запросившее устройство установит это значение на своих системных часах. Таким образом осуществляется синхронизация времени.
Управление RGB лентой осуществляется модулем NodeMcu v3 с чипом ESP8266.
Основные характеристики NodeMcu v3 (ESP-12E)
поддержка WiFi протоколов 802.11 b/g/n
Wi-Fi Direct (P2P), soft-AP
встроенный стек TCP/IP
встроенный TR переключатель, balun, LNA, усилитель мощности и соответствие сети
встроенный PLL, регуляторы, и система управления питанием
выходная мощность +20.5 дБм в режиме 802.11b
SDIO 2.0, SPI, UART
STBC, 1×1 MIMO, 2×1 MIMO
A-MPDU & A-MSDU aggregation & 0.4μs guard interval
пробуждение и отправка пакетов за время до 22 мс
Номинальное напряжение: 3,3 В
Входное напряжение: 3,7–20 В
Максимальный потребляемый ток: 220 мА
Контакты Wi-Fi модуля NodeMcu v3
Так как в качестве индикатора часов используется адресная светодиодная лента, то для ее управления понадобится всего один пин платы ESP8266 D6.
Для сборки часов необходимо отдельных 45 пикселей ленты, которые спаяны по следующей схеме:
15 и 14 сегменты (пиксели) ленты используются для индикации двоеточия, а сегмент 30 для точки.
Каждая цифра содержит семь сегментов (пикселей) ленты.
Перед загрузкой скетча Вам необходимо ознакомится со следующей статьей — wi-fi модуль NodeMcu v3 с чипом ESP8266 (ESP-12e)(Arduino IDE), так же Вам понадобятся следующие библиотеки:
Перед загрузкой скетча следует обратить внимание на строку:
NTPClient timeClient(ntpUDP, «pool.ntp.org», 21600, 3600123);// 21600 — временной сдвиг в секундах от UTC
21600 (6 часов) — временной сдвиг в секундах от UTC, установите свой временной сдвиг для Вашего региона.
Так в скетче укажите имя Вашей Wi-Fi сети и пароль.
const char *ssid = «Имя_Wi-Fi_сети «;
const char *password = «Пароль«;
Установите яркость свечения светодиодов:
brignes = 250
яркость от 10 до 255
Процесс сборки часов
Разметка
Пропил сегментов часов
Заливка сегментов эпоксидной смолой (с белым красителем)
Сборка схемы индикаторов
Тестовый запуск
Фото и видео материалы представлены: Кириллом Никофоровым (сборка и отладка проекта)
Скетч - http://rcl-radio.ru/?p=91626
Часть 2 - http://rcl-radio.ru/?p=91651 - В этой статье будет рассмотрен пример доработки часов, добавлен веб-интерфейс настройки и авторизации в сети в Wi-Fi сети.