liman324

Программирование микроконтроллеров, PHP. rcl-radio.ru | forum.rcl-radio.ru
Пикабушник
Дата рождения: 28 августа
2772 рейтинг 110 подписчиков 0 подписок 70 постов 22 в горячем
16

Часы на ИН-12А (ИН-15А) (LGT8F328)

Используя платформу Arduino можно собрать простые часы на индикаторах тлеющего разряда. Индикаторы на ИН-12А используются для индикации часов и минут, а индикатор ИН-15А используется как разделитель между часами и минутами.

Часы на ИН-12А (ИН-15А) (LGT8F328) Arduino, Часы, Ретро, Самоделки, Длиннопост
Часы на ИН-12А (ИН-15А) (LGT8F328) Arduino, Часы, Ретро, Самоделки, Длиннопост

Индикатор ИН-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(А,Б) и может использован совместно с ними в единой конструкции.

Часы на ИН-12А (ИН-15А) (LGT8F328) Arduino, Часы, Ретро, Самоделки, Длиннопост

Обозначение вывода ИН-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).

Часы на ИН-12А (ИН-15А) (LGT8F328) Arduino, Часы, Ретро, Самоделки, Длиннопост

Схема часов

Часы на ИН-12А (ИН-15А) (LGT8F328) Arduino, Часы, Ретро, Самоделки, Длиннопост

Для нормальной работы индикаторов необходимо напряжение порядка 170 В, поэтому в часах используется высоковольтный преобразователь. В преобразователе используется транзистор IRF740 который необходимо установить на небольшой радиатор, дроссель L1 высоковольтного преобразователя состоит из ферритового сердечника (гантельный сердечник) на который до заполнения намотан провод диаметром 0,27…0,32 мм.

Часы на ИН-12А (ИН-15А) (LGT8F328) Arduino, Часы, Ретро, Самоделки, Длиннопост

Управление высоковольтным преобразователем осуществляется при помощи таймера контроллера, а точнее ШИМ сигналом (выход 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

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

ТЕРМОПАРНЫЙ ПИД — регулятор

Термопарный ПИД регулятор — регулятор может работать со следующими типами термопар:

  • S — ТПП (Платина — 10 % родий/платина)

  • К — ТХА [Никель — хром/никель — алюминий (хромель/алюмель)]

  • L — ТХК (Хромель/копель)

ПИД регулятор — регулятор собран на Arduino Nano (Atmega168, Atmega328, LGT8F328 с тактовой 16 МГц), для более точного измерения термо-ЭДС термопар используется АЦП-модуль ADS1115 16 bit который позволяет измерять двух полярное напряжение в диапазоне от -256 мВ до +256 мВ,  что вполне приемлемо при измерении ТЭДС термопар (1 бит = 8 мкВ).

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

Показания текущей температуры и температура регулирования выводится на дисплей LCD1602 с модулем I2C.

ТЕРМОПАРНЫЙ ПИД — регулятор Arduino, Электроника, Термопара, Длиннопост

Что такое ПИД терморегулятор и как его настроить рассказано в — http://rcl-radio.ru/?p=131968.

На дисплей выводится следующая информация:

  • Измеренная температура с учетом температуры окружающей среды (Т=)

  • Температура регулирования (t=)

  • Тип применяемой термопары L K или S (ТХА ТХК или ТППs) (type)

  • Мощность нагревательного уст-ва в %

Подключение термопары к терморегулятору можно напрямую или использовать термокомпенсационные провода того же типа что и термопара.

Управление терморегулятором очень простое, кнопка TIP позволяет переключать тип термопарного входа, а кнопки UP и DW позволяют изменить температуру регулирования. Температура регулирования и тип теромопарного входа сохраняются в энергонезависимой памяти.

Кнопка SET позволяет настроить ПИД регулирующие коэффициенты kp, ki, kd.

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

ТЕРМОПАРНЫЙ ПИД — регулятор Arduino, Электроника, Термопара, Длиннопост

ПИД регулятор будет иметь диапазон регулирования от 0°С до максимальной температуры выбранного типа термопары:

  • ТХА до 1372 °С

  • ТХК до 800 °С

  • ТППs до 1768 °С

Регулирующий ПИД сигнал (D9) подается на светодиод (для зрительного наблюдения) и одновременно на управляющий элемент нагревателя.

ПИД сигнал это ШИМ сигнал низкой частоты (порядка 6 Гц), в процессе изменения ПИД сигнала меняется скважность импульса ШИМ сигнала.

ТЕРМОПАРНЫЙ ПИД — регулятор Arduino, Электроника, Термопара, Длиннопост
ТЕРМОПАРНЫЙ ПИД — регулятор Arduino, Электроника, Термопара, Длиннопост
ТЕРМОПАРНЫЙ ПИД — регулятор Arduino, Электроника, Термопара, Длиннопост
ТЕРМОПАРНЫЙ ПИД — регулятор Arduino, Электроника, Термопара, Длиннопост
ТЕРМОПАРНЫЙ ПИД — регулятор Arduino, Электроника, Термопара, Длиннопост

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

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

ПИД-регулятор DS18B20

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

ПИД регулятор формирует управляющий сигнал состоящий из трех слагаемых:

  • Р — пропорциональная разница входного сигнала и сигнала обратной связи (сигнал рассогласования)

  • 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 Arduino, Электроника, Самоделки, Длиннопост

В качестве датчика температуры используется цифровой датчик DS18B20. ПИД регулятор будет иметь диапазон регулирования от 0 до 100 °С. ПИД сигнал (D9) подается на светодиод (для зрительного наблюдения) и одновременно на управляющий элемент нагревателя.

ПИД сигнал это ШИМ сигнал низкой частоты (порядка 3 Гц), в процессе изменения ПИД сигнала меняется скважность импульса ШИМ сигнала.

Так же ПИД регулятор имеет три кнопки управления, нажимая кнопки UP и DW можно увеличить или уменьшить температуру регулирования. Кнопка SET позволяет изменить коэффициенты kp, ki и kd. Информация о работе ПИД регулятора выводится дисплей LCD1602 с модулем I2C.

Основной режим работы

ПИД-регулятор DS18B20 Arduino, Электроника, Самоделки, Длиннопост

Регулировка kp

ПИД-регулятор DS18B20 Arduino, Электроника, Самоделки, Длиннопост

Регулировка ki

ПИД-регулятор DS18B20 Arduino, Электроника, Самоделки, Длиннопост

Регулировка kd

ПИД-регулятор DS18B20 Arduino, Электроника, Самоделки, Длиннопост

Методик какие значения коэффициентов использовать достаточно много, немного разобравшись в теме я понял, что не все они подходят в каких то случаях и нуждаются в уточнении. Поэтому ниже я опишу свою методику, непосредственно используемую к терморегурятору описанному в этой статье.

После сборки ПИД регулятора установите коэффициенты 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) успевает накопить слишком большое значение пока идет выход на заданную температуру и не успевает его уменьшить до приемлемой величины, что вызывает большой перепад температуры.

Так как печь как правило имеет инертность, то при изменении коэффициентов нужно дать время, чтобы печь смогла среагировать на изменение параметров ПИД регулятора.

Форум — http://forum.rcl-radio.ru/viewtopic.php?id=636

Так же следует отметить, что в примере используется микроконтроллер LGT8F328 на тактовой частоте 16 МГц который имеет полную совместимость в данном примере с микроконтроллером Atmega328.

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

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

Измеритель индуктивности на LGT8F328

Пример создания измерителя индуктивности на LGT8F328 является продолжением статьи http://rcl-radio.ru/?p=131706 посвященной примерам работы компаратора в микроконтроллере LGT8F328.

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

L = 1/ (4π²F²C)

Схема измерителя индуктивности достаточно проста, она содержит несколько резисторов и конденсаторов, а так же плату микроконтроллера и OLED дисплей.

Измеритель индуктивности на LGT8F328 Arduino, Электроника, Самоделки, Длиннопост

0,91″ I2C 128×32 OLED — это компактный дисплей, который использует технологию OLED (Organic Light Emitting Diode) для отображения изображений. Дисплей имеет интерфейс I2C, который обеспечивает простое подключение к микроконтроллерам и другим устройствам.

Измеритель индуктивности на LGT8F328 Arduino, Электроника, Самоделки, Длиннопост

Основные характеристики дисплея:

— Разрешение 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. Это мощный микроконтроллер, который обеспечивает высокую производительность и широкие возможности для разработки.

Измеритель индуктивности на LGT8F328 Arduino, Электроника, Самоделки, Длиннопост

Основные характеристики платы 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 нФ. При этом необходимо указать его емкость в скетче.

Измеритель индуктивности на LGT8F328 Arduino, Электроника, Самоделки, Длиннопост

Измеритель индуктивности имеет два диапазона мкГн и мГн, которые переключаются автоматически.

Измеритель индуктивности на LGT8F328 Arduino, Электроника, Самоделки, Длиннопост
Измеритель индуктивности на LGT8F328 Arduino, Электроника, Самоделки, Длиннопост

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

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

TDA7718 (Arduino)

ИМС 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 дифференциальный вход

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

На базе Arduino можно организовать управление всеми функциями аудиопроцессора. Для простоты управления можно воспользоваться библиотекой — https://github.com/liman324/TDA7718.git

Далее показан пример регулятора тембра и громкости на основе TDA7718B, дополнительно используется энкодер ky-040, три кнопки и ИК-приемник. Информация о текущих настройках выводится на LCD2004 c I2C модулем на базе микросхемs PCF8574.

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

Регулятор тембра и громкости имеет в своем составе коммутатор 3 три входа с независимой для каждого входа регулировкой уровня. Регуляторы тембра, регулятор громкости, аттенюаторы выходов, регуляторы центральных полос и добротности. Все параметры сохраняются в энергонезависимой памяти.

Регулятор тембра и громкости содержит три меню, первое и основное позволяет регулировать громкость и тембры. Все функции этого меню продублированы ИК-пультом. Значения регуляторов выводятся в дБ. Для перехода по параметрам необходимо нажимать кнопку энкодера.

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

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

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

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

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

После загрузки скетча необходимо открыть монитор порта и получить коды кнопок Вашего ИК-пульта, которые необходимо вписать в скетч.

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

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

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

Тахометр на Arduino

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

Схема тахометра достаточно простая, для сборки Вам понадобится 2 резистора 0,125 Вт, транзистор  КТ815, яркий светодиод, индикатор LCD1602 с модулем I2C, энкодер KY-040 и плата Arduino Nano.

Светодиод в моем случае использован от подсветки LED телевизора, с номинальным рабочим напряжением 3 В, мощностью 1 Вт, но Вы можете использовать любой другой светодиод белого свечения, мощностью не менее 1 Вт.

Тахометр на Arduino Arduino, Электроника, Самоделки, Программирование, Видео, YouTube, Длиннопост

Диапазон измерения тахометра от 10 об/мин до 25000 об/мин, с шагом 0,1 об/мин. Частота пульсаций светодиода меняется при помощи энкодера, нажатие кнопки энкодера позволяет менять множитель изменения частоты (x0.1, x1.0,  x10.0, x100.0).

Тахометр на Arduino Arduino, Электроника, Самоделки, Программирование, Видео, YouTube, Длиннопост

В верхней строке индикатора показана текущая частота в об/мин (при включении установлено 1000 об/мин), во второй сроке показан множитель и частота пульсаций светодиода (F = об/мин * 60).

Для тестирования я использовал маломощный электродвигатель, на его вал при помощи корректирующей жидкости «Штрих» была нанесена метка, после запуска электродвигателя энкодером я подобрал частоту пульсации светодиода при которой метка зрительно остановила свое вращение, частота пульсаций светодиода стала равна частоте оборотов электродвигателя.

Вид метки при синхронизации вала электродвигателя с частотой пульсаций светодиода.

Тахометр на Arduino Arduino, Электроника, Самоделки, Программирование, Видео, YouTube, Длиннопост

При провидении измерений стробоскопическим методом есть одна особенность, если Вы не знаете примерную частоту вращения вала двигателя, то при измерении метка зрительно может остановится  на меньшей кратной частоте. Например если частота вращения двигателя 1200 об/мин, то метка зрительно будет останавливаться при частоте пульсаций светодиода на 600 об/мин (кратно 2), 400 об/мин (кратно 3). Для того чтобы избежать ошибки во время измерения необходимо после синхронизации метки поднять частоту до момента следующей синхронизации, если при синхронизации Вы увидите 2 метки, то предыдущее измерение было верным.

Тахометр на Arduino Arduino, Электроника, Самоделки, Программирование, Видео, YouTube, Длиннопост

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

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

PGA2311 — регулятор громкости (Arduino)

ИМС 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 дБ на канал.

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

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

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

Большие часы на RGB светодиодной ленте WS2811 (ESP8266)

Часы построены на wi-fi модуле NodeMcu v3 с чипом ESP8266 (ESP-12e)(Arduino IDE), в качестве сегментов часов используется адресная светодиодная RGB лента на основе чипа WS2811 (SM16703). На индикаторы часов выводится текущее время (ЧЧ:ММ.СС) и раз в минуту на 3 секунды текущая дата.

Большие часы на RGB светодиодной ленте WS2811 (ESP8266) Arduino, Электроника, Программирование, Самоделки, Видео, YouTube, Длиннопост

Каждый пиксель RGB ленты содержит три RGB светодиода которыми управляет микросхема WS2811. Напряжение питания RGB ленты 12 В. Каждый сегмент индикатора содержит один пиксель ленты, из которых собраны семисегментные цифры часов. Текущее время считывается с NTP-сервера при помощи платы ESP8266.

NPT– это протокол, который используется для синхронизации часов компьютера или иного устройства с сервером времени по сети. Любое сетевое устройство может послать сетевой пакет определённого вида серверу времени, а тот в ответ пришлёт точное значение времени. Запросившее устройство установит это значение на своих системных часах. Таким образом осуществляется синхронизация времени.

Большие часы на RGB светодиодной ленте WS2811 (ESP8266) Arduino, Электроника, Программирование, Самоделки, Видео, YouTube, Длиннопост
Большие часы на RGB светодиодной ленте WS2811 (ESP8266) Arduino, Электроника, Программирование, Самоделки, Видео, YouTube, Длиннопост

Управление RGB лентой осуществляется модулем NodeMcu v3 с чипом ESP8266.

Основные характеристики NodeMcu v3 (ESP-12E)

Большие часы на RGB светодиодной ленте WS2811 (ESP8266) Arduino, Электроника, Программирование, Самоделки, Видео, YouTube, Длиннопост
  • поддержка 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

Большие часы на RGB светодиодной ленте WS2811 (ESP8266) Arduino, Электроника, Программирование, Самоделки, Видео, YouTube, Длиннопост

Так как в качестве индикатора часов используется адресная светодиодная лента, то для ее управления понадобится всего один пин платы ESP8266 D6.

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

Большие часы на RGB светодиодной ленте WS2811 (ESP8266) Arduino, Электроника, Программирование, Самоделки, Видео, YouTube, Длиннопост

15 и 14 сегменты (пиксели) ленты используются для индикации двоеточия, а сегмент 30 для точки.

Каждая цифра содержит семь сегментов (пикселей) ленты.

Большие часы на RGB светодиодной ленте WS2811 (ESP8266) Arduino, Электроника, Программирование, Самоделки, Видео, YouTube, Длиннопост

Перед загрузкой скетча Вам необходимо ознакомится со следующей статьей — 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

Процесс сборки часов

Разметка

Большие часы на RGB светодиодной ленте WS2811 (ESP8266) Arduino, Электроника, Программирование, Самоделки, Видео, YouTube, Длиннопост

Пропил сегментов часов

Большие часы на RGB светодиодной ленте WS2811 (ESP8266) Arduino, Электроника, Программирование, Самоделки, Видео, YouTube, Длиннопост
Большие часы на RGB светодиодной ленте WS2811 (ESP8266) Arduino, Электроника, Программирование, Самоделки, Видео, YouTube, Длиннопост

Заливка сегментов  эпоксидной смолой  (с белым  красителем)

Большие часы на RGB светодиодной ленте WS2811 (ESP8266) Arduino, Электроника, Программирование, Самоделки, Видео, YouTube, Длиннопост
Большие часы на RGB светодиодной ленте WS2811 (ESP8266) Arduino, Электроника, Программирование, Самоделки, Видео, YouTube, Длиннопост

Сборка схемы индикаторов

Большие часы на RGB светодиодной ленте WS2811 (ESP8266) Arduino, Электроника, Программирование, Самоделки, Видео, YouTube, Длиннопост

Тестовый запуск

Большие часы на RGB светодиодной ленте WS2811 (ESP8266) Arduino, Электроника, Программирование, Самоделки, Видео, YouTube, Длиннопост

Фото и видео материалы представлены: Кириллом Никофоровым (сборка и отладка проекта)

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

Часть 2 - http://rcl-radio.ru/?p=91651 - В этой статье будет рассмотрен пример доработки часов, добавлен веб-интерфейс настройки и авторизации в сети в Wi-Fi сети.

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