Графический индикатор своими руками

Подключение графического индикатора (KS0108) к PIC микроконтроллеру. Часть 1 — Теория

Использование графического индикатора кардинально меняет внешний вид вашего проекта. Он предоставляет больше свободы при отображении данных, чем символьный ЖК индикатор на базе контроллера HD44780. В статье мы рассмотрим как подключить графический индикатор на контроллере KS0108 (или совместимом) к микроконтроллеру PIC производства компании Microchip. Статья разделена на несколько частей, в которых мы последовательно рассмотрим аппаратную и программную части проекта.

Выбор микроконтроллера PIC16F887 связан с тем, что приложения с графическим ЖКИ требуют достаточно много ресурсов микроконтроллера (линии ввода/вывода, встроенная память) и данный микроконтроллер имеет 36 линий ввода/вывода и 14 КБайт Flash-памяти.

Графический ЖКИ, который используется в нашем проекте – это модуль WDG0151-TMI монохромного индикатора производства компании Winstar с разрешением 128×64 точки. Он выполнен на базе двух контроллеров NT7108C и NT7107C, которые совместимы с контроллерами Samsung KS0108B и KS0107B.

KS0108B – это 64 канальный точечный драйвер ЖК сегментов. Модуль WDG0151-TMI содержит два таких контроллера, чтобы обеспечить управление 128 сегментами. С другой стороны контроллер KS0107B (NT7107C) – это 64 канальный драйвер общих линий индикатора, который генерирует временные сигналы для управления двумя сегментными драйверами. Это очень распространенные и хорошо зарекомендовавшие себя контроллеры, которые применяются и в индикаторах других производителей.

Блок-схема модуля Winstar WDG0151-TMI

Контроллер NT7107C управляет 64 общими линиями дисплея (COM1 – COM64). Первый контроллер NT7108C управляет левой половиной сегментов (SEG1 – SEG64) дисплея, второй NT7108C – правой половиной сегментов (SEG65 – SEG128). Доступ к двум половинам дисплея осуществляется индивидуально посредством сигнальных линий Chip Select (CS1, CS2). Каждая половина дисплея представлена 7 горизонтальными страницами памяти, каждая высотой 8 бит (1 Байт).

Начиная с 0 страницы в левoй половине (/CS1=0), если вы передадите 1 байт данных, они будут отображены в первом столбце страницы 0. Если повторить данный процесс 64 раза и затем переключиться на вторую половину дисплея и повторить операции, пока не будет достигнута 128 позиция, мы получим отображение первых 8 линий на дисплее. Для отображения следующих 8 линий необходимо повторить эти операции, но сменив адрес страницы памяти. Общее количество байт, необходимое для отображения одного кадра (128×64 точки), в нашем случае равно 2×64×8 = 1024.

Модуль дисплея Winstar WDG0151-TMI GLCD имеет встроенный генератор отрицательного напряжения для управления контрастностью. Потенциометр регулировки контрастности (обычно 10 кОм) подключается между выводами VEE и VCC. Расположение линий ввода/вывода индикатора не стандартизировано, поэтому необходимо обратиться к технической документации на дисплей при подключении его к микроконтроллеру.

В общем случае количество выводов у графического индикатора 20. Первые два вывода – выбор контроллера левой или правой части индикатора, активный уровень – низкий, однако существуют индикаторы с высоким активным уровнем (поэтому и понадобится еще раз техническое описание используемого индикатора от производителя). С помощью вывода 6 индикатора D/I (Data/Instruction) пользователь указывает, что поступает на шину данных индикатора: данные или команды (инструкции). Управляющие сигналы R/W и E имеют такое же назначение, как и в символьных индикаторах на контроллере HD44780.

Назначение выводов модуля ЖКИ WDG0151-TMI

Источник

Создание индикатора с возможностями графического управления

Введение

Те, кто более-менее знаком с рыночными настроениями не понаслышке, знает индикатор MACD, или полное название Схождение Расхождение Скользящих Средних, знает его как мощный инструмент анализа движения цены, которым пользуются трейдеры с первых моментов появления методов компьютерного анализа. Я и сам в течение длительного времени исследовал индикатор MACD, который стабильно заработал себе место на графике, я видел множество разновидностей с разными возможностями разными алгоритмами расчета и решил свести все известные мне вариации в один индикатор.

Читайте также:  Как варить тент своими руками

Определение модификаций

Начальная подготовка индикатора

Для расчета нам потребуется параметры:

  1. Значение Быстрой Линии MACD;
  2. Значение Медленной Линии MACD;
  3. Значение Сигнальной Линии MACD;
  4. Значение Линии проверки Тренда по методу Элдера;

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

  1. Линия MACD;
  2. Сигнальная линия;
  3. Цветная гистограмма OSMA с отображением 3-х цветов.

Перейдём в меню создания индикатора:

Рис 1. Создание индикатора при помощи Мастера MQL5

Рис 2. Определение общих параметров индикатора в Мастере MQL5

Рис 3. Определение параметров отображения индикатора в Мастере MQL5

Создание индикатора

У нас появился первоначальный шаблон для создания индикатора. Сначала для нашего индикатора необходимо рассчитать MACD-линию.

Не будем углубляться в точную формулу расчета данной линии — воспользуемся функцией iMACD:

Эта функция возвращает хэндл соответствующей копии индикатора. Используя этот хэндл, в дальнейшем можно получать данные, рассчитанные соответствующим индикатором. Данные соответствующего буфера (технические индикаторы содержат рассчитанные данные в своих внутренних буферах, которых, в зависимости от индикатора, может быть до 5) можно копировать в mql5-программу при помощи функции CopyBuffer().

Далее сформируем запрос на данные MACD через функцию iMACD:

данное действие вернёт нам хэндл соответствующей копии индикатора.

Скопируем данные в необходимый нам буфер через функцию CopyBuffer:

Сформируем запрос на MACD-линию индикатора:

Получим сигнальную линию индикатора:

Теперь сведём все вместе, и посмотрим что получилось:

Теперь у нас есть посчитанная линия MACD и Сигнальная линия.

получены путём копирования, то индексация у них будет с конца графика.

Исторически сложилось так, что доступ к данным в ценовом массиве производился с конца данных. Физически новые данные всегда дописываются в конец массива, но индекс текущего (незавершенного) бара всегда равен нулю. Индекс 0 в массиве-таймсерии означает данные текущего бара, то есть бара, который соответствует незавершенному промежутку времени на данном таймфрейме.

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

Нам необходимо получить данные гистограммы — она рассчитываться путём вычитания Сигнальной линии из Линии MACD:

Сведем все вместе:

Создание графической системы управления индикатором

У нас есть 5 разновидностей данного индикатора.

Для начала реализуем пункты 3,4.

3. Показывается только oSMA-гистограмма;
4. Показываются только MACD-линии.

Создадим соответствующие кнопки.

В случае случайного удаления кнопки или сдвига при следующем тике, кнопка вернётся обратно.

Создадим условия для нажатой или не нажатой кнопки для условия 4.

Для этого надо посмотреть индексы буферов.

При нажатой кнопке Линии MACD будут рисоваться, если кнопка не нажата, то линии MACD не рисуются.

Создадим условия для нажатой или не нажатой кнопки для условия 3:

Создадим две кнопки для следующий условий и расположим их в нижнем правом углу.

Для проверки импульса по системе Элдера, необходимо добавить новый массив, в котором будут находиться значения EldersMA.

Для этого необходимо добавить единицу к общему количеству буферов.

и объявляем новый буфер.

Объявляем его как буфер для внутренних расчетов:

Теперь скопируем в него значение экспоненциальной скользящей средней:

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

Теперь распишем условия для 2-х цветной OsMA:

Читайте также:  Грунт для литопсов своими руками

Номера цветов нужно посмотреть в строчке:

причем номер первого цвета будет равен 0, второго 1, третьего 2 и так далее.

Теперь распишем условия Вариаций Импульсной системы:

Теперь вставим условия Вариаций Импульсной системы в условия отображения OsMA:

Теперь для предотвращения лишних миганий кнопок, создадим условия:

и удалим строчки смены текста из кода.

Сводим всё вместе:

Блок-схема алгоритма приведена на рис.4:

Рис 4. Блок-схема алгоритма работы индикатора

Результат работы индикатора приведен на рис. 5-7.

Заключение

Данная статья служит пособием для начинающих изучать рынки с помощью методов компьютерного анализа цены, и реализации простейших методов графического управления индикаторами. Надеюсь данная статья пополнит ваши арсенал технических навыков по созданию систем графического управления и нахождения своего собственного «Виденья рынка» путём сокрытия того что мешает =))

Источник

Графический индикатор своими руками

Войти

Авторизуясь в LiveJournal с помощью стороннего сервиса вы принимаете условия Пользовательского соглашения LiveJournal

[ userinfo | livejournal userinfo ]
[ archive | journal archive ]
Самодельный семисегментный индикатор [Feb. 4th, 2017|09:23 pm]

[ Tags | Печатные платы, Разработанные устройства, Электроника ]

Что делать, если нужен светодиодный семисегментный индикатор с высотой цифры почти 30мм, но толщиной всего 3мм?

Я честно попытался найти готовые решения с заданными параметрами, но ожидаемо — безрезультатно. Бывают довольно редкие индикаторы для SMD монтажа с толщиной 3-4мм, но высота цифры у них в два раза меньше нужной.

В результате была сделана такая плата:

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

Источник

4 простых схемы индикаторов токовой перегрузки

Одна из основных причин выхода из строя блока питания или глубокого разряда гальванических элементов /аккумуляторов – неконтролируемая перегрузка по току, которая может происходить из-за аварийных режимов (замыкание) или по другим причинам. В этой статье мы рассмотрим 4 простых схемы индикаторов токовой перегрузки, а в качестве бонуса разберем схему индикатора перегорания предохранителя.

На герконе

Самая, пожалуй, простая, но при правильной регулировке весьма эффективная схема защиты от перегрузки.

Основой устройства является обычный геркон, вокруг которого намотано определенное количество витков провода. Нагрузка питается как раз через эту обмотку. Как только ток потребления от блока питания превысит определенное значение, созданное катушкой магнитное поле заставит геркон сработать.

Тот в свою очередь включит индикацию перегрузки или исполнительное устройство. К примеру, отключит блок питания. Диаметр провода, которым наматывается катушка, зависит от тока, потребляемого нагрузкой, а количество витков – от порога срабатывания геркона. Обмотку можно сделать как на корпусе самого геркона, так и каркасе, в который вставляется геркон.

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

На двухцветном светодиоде

Эта схема достаточно интересна, но имеет существенный недостаток – большое падение напряжение на токоизмерительном резисторе. Оно (напряжение) должно быть в состоянии зажечь светодиод, а значит, нагрузка не доберет свои вольты.

Пока ток через нагрузку не превышает предельно допустимый, горит зеленый светодиод. Как только ток превысит заданное значение (устанавливается подбором токоизмерительного резистора R3), загорится красный. Цвета смешаются, и индикатор засветится желтым цветом.

Настраивается индикатор подбором резистора R1, номинал которого зависит от напряжения источника питания, и резистора R3. От него зависит порог срабатывания индикации.

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

На одноцветном диоде и диодными ключами

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

Работает устройство следующим образом. Пока ток, потребляемый нагрузкой и протекающий через резистор R3, ниже предельно допустимого, диоды D1, D2 открыты – к ним приложено прямое напряжение. Они шунтируют светодиод LED1, и он не светится. Как только ток превысит допустимый, падение напряжения на токоизмерительном резисторе увеличится настолько, что диоды закроются обратным напряжением и светодиод загорится.

Регулировка этого устройства сводится к подбору мощности и номинала токоизмерительного резистора R3, типа (по прямому напряжению падения) и количества диодов D1, D2. Возможно, придется подобрать номинал R1 – он должен обеспечивать номинальный ток через светодиод, когда диоды закроются. Его величина зависит только от величины питающего напряжения.

Для большего привлечения внимания в схеме применен мигающий светодиод L36B. Вместо указанного можно применить аналогичные по электрическим характеристикам приборы, например, L56B, L456B, L816BRC-B, L769BGR, TLBR5410. Но, в принципе, можно использовать и приборы с постоянным свечением.

С дополнительной звуковой сигнализацией

Это устройство в дополнение к световой, имеет и звуковую сигнализацию. Кроме того, использование транзистора позволило существенно уменьшить падение напряжения на токоизмерительном резисторе.

Пока ток, потребляемый нагрузкой, не превышает предельно допустимый, транзистор T1 закрыт, светодиод LED1 погашен, пьезоизлучатель EP1 молчит. При увеличении тока, падение напряжения на токоизмерительном резисторе R1 увеличивается настолько, что транзистор открывается, светодиод начинает мигать, звонок со встроенным генератором излучать прерывистый сигнал.

Пари указанных элементах схема рассчитана на напряжение 12 В. Если оно будет выше, то в цепь светодиода и пьезоизлучателя придется поставить токоограничивающий резистор. Ну и следует учитывать, что транзистор КТ361Б рассчитан на напряжение коллектор-эмиттер в 20 В.

Подбирая транзистор, стоит брать приборы с максимальным коэффициентом передачи. Это позволит существенно уменьшить номинал токоизмерительного резистора. По той же причине, если есть возможность, вместо кремниевого транзистора лучше взять германиевый, к примеру, из серий МП39-42.

Индикатор перегорания предохранителя

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

Схема достаточно интересна – в ней аж 4 диода, причем разной серии. Зачем? Дело в том, что красный и зеленый светодиоды в сборке АЛС331АМ имеют абсолютно разные характеристики, хотя в документации производитель указывает для обоих кристаллов одинаковые значения. Но если запитать оба светодиода одним и тем же напряжением/током, то разница в яркости очень заметна на глаз.

Диоды изменяют токи для каждого из кристаллов так, чтобы визуально светодиоды светились с одинаковой яркостью. Кроме того, к зеленому светодиоду (правый по схеме) при перегорании предохранителя прикладывается большое обратное напряжение, от которого и спасает диод D4.

В остальном особенностей схема не имеет. Пока предохранитель цел, оба светодиода горят (желтый цвет). Как вставка сгорела, зеленый светодиод гаснет (красный цвет, если при этом не пропало питающее напряжение). Резистор R1 ограничивает ток через светодиоды, его номинал зависит от напряжения источника питания.

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

Источник

Читайте также:  Skoda rapid своими руками
Оцените статью