Схем разных индикаторов, отображающих загруженность ЦП и памяти достаточно большое количество. Но по большей части они отображают данные посредством LCD дисплея, что либо через чур мелок, либо размеры обычные, но дорогой. Как раз по данной причине я решил собрать индикатор загруженности ЦП на светодиодах.
Эта статья есть логическим продолжением для применения кода, обрисованного в третьем видеоуроке о mikroPascal.
Исходя из того, что у меня нет лазерного принтера (ЛУТ отпадает), двухъядерный процессор и один светодиод стоит приблизительно 0.8 гривны, было решено делать 3 строки светодиодов по 10 штук в каждой. Две — под индикацию загрузки процессора, и оставшаяся под память либо третье ядро (не сталкивался, но слышал).
Главная информация об устройстве:
- Напряжение питания: 5 V
- Потребляемый ток: 50 mA
- Частота обновления данных: 0,5
Сейчас возможно перейти к схеме.
Как видите, она достаточно несложная. База схемы — микроконтроллер ATmega8 (в корпусе DIP-28). Общее число подробностей — 40 шт. из них. светодиодов — 31, транзисторов — 5, другое обвязка и микроконтроллер генератора.
Не столько для экономии выводов, сколько для удобства обращения к портам я применял такое включение светодиодов для динамической индикации:
Таким методом мне удалось уложиться в два порта МК (PORTB — 6 пин, PORTC — 5 пин). Возможно было само собой разумеется применять сдвиговые регистры, но это повлекло бы за собой усложнение программы, конечно занятое место на плате. По-этому решил обойтись без них.
На схеме нет токоограничительных резисторов (применительно к светодиодам), так как они трудятся в импульсном режиме. Я применял светодиоды красного, желтого и белого цветов. Красный и желтый — ЦП, белый же для дополнительной строчка.
По окончании всех манипуляций со схемой, взялся за разводку печатной платы. Вот тут то и был зарыт кирпич. В случае если схема была набросана мин. за 5 то с платой было нужно возитсья около получаса.
В итоге она оказалась двухсторонней.
Как видите, разводка платы не самая несложная. В этом виновата в первую очередь динамическая индикация. Из-за нее было нужно часть проводников перенести на обратную сторону платы, конечно применять много переходных отверстий (по большей части для подключения светодиодов). Но, однако эту плату вероятно сделать и без ЛУТа.
И последнее относительно платы — я применял текстолит толщиной 0,5 мм, поскольку другого с двухсторонним покрытием в наличии не выяснилось.
Разглядев аппаратную часть возможно перейти к программной.
Программу для МК я как постоянно писал в среде mikroPascal for AVR (v 6.01). Так как в микропаскале нет библиотеки для микроконтроллера Atmega8, которая разрешает трудиться с USB, то выбор пал на UART. Но так как последний видеоурок по mikroPascal был про прерывания, то решил и ко мне их всунуть. И вот что в итоге оказалось:
В программе также сложностей нет. Константы в начале программы употреблялись для того, что бы не писать в порт ручками любой раз. В процедуре. вызываемой по прерыванию, употребляется таковой метод:
- Разбираем принятые эти, если они соответствуют /, то разрешаем в следующий раз программе пройти дальше.
- Расшифровываем из ANCII кодировки.
- Рассчитываем и записываем в переменную
Потом, по большей части цикле программы мы сперва сопоставляем, к какому ядру относятся полученные эти, а позже их присваиваем соответствующему элементу массива dat.
Вот и целый метод программы.
В случае если вас интересует, как эти отображаются, то все так же :
- , какая строка на данный момент обязана обновиться.
- Выбираем из массива dat необходимый элемент.
- В случае если необходимо зажечь пять либо меньше светодиодов в строчке, то значение в порт. В случае если же больше пяти (число n), то сперва зажигаем первые пять, а позже то что осталось (n-5). Все это крутится в цикле.
Из фузов необходимо выставить лишь внешний кварц (8 MHz).
В Khazama AVR Programmer это выглядит следующим образом:
Вот и все! Но в случае если у вас нет каких-то подробностей, но имеется их аналоги. Светодиоды возможно забрать каждые, подходящие по размерам и току. Микроконтроллер заменить запрещено.
Лишь забрать такой же но с любым вторым индексом (к примеру, вместо ATmega8 — ATmega8L и т.д.). Транзисторы так же возможно забрать каждые маломощные структуры p-n-p. Я применял КТ361Г (трудятся нормально, не смотря на то, что еще 1987 г. выпуска 🙂 ). Резисторы — с разбросом от указанного номинала до +/- 20 %.
И напоследок, о программе для Windows, которая руководит индикацией. Она написана в Delphi xe5 и именуется iCPU.
\
Запланирована на 2 ядра. В настройках выбирается порт, к которому подключено устройство. Вероятно применять как встроенный COM порт (через преобразователь уровней на MAX232 ), так и через виртуальный COM порт, с применением переходника на базе PL2303 и аналогичных.
У меня в городе возможно приобрести таковой кабель для ветхих моделей NOKIA.
В платка, которая с успехом может употребляться как USB-COM переходник.
Вот пара фотографий готового устройства.
Обновление от 20.07.2014:
Доработал программу, сейчас возможно выводить на 3-ю строчок загруженность памяти. Конечно небольшие исправления.
Обновление от 01.05.2015:
Всецело переписан код как firmware для МК, так и программы для Windows. Сейчас имеется отдельная версия для Windows x64.
Для МК firmware писалась в WinAVR (Cpp).
ВНИМАНИЕ! Ветхая firmware + новая версия программы НЕСОВМЕСТИМЫ, как и новая firmware + ветхая версия программы.
При firmware фузы показывать те же, что и для ветхой версии, за исключением (выставлять как на скрине):
.
Из новшеств:
- Возможность использовать выравнивание (по левому краю, по центру и по правому краю).
- Автоматическое отключение индикации через 10с (к примеру, в случае если комп загрузили в сон).
- Сейчас имеется тестовый режим, в котором включаются все светодиоды (к примеру, при первых включениях уст-ва, для обнаружения неполадок).
- В случае если у вас в совокупности многоядерный процессор, то будут отображаться лишь первые 2 ядра (на уст-ве, в программе будет видно загрузку всех ядер). В другом случае, на уст-ве будут активными лишь 1-я и 3-я строки (1 память и ядро соответственно).
Так же желаю подметить, что перед первым запуском программы, впишите номер ком порта, к которому подключено устройство, в файл settings.ini. Он лежит в папке с exe-шником. В противном случае, вероятнее, станете через каждые 0.5с приобретать окна с неточностями!
В аппаратную часть устройства никакие правки не вносились.
Мало фотографий:
Обновление от 16.05.2015:
Оптимизирован код. Добавлена возможность регулировки яркости (программный ШИМ на таймере T2). Внесены кое-какие правки в программу для Windows (сейчас, в случае если COM порт выбран неверно (порта с таким номером в совокупности нет), не будет +100500 окон с неточностями).
Источник: cxem.net
Индикатор загрузки винчестера
Важное на сайте:
- Лекции по макрокономике
- Лучшие букмекерские конторы онлайн
- Лучшие книги по forex
- Маркетинговые ходы для привлечения клиентов
- Маржинальная торговля
Самые интересные результаты статей, подобранные именно по Вашим интересам:
-
Какие индикаторы лучше использовать на бинарных опционах
В третьей части обзора индикаторов для двоичных опционов мы попытаемся ответить на вопрос, какие конкретно индикаторы лучше применять на двоичных…
-
Что показывает индикатор стохастик
Содержание Само слово «Стохастик» происходит от заглавия целой науки, имя которой «стохастика». У нас она не есть каким-то популярным предметом, не…
-
Нововведения mt4 или как установить индикаторы?
17 мая 2014 Сейчас наметилась тенденция нередкого обновления МТ4, что сулит проблеме из-за скриптов индикаторов и несовместимости/программы/советников…
-
Индикатор раскладки клавиатуры в виде флага
Апплет панели Gnome, что отображает текущую раскладку клавиатуры, в качестве индикатора применяет надписи вида США либо Рус. Я поведаю, как сделать так,…
-
23.06.2010 / admin Светодиодный индикатор низкочастотных сигналов не только информативен, но и весьма привлекательно смотрится в любой аппаратуре, исходя…
-
Опционные уровни mt4 — индикатор для нанесения разметки
Торговые стратегии, выстроенные на уровнях сопротивления и поддержки, по праву считаются универсальными. Связано это с тем, что динамика курса любой…