Индикатор интенсивности работы компьютера |
Автор Trol | |||||
18.08.2007 г. | |||||
Пришла как-то в голову мысль сделать светодиодный индикатор, который будет:
А пришла она после того, как в компьютере начали разом «стучать» оба жестких диска, причиной чего, как выяснилось, послужил блок питания. В итоге, был приобретен новый БП помощнее, а старый АТХ-овый БП поставлен в другую машину, вместо имевшегося в ней AT-шного БП. Корпус у этого компьютера был еще эпохи 486-х и имел помимо кнопки «Reset» кнопку «Turbo» (которая когда-то позволяла понижать тактовую частоту процессора) и выключатель питания. В итоге, «Turbo» была «переквалифицирована» в включатель питания ATX, а на месте старого выключателя образовалась унылая дыра, которая прямо-таки просила, чтобы ее чем-то заделали. Вот, собственно, для затыкания этой дыры и задумывалcя индикатор.
Принципиальная схема получившегося устройства приведена на рис.1. и выполнена на основе микроконтроллера AT89C2051 подключенный по типовой схеме.
Индикатор подключается к блоку питания ПК через разъемы Х1-Х2. Вход HDD.IN подключается к одному из выводов светодиода, светящегося во время работы жесткого диска. В момент зажигания светодиода на этом выводе напряжение понижается, что приводит к открытию транзистора VT1. Вход HDD.IN управляет первой линейкой светодиодов - LED1-LED8. Вторая линейка светодиодов (LED9-LED16) управляется со входа RESERVE.IN и была зарезервирована для дальнейшего использования. Третья линейка индикатора (LED17-LED24) отображает активность сетевой карты. Вход NET.IN подключен непосредственно к одной ножке светодиода «Link», расположенного на сетевой карте. В моменты сетевой активности этот светодиод гаснет, и напряжение на интересующем нас выводе уменьшается с ~2В до ~0В, закрывая транзистор VT2 и зажигая светодиод LED25, выведенный на переднюю панель и горящий в моменты активности сетевой карты (т.е. когда светодиод «Link» на самой сетевухе гаснет).
Экспериментирование с подключением к светодиоду показало следующее: в момент включения ПК на светодиод подается напряжение ~5В и удерживается в течении примерно секунды, после чего уменьшается до ~2В. При этом, если этот вывод подключить к точке NET.IN, без резисторов R3, R4, то сетевая карта не будет правильно инициализирована: сетевое подключение будет определено как 10 мегабитное (вместо 100 мегабитного) , при этом, сеть работать отказывается. Это было проверено для карты Compex Ready Link RE100ATX/WOL, и применимость к другим картам остается под вопросом. Резисторы R3 и R4, подключенные ко выходу P3.3 микроконтроллера, служат для того, чтобы в момент включения схемы (т.е. и самого компьютера) установить на входе NET.IN высокий уровень для корректной инициализации сетевого адаптера. Для этого в течении секунды после запуска микроконтроллер удерживает на выходе P3.3 высокий уровень, сменяя его затем низким на все время работы индикатора.
Управляющая программа написана на ассемблере под компилятор ASEM51. Исходники программы и скомпилированный код можно скачать в файловом архиве. В файле 8051.mcu описываются константы портов микроконтроллера, файл macroses.mcu содержит описания нескольких макросов для работы с 2х-байтовыми переменными (инкремент, декремент, сложение, вычитание и сравнение). Сам код программы находится в файле indicator.a51. Программа в таймере опрашивает состояния входов устройства и в зависимости от него увеличивает/уменьшает счетчики активности. Так же вычисляется, как долго находится входы в одном и том же состоянии. В зависимости от этого подпрограммы calc_hdd_level, calc_net_level и calc_reserve_level вызываются для пересчета показаний счетчика в величину уровня (т.е., число горящих светодиодов). Когда при включении/перезагрузки ПК светодиод HDD горит непрерывно, управляющая программа определяет это и сбрасывает счетчик HDD-активности, предотвращая ложные показания индикатора. Фотография системного блока с индикатором показана на рис.2.
Добавить в любимые (0) | Просмотров: 61928
Только зарегистрированные пользователи могут оставлять коментарии. |
« Пред. | След. » |
---|