0

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

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

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

1

Printed Circuit Boards

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

2

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

3

Code Source

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

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

}

}

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

radio-hobby.org

administrateur

Laisser un commentaire

Your email address will not be published. Required fields are marked *