Радиомастер гид в мире электроники » Схемы » Интеграция с ПК » Индикация активности жесткого диска на 10 светодиодах
Информация к новости
  • Просмотров: 1858
  • Добавил: Dina
  • Дата: 22 января 2014
22 января 2014

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

Категория: Схемы » Интеграция с ПК

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


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

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

Индикация активности жесткого диска на 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&#228;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&#228;t auf die LEDs in 10% Schritte alle 200ms

        if(zaehler_signal_on>0) LED_1_gruen_on; //1...10% HDD aktivit&#228;t
        if(zaehler_signal_on>20) LED_2_gruen_on; //11...20% HDD aktivit&#228;t
        if(zaehler_signal_on>40) LED_3_gruen_on; //21...30% HDD aktivit&#228;t
        if(zaehler_signal_on>60) LED_4_gruen_on; //31...40% HDD aktivit&#228;t
        if(zaehler_signal_on>80) LED_5_gruen_on; //41...50% HDD aktivit&#228;t
        if(zaehler_signal_on>100) LED_6_gruen_on; //51...60% HDD aktivit&#228;t
        if(zaehler_signal_on>120) LED_7_gruen_on; //61...70% HDD aktivit&#228;t
        if(zaehler_signal_on>140) LED_8_gelb_on; //71...80% HDD aktivit&#228;t
        if(zaehler_signal_on>160) LED_9_gelb_on; //81...90% HDD aktivit&#228;t
        if(zaehler_signal_on>180) LED_10_rot_on; //91...100% HDD aktivit&#228;t
     }
}


Скачать архив:
Вы не можете скачивать файлы с нашего сервера

Метки к статье: Индикация активности, активность жесткого диска



Добавление комментария

Имя:*
E-Mail:*
Введите два слова, показанных на изображении: *

Друзья и партнеры:

Архив новостей

Ноябрь 2016 (1)
Сентябрь 2016 (3)
Июнь 2016 (1)
Май 2016 (1)
Апрель 2016 (1)
Март 2016 (17)
^
 
-->