Parasti vienkāršiem elektrobarošanas risinājumiem netiek nodrošināta ieregulētā izejas sprieguma attēlošana. Ja šāda funkcija netiek nodrošināta, tad rodas nelielas grūtības, jo pirms slodzes pieslēgšanas ir jāizmēra ieregulētais izejas spriegums, izmantojot voltmetru. Tāpēc šoreiz autors izveidojis elektrisko principiālo shēmu, ar kuras palīdzību ir iespējams nodrošināt regulējamu izejas spriegumu robežās no 1,25 līdz 12 V, kurš tiek attēlots uz četriem 7 segmentu displejiem (divi cipari pirms komata, divi cipari aiz komata).
1.1.att. Pārnēsājams elektrobarošanas avots
1.2.att. 1,25-12 V elektrobarošanas risinājums ar izejas sprieguma indikāciju
Elektriskās principiālās shēmas darbības princips ir balstīts uz LM317 sērijas lineārā sprieguma stabilizatora un ATMEGA328P sērijas mikrokontrollera.
Izmantojot mikrokontrolleri un četrus 7 segmentu displejus, tiek nodrošināta izejā ieregulētā sprieguma indikācija.
Lai uz katra 7 segmentu displeja izvadītu savu ciparu, nepieciešams nodrošināt multipleksēšanu, ja visiem displejiem ir kopīga datu līnija.
Multipleksēšanas nodrošināšanai tiek izmantoti četri bipolārie tranzistori (Q1-Q4), kur katrs no tiem paredzēts viena 7 segmentu displeja ieslēgšanai vai izslēgšanai.
R13-R16 rezistori ierobežo bipolāro tranzistoru bāzes strāvu, bet R9-R12 rezistori nodrošina zema signāla līmeņa piesaisti pie bipolārā tranzistora bāzes, lai tie nevarētu nejauši atvērties.
Strāvas ierobežošanai caur 7 segmentu displejiem tiek izmantoti 220 Ω rezistori.
Lai varētu nodrošināt regulējamu izejas spriegumu, tiek izmantots LM317 sērijas lineārais sprieguma stabilizators, kur izejas sprieguma iestatīšanai tiek izmantots sprieguma dalītājs, kuru veido R19, R20 rezistori un RV1 potenciometrs.
D1 taisngriežu diode tiek izmantota sprieguma stabilizatora aizsardzībai.
Lai varētu izmērīt un attēlot izejā ieregulēto spriegumu, tiek izmantots cits sprieguma dalītājs, kuru veido R17 un R18 rezistori.
LM7805 sērijas lineārais sprieguma stabilizators tiek izmantots kā ārējais atbalsta sprieguma avots mikrokontrollerim.
Visas elektriskās principiālās shēmas darbībai paredzēts izmantot 15 V elektrobarošanas spriegumu. Zinot to, ka lineārais sprieguma stabilizators pie lielas ieejas un izejas spriegumu starpības nespēj nodrošināt maksimālo slodzes strāvu, tad elektriskajā principiālajā shēmā paredzēts izmantot PNP struktūras bipolāro tranzistoru (Q5), kurš paredzēts lielākas slodzes strāvas nodrošināšanai.
Q5 bipolārais tranzistors atveras tad, kad caur R21 rezistoru plūstošā strāva ir pietiekami liela, kas nozīmē to, ka sākumā strāvai nepieciešams plūst caur sprieguma stabilizatoru. R21 rezistors tiek izmantots kā strāvas sensors jeb etalona pretestība.
R23 rezistors paredzēts bāzes strāvas ierobežošanai.
Trokšņu ietekmes mazināšanai, veicot izejas sprieguma mērīšanu, izmantojot sprieguma dalītāju, tiek izmantots C2 kondensators.
Pieslēgtās 15 V elektrobarošanas indikācijai paredzēta D2 gaismas diode, kuras aizsardzībai tiek izmantots R22 rezistors, kurš ierobežo strāvu.
Ieejas un izejas sprieguma pulsāciju "gludināšanai" tiek izmantoti C5, C6, C8 un C10 elektrolītiskie kondensatori, bet C1, C3, C4, C7 un C9 keramiskie kondensatori tiek izmantoti parazītiskās induktivitātes mazināšanai.
Elektriskās principiālās shēmas aizsardzībai pret pārslodzi tiek izmantots FU1 drošinātājs.
SW1 slēdzis paredzēts elektriskās principiālās shēmas ieslēgšanai un izslēgšanai.
int main(){
DDRB=0x0F;
DDRD=0xFF;
DDRC=0x00;
Vdiv = Read_ADC()*5.00/1023.00; // Aprēķina nodalīto spriegumu
Vread = Vdiv*25.00/10.00; // Izejā ieregulētais spriegums
for (j=0;j<10;j++){ // Cikls, kura laikā neizmainās attēlotā informācija
int intpart = (int)Vread; // Iegūst veselo daļu
digit1 = intpart/10; // Iegūst desmitus
digit2 = intpart%10; // Iegūst vienus
decpart = Vread - intpart; // Iegūst daļu aiz komata
decpart = decpart*100.0;
int intpart2 = (int)decpart;
digit3 = intpart2/10; // Iegūst pirmo ciparu aiz komata
digit4 = intpart2%10; // Iegūst otro ciparu aiz komata
Num_to7SEG(digit1); // Tiek attēloti desmiti
SEG1_on();
_delay_ms(5);
SEG1_off();
Num_to7SEG(digit2); // Tiek attēloti vieni
SEG2_on();
_delay_ms(5);
SEG2_off();
Num_to7SEG(digit3); // Tiek attēlots pirmais cipars aiz komata
DOT_ON();
SEG3_on();
_delay_ms(5);
SEG3_off();
Num_to7SEG(digit4); // Tiek attēlots otrais cipars aiz komata
SEG4_on();
_delay_ms(5);
SEG4_off();
DOT_OFF();
}
}
Trokšņu ietekmes mazināšanai, veicot izejas sprieguma mērīšanu, izmantojot sprieguma dalītāju, tiek izmantots C2 kondensators.
Pieslēgtās 15 V elektrobarošanas indikācijai paredzēta D2 gaismas diode, kuras aizsardzībai tiek izmantots R22 rezistors, kurš ierobežo strāvu.
Ieejas un izejas sprieguma pulsāciju "gludināšanai" tiek izmantoti C5, C6, C8 un C10 elektrolītiskie kondensatori, bet C1, C3, C4, C7 un C9 keramiskie kondensatori tiek izmantoti parazītiskās induktivitātes mazināšanai.
Elektriskās principiālās shēmas aizsardzībai pret pārslodzi tiek izmantots FU1 drošinātājs.
SW1 slēdzis paredzēts elektriskās principiālās shēmas ieslēgšanai un izslēgšanai.
int main(){
DDRB=0x0F;
DDRD=0xFF;
DDRC=0x00;
int digit1=0, digit2=0, digit3=0, digit4=0;
float Vread = 0.00, Vdiv=0.00, decpart=0.00;
int j=0;
Init_ADC();
_delay_ms(50);
while(1){
float Vread = 0.00, Vdiv=0.00, decpart=0.00;
int j=0;
Init_ADC();
_delay_ms(50);
while(1){
Vdiv = Read_ADC()*5.00/1023.00; // Aprēķina nodalīto spriegumu
Vread = Vdiv*25.00/10.00; // Izejā ieregulētais spriegums
for (j=0;j<10;j++){ // Cikls, kura laikā neizmainās attēlotā informācija
int intpart = (int)Vread; // Iegūst veselo daļu
digit1 = intpart/10; // Iegūst desmitus
digit2 = intpart%10; // Iegūst vienus
decpart = Vread - intpart; // Iegūst daļu aiz komata
decpart = decpart*100.0;
int intpart2 = (int)decpart;
digit3 = intpart2/10; // Iegūst pirmo ciparu aiz komata
digit4 = intpart2%10; // Iegūst otro ciparu aiz komata
Num_to7SEG(digit1); // Tiek attēloti desmiti
SEG1_on();
_delay_ms(5);
SEG1_off();
Num_to7SEG(digit2); // Tiek attēloti vieni
SEG2_on();
_delay_ms(5);
SEG2_off();
Num_to7SEG(digit3); // Tiek attēlots pirmais cipars aiz komata
DOT_ON();
SEG3_on();
_delay_ms(5);
SEG3_off();
Num_to7SEG(digit4); // Tiek attēlots otrais cipars aiz komata
SEG4_on();
_delay_ms(5);
SEG4_off();
DOT_OFF();
}
}
return 0;
}
}