Разделы

В сети

Пользователей: 192
Из них просматривают:
Аналоги: 65. Даташиты: 70. Инструкции: 3. Новости: 15. Остальное: 3. Программы: 2. Производители: 1. Профиль пользователя: 7. Расчёты: 1. Теги: 4. Форум: 21.
Участников: 2
Гостей: 190

Google , Яндекс , далее...
Рекорд 2375 человек онлайн установлен 26.12.2015.

Партнёры


Партнёры

Новые объявления

В настоящее время нет объявлений.
Раздел: Компьютеры

Индикация активности жесткого диска на 10 светодиодах

Написал MACTEP 19.01.2013 20:00:00 (Просмотров: 107729)

Каждый корпус компьютера оснащен светодиодом на передней панели, который индицирует  работу жесткого диска. Один мерцающий светодиод лучше, чем ничего, но 10-светодиодная линейная шкала, показывающая работу жесткого диска в процентах было бы действительно удобно!



 Особенности
• дисплей с помощью 10 светодиодов указывает активность жесткого диска
• Отображение активности жесткого диска с шагом 10%
• Авария ( зависит от компьютера)
• Аккуратный компактный модуль легко помещается внутри корпуса

 

 Схема

 

 

 

Печатные платы

Печатная плата (вид со стороны деталей)

плата (детали) 

 

Печатная плата (вид со стороны проводников)

плата

 

 

 Исходный код

/*****************************************************

Project  : Bargraphanzeige für die HDD-Aktivität (10LEDs)

Version  : 1.0

Date     : 25.03.2011

 

Chip type          : ATtiny2313

Clock frequency    : 4,000000 MHz

Memory model       : Tiny

External RAM size  : 0

Data Stack size    : 32

*****************************************************/

 

#include

#include

 

#define LED_10_rot_off   PORTD.0=0

#define LED_10_rot_on    PORTD.0=1

#define LED_9_gelb_off   PORTD.1=0

#define LED_9_gelb_on    PORTD.1=1

#define LED_8_gelb_off   PORTD.2=0

#define LED_8_gelb_on    PORTD.2=1

#define LED_7_gruen_off  PORTD.3=0

#define LED_7_gruen_on   PORTD.3=1

#define LED_6_gruen_off  PORTD.4=0

#define LED_6_gruen_on   PORTD.4=1

#define LED_5_gruen_off  PORTD.5=0

#define LED_5_gruen_on   PORTD.5=1

#define LED_4_gruen_off  PORTD.6=0

#define LED_4_gruen_on   PORTD.6=1

#define LED_3_gruen_off  PORTB.0=0

#define LED_3_gruen_on   PORTB.0=1

#define LED_2_gruen_off  PORTB.1=0

#define LED_2_gruen_on   PORTB.1=1

#define LED_1_gruen_off  PORTB.2=0

#define LED_1_gruen_on   PORTB.2=1

#define Signal_Out_off   PORTB.3=0

#define Signal_Out_on    PORTB.3=1

#define Signal_HDD_In    PINB.4

 

void main(void)

{

    unsigned int zaehler_signal_on=0;

    unsigned char i=0;

 

    // Crystal Oscillator division factor: 1

    #pragma optsize-

    CLKPR=0x80;

    CLKPR=0x00;

    #ifdef _OPTIMIZE_SIZE_

    #pragma optsize+

    #endif

    // Input/Output Ports initialization

    // Port A initialization

    // Func2=In Func1=In Func0=In

    // State2=T State1=T State0=T

    PORTA=0x00;

    DDRA=0x00;

 

    // Port B initialization

    // Func7=In Func6=In Func5=In Func4=In Func3=Out Func2=Out Func1=Out Func0=Out

    // State7=T State6=T State5=T State4=P State3=0 State2=0 State1=0 State0=0 

    PORTB=0x10;

    DDRB=0x0F;

 

    // Port D initialization

    // Func6=Out Func5=Out Func4=Out Func3=Out Func2=Out Func1=Out Func0=Out

    // State6=0 State5=0 State4=0 State3=0 State2=0 State1=0 State0=0

    PORTD=0x00;

    DDRD=0x7F;

 

    TCCR0A=0x00;

    TCCR0B=0x00;

    TCNT0=0x00;

    OCR0A=0x00;

    OCR0B=0x00;

 

    TCCR1A=0x00;

    TCCR1B=0x00;

    TCNT1H=0x00;

    TCNT1L=0x00;

    ICR1H=0x00;

    ICR1L=0x00;

    OCR1AH=0x00;

    OCR1AL=0x00;

    OCR1BH=0x00;

    OCR1BL=0x00;

 

    GIMSK=0x00;

    MCUCR=0x00;

 

    TIMSK=0x00;

    USICR=0x00;

    ACSR=0x80;

 

    LED_10_rot_on;  //beim Einschalten des PC´s alle 10 LEDs Ein für 2s

    LED_9_gelb_on;

    LED_8_gelb_on;

    LED_7_gruen_on;

    LED_6_gruen_on;

    LED_5_gruen_on;

    LED_4_gruen_on;

    LED_3_gruen_on;

    LED_2_gruen_on;

    LED_1_gruen_on;

    delay_ms(2000);

    LED_10_rot_off;

    delay_ms(200);

    LED_9_gelb_off;

    delay_ms(200);

    LED_8_gelb_off;

    delay_ms(200);

    LED_7_gruen_off;

    delay_ms(200);

    LED_6_gruen_off;

    delay_ms(200);

    LED_5_gruen_off;

    delay_ms(200);

    LED_4_gruen_off;

    delay_ms(200);

    LED_3_gruen_off;

    delay_ms(200);

    LED_2_gruen_off;

    delay_ms(200);

    LED_1_gruen_off;

 

    while (1)

    {

        if(Signal_HDD_In==0)Signal_Out_on;

           //Ausgabe für HDD-LED im 200ms Zeitraster

        else Signal_Out_off;

 

        zaehler_signal_on=0;

 

        for(i=0;i<200;i++) //ca. 200ms

        {

           delay_ms(1);

           if(Signal_HDD_In==0)zaehler_signal_on++;

           //zählen wie lange das HDD-Signal in 200ms Ein ist

        }

 

        LED_10_rot_off; //alle LEDs aus

        LED_9_gelb_off;

        LED_8_gelb_off;

        LED_7_gruen_off;

        LED_6_gruen_off;

        LED_5_gruen_off;

        LED_4_gruen_off;

        LED_3_gruen_off;

        LED_2_gruen_off;

        LED_1_gruen_off;

 

        //Ausgabe der HDD Aktivität auf die LEDs in 10% Schritte alle 200ms

 

        if(zaehler_signal_on>0) LED_1_gruen_on; //1...10% HDD aktivität

        if(zaehler_signal_on>20) LED_2_gruen_on; //11...20% HDD aktivität

        if(zaehler_signal_on>40) LED_3_gruen_on; //21...30% HDD aktivität

        if(zaehler_signal_on>60) LED_4_gruen_on; //31...40% HDD aktivität

        if(zaehler_signal_on>80) LED_5_gruen_on; //41...50% HDD aktivität

        if(zaehler_signal_on>100) LED_6_gruen_on; //51...60% HDD aktivität

        if(zaehler_signal_on>120) LED_7_gruen_on; //61...70% HDD aktivität

        if(zaehler_signal_on>140) LED_8_gelb_on; //71...80% HDD aktivität

        if(zaehler_signal_on>160) LED_9_gelb_on; //81...90% HDD aktivität

        if(zaehler_signal_on>180) LED_10_rot_on; //91...100% HDD aktivität

     }

}

 

 

 Видео работы индикатора

 

Видео от КТ361

Karsten Böhme (Germany) 

Скачать файлы проекта (исходник, плата в формате eagle, плата в формате lay, исходник статьи на английском)

 

 

5
Комментарии принадлежат их авторам. Мы не несем ответственности за их содержание.

 Индикация активности жесткого диска на 10 светодиодах
Технический Директор
Технический Директор
Дата регистрации: 24.06.2011
Откуда: Мухосранск
Сообщений: 2678
не в сети
А где фьюзы взять?
Отправитель Нити

Ответы Отправитель Отправлено
 Индикация активности жесткого диска на 10 светодиодах evildesign 23.02.2013 22:57
    Индикация активности жесткого диска на 10 светодиодах KT315 24.02.2013 23:36

Разное

Интересно

Канифоль можно изготовить самому, собрав в лесу сосновую (не еловую!) смолу и перетопив ее в консервной банке.

Похожие статьи