Разделы

В сети

Пользователей: 197
Из них просматривают:
Аналоги: 69. Даташиты: 73. Инструкции: 1. Новости: 12. Остальное: 4. Профиль пользователя: 5. Форум: 33.
Участников: 2
Гостей: 195

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

Партнёры


Партнёры

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

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

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

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

Каждый корпус компьютера оснащен светодиодом на передней панели, который индицирует  работу жесткого диска. Один мерцающий светодиод лучше, чем ничего, но 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 светодиодах
Абитуриент
Абитуриент
Дата регистрации: 23.01.2013
Откуда:
Сообщений: 3
не в сети
VT1 R2 R3 прям так нужен??? Зачем штатный светодиод если ставим линейку?
R6 R5 вообще не нужно...R1 R4 сильно много. Вот 470 туда думаю подойдет.
Посмотрите внимательно даташит. Если конкретно под индикатор Жесткого диска, то:
1. Между 8 и 7 выводом 10к
2. 6 вывод кидаем на 7.
3. Между 8 и массой 3к

Все это относится к схеме http://radio-hobby.org/uploads/newbb/6140_50a7c1ad0079b.gif
Отправитель Нити

Разное

Интересно

Во время ремонта телевизора не ставьте настольную лампу на его корпус.
Она обязательно упадёт и отобьёт горловину кинескопа.

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