1,25-12 V elektrobarošanas risinājums ar izejas sprieguma indikāciju


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;

      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){


       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;
}
UZ SĀKUMU