Postare populară Marian Postat Noiembrie 3, 2015 Postare populară Partajează Postat Noiembrie 3, 2015 (editat) Salutari tuturor. Va prezint cel mai recent proiect personal al meu, este vorba despre o sursa de laborator ajustabila U/I. Nevoia unei surse cu ceva mai mult curent decat poate aceasta: http://www.elforum.info/topic/78095-sursa-ajustabila-simetrica-de-laborator/ M-a convins in vara sa incep lucrul la o noua sursa de laborator, una cu 0-30Vcc si 0-10A. Din start am plecat pe LM317+PNP fiind o configuratie confirmata deja la cealalta sursa, astfel incat in colaborare cu Smilex am modificat schema, optimizandu-o pentru ajustare tensiune de la 0, si curent de la 0 la 10A. Proiectul a fost initiat in iulie asta vara, dar din lipsa de timp abea acum am reusit sa-l termin. Schema imi apartine si este aceasta: Configuratia LM317+PNP este destul de cunoscuta deci nu voi insista asupra ei. Am recurs la o negativa extrasa asa cum se poate observa, din insasi alimentarea regulatorului, pe care am stabilizat-o la 2,5V cu un TL431 pentru a putea avea iesire la 0V. Inca o stabilizare de +2,5V insumata cu negativa deja descrisa au constituit si alimentarea AO de la partea de curent. Ajustarea limitarii este destul de simpla ca ideie, un amplificator de eroare monitorizeaza un shunt si la depasirea pragului setat de referinta prin intermediul potentiometrului, actioneaza un tranzistor Q1 care deschizandu-se, trage pinul Adj al LM in jos catre negativa, Q2 este actionat de deschiderea Q1 si comanda un led care indica interventia limitarii. Conexiunile S- si S+ de jos sunt cele pentru afisaj, pentru partea de curent, unde am un AO neinversor comandat chiar de shuntul de pe placa regulatorului, asta pentru a nu mai folosi inca un shunt. In rest o filtrare la Adj care curata iesirea si ajuta si in urma testelor am descoperit ca ajuta si compensarea, care se face de la colectorul Q1 direct la inversoare, am gasit la teste ca este mai stabila asa, filtrarea principala este constituita din 2 electrolitici de 10mF ( 10000 uF ) la 63V, puntea redresoare una patrata la 50A. R1 semireglabil multitura 100k, asigura reglajul precis al referintei de la inversoare ( valoarea maxima ) si deci maximul curentului cu P1 la maxim. R16 semireglabil multitura 1k, asigura reglajul necesar aducerii iesirii la 0V atunci cand potentiometrul P2 de tensiune este la minim. Cablajul regulatorului deasemenea facut de mine este: Tranzistorii de putere, rezistentele din emitoarele lor si D2, sunt fixati direct pe radiator, iar legaturile se fac cu 3 fire la placa, motiv pentru care lipsesc de pe cablaj, in fapt si LM-ul este fixat tot pe radiator langa PNP-uri, si este conectat cu fire la placa. Ledurile deasemeni fixate pe panou, si conectate cu fire la placa. Transformatorul este recuperat dintr-un UPS cu 2 acumulatori inseriati, UPS-ul era functional dar nu mai avea acumulatori ( asa l-am primit ca plata pentru repararea unui amplificator ), la ceva verificari am ajuns la concluzia ca traful este tocmai bun pentru sursa asta, secundar de 30Vca masurati pe la 240Vca la retea, motiv pentru care am recurs la LM317HV care permite o diferenta pe el mai mare decat LM-ul clasic. In sarcina de 10A tensiunea din secundarul trafului scade cu cca 2,5V, ceea ce mi s-a parut in regula si a fost unul din principalele motive pentru care l-am ales. Asta este: Radiatorul este acesta: Este un monstru si principalul vinovat pentru o inghesuiala infernala in carcasa, dar isi face treaba cu brio, asadar merita. L-am curatat, i-am pregatit fata slefuind-o cat mai bine cu smirglu coala P1000 plus apa, si apoi am fixat semiconductorii pe el ( evident, pasta, mica, niplu, etc...): Una dintre cele 2 TO220 este LM317HV, iar cealalta este LM35DT, adica senzorul de temperatura necesar afisajului. Placa regulatorului: Afisajul se foloseste de PIC16F876A, quart de 4 Mhz, si LCD de 2x16, codul sursa scris de mine: /* Descriere: * Afisaj Digital Multiplu pentru Sursa de Laborator. * Afisare Tensiune 0-35Vcc; Curent 0-10A; Temperatura 0-99*C si Putere. * Protectii: * Avertizare vizuala prin LED, la atingerea pragului limita la Curent. * Blocare sursa prin decuplarea alimentarii trafului principal de catre un releu, si afisare avertisment pe ecran la atingerea a 80*C pe radiatorul regulatorului. * Configuratie: * Microcontroller PIC16F876A * Oscilator XT 4.000 Mhz * LCD Alfanumeric 2x16 caractere * Autor: Marian. * Iul-2015*///Conexiuni LCDsbit LCD_RS at RB7_bit;sbit LCD_EN at RB6_bit;sbit LCD_D4 at RB5_bit;sbit LCD_D5 at RB4_bit;sbit LCD_D6 at RB3_bit;sbit LCD_D7 at RB2_bit;sbit LCD_RS_Direction at TRISB7_bit;sbit LCD_EN_Direction at TRISB6_bit;sbit LCD_D4_Direction at TRISB5_bit;sbit LCD_D5_Direction at TRISB4_bit;sbit LCD_D6_Direction at TRISB3_bit;sbit LCD_D7_Direction at TRISB2_bit;//Declarare variabileunsigned char ch, ADCx;unsigned int Tensiune, Curent, Temp, ProtI, ProtT;unsigned long V, A, Pw, T;//Functie principalavoid main() { INTCON = 0; // Dezactivare intreruperi TRISA = 0x07; // RA0, RA1 si RA2 setate ca intrari TRISC = 0; // Portul C setat ca iesire PORTC = 0; // Resetare port C Lcd_Init(); // Initializare LCD Lcd_Cmd(_LCD_CURSOR_OFF); // Dezactivare cursor Lcd_Cmd(_LCD_CLEAR); // Stergere Ecran Delay_ms(1000); // Delay 1 secunda Lcd_Out(1,1,"Sursa Laborator"); // Mesaj initial 1, prima linie Lcd_Out(2,3,"0-35V 0-10A"); // Mesaj initial 1 linia 2 Delay_ms(3000); Lcd_Cmd(_LCD_CLEAR); // Stergere ecran Lcd_Out(1,6,"Autor"); // Mesaj initial 2, prima linie Lcd_Out(2,2,"Marian@Elforum"); // Mesaj initial 2, linia 2 Delay_ms(3000); Lcd_Cmd(_LCD_CLEAR); Lcd_Out(1,15,"C"); // Afiseaza caracter "C", linia 1, coloana 15 while (1) { //Achizitie ADC Tensiune = 0; Curent = 0; Temp = 0; for (ADCx=0; ADCx<10; ADCx++) { Tensiune += ADC_Read(0); // Achizitie ADC pentru tensiune Curent += ADC_Read(2); // Achizitie ADC pentru curent Temp += ADC_Read(1); // Achizitie ADC pentru temperatura Delay_ms(10); } //Tensiune Tensiune = Tensiune/ADCx; // Alocare valoare tensiune V = (long)Tensiune*3500; // Converteste rezultat in milivolti V = V/1023; // 0...1023 => 0...3500mV ch = V/1000; // Extrage zeci 10.00 Lcd_Chr(1,1,48+ch); // Afisare rezultat in format ASCII ch = (V/100) % 10; // Extrage unitati 01.00 Lcd_Chr_CP(48+ch); // Afiseaza rezultat in format ASCII Lcd_Chr_CP('.'); // Afiseaza caracter '.' ch = (V/10) % 10; // Extrage sutimi 00.10 Lcd_Chr_CP(48+ch); ch = V % 10; // Extrage zecimi 00.01 Lcd_Chr_CP(48+ch); LCD_Chr_CP('V'); // Afiseaza caracter 'V' Delay_ms(10); //Curent Curent = Curent/ADCx; // Alocare valoare curent A = (long)Curent*1000; // Convertire rezultat in milivolti A = A/1023; // 0..1023 => 0-1000mV ch = A/1000; // Extragere zeci Lcd_Chr(2,1,48+ch); // Scrie rezultatul in format ASCII ch = (A/100) % 10; // Extragere unitati Lcd_Chr_CP(48+ch); // Scrie rezultatul in format ASCII Lcd_Chr_CP('.'); ch = (A/10) %10; // Extragere sutimi Lcd_Chr_CP(48+ch); // Scrie rezultatul in format ASCII ch = A % 10; // Extragere zecimi Lcd_Chr_CP(48+ch); Lcd_Chr_CP('A'); // Afisare caracter 'A' la final Delay_ms(10); //Temperatura Temp = Temp/ADCx; // Alocare valoare temperatura T = (long)Temp*9900; // Converteste rezultat in milivolti T = T/1023; // 0...1023 => 0...9900mV ch = T/1000; // Extrage zeci 10.00 Lcd_Chr(1,9,48+ch); ch = (T/100) % 10; // Extrage unitati 01.00 Lcd_Chr_CP(48+ch); Lcd_Chr_CP('.'); ch = (T/10) % 10; // Extrage sutimi 00.10 Lcd_Chr_CP(48+ch); ch = T % 10; // Extrage zecimi 00.01 Lcd_Chr_CP(48+ch); Lcd_Chr_CP(223); // Afisare caracter "Grad" Delay_ms(10); //Putere Pw = V*A/1000; // Seteaza valoare Putere ch = Pw/1000; // Extrage sute Lcd_Chr(2,9,48+ch); ch = (Pw/100) % 10; // Extrage zeci Lcd_Chr_CP(48+ch); ch = (Pw/10) %10; // Extrage unitati Lcd_Chr_CP(48+ch); Lcd_Chr_CP('.'); ch = (Pw/1) % 10; // Extrage sutimi Lcd_Chr_CP(48+ch); ch = Pw % 10; // Extrage zecimi Lcd_Chr_CP(48+ch); Lcd_Chr_CP('W'); // Afiseaza "W" la sfarsit Delay_ms(10); //Protectii ProtI = ADC_Read(2); // Ahizitie ADC pentru protectie Curent if (ProtI > 1021) { PORTC.F5 = 1; // Aprinde LED daca curentul este 9.9A } else { PORTC.F5 = 0; // Resetare RC5 } ProtT = ADC_Read(1); // Achizitie ADC pentru protectie temperatura if (ProtT > 827) { PORTC.F2 = 1; // Activeaza releu daca temperatura este mai mare de 80*C Lcd_Cmd(_LCD_CLEAR); // Sterge ecran Lcd_Out(1,4,"PROTECTIE!"); // Afisare mesaj avertisment, Lcd_Out(2,1,"SUPRATEMPERATURA"); // "protectie supratemperatura" do { } // Endless loop while (1); } else { PORTC.F2 = 0; } }} Schema afisajului evident imi apartine si este: Alimentarea sa se face de la un traf separat micut de 2x9Vca@600mA. Din el se formeaza o alimentare simetrica la +/-8Vcc necesara AO, plus o alimentare simpla de 5V pentru uC, display si releu. La partea de curent IC1A monitorizeaza tensiunea de pe shunt-ul regulatorului si o amplifica cu o gama 0-5V pentru o plaja de curent 0-10A, iesirea sa comanda ADC-ul uC. La partea de temperatura avem un simplu LM35DT in capsula TO220 care monitorizeaza temperatura radiatorului si alimentat de la +8Vcc, ofera o iesire catre IC1B care este proportionala cu temperatura. R3 semireglabil multitura 20k asigura calibrarea afisajului de curent, R5 semireglabil multitura 5k asigura calibrarea afisajului temperaturii, calibrare care se face destul de simplu daca se detine un multimetru cu functie de temperatura *C, se monitorizeaza cu acesta temperatura radiatorului si se ajusteaza R5 pana afisajul indica aceeasi valoare cu multimetrul. R7 si R8 multiture de 100k si respectiv 10k asigura calibrarea afisajului de tensiune. Una din masurile de protectie este cea la supratemperatura, daca radiatorul atinge o anumita temperatura ( momentan setat pragul pe la 80*C dar nu e batut in cuie ), uC intra si ramane intr-o bucla continua in care comanda activarea portului RC2 care activeaza Q1, si acesta din urma alimenteaza releul care decupleaza alimentarea in primarul trafului de forta, concomitent se afiseaza pe display ( 2x16 ) un mesaj de avertisment, reluarea functionarii se poate face prin resetarea uC sau oprirea alimentarii. LED1 indica faptul ca s-a atins pragul maxim de curent al sursei, am setat eu indicarea undeva putin peste 9A, dar nici asta nu este batut in cuie. Cablajul tot al meu e si cam asa arata: Cateva simulari si poze cu partea de afisaj: Carcasa este una de osciloscop Romanesc E104, panourile din fata si spate sunt facute de mine din placi de cablaj simplu imprimat, am folosit softul "front panel" pentru proiectarea sa, si am transferat desenul cu metoda de transfer toner pe partea top a cablajului, decupajele s-au facut cu burghiuri si cutter. Panourile au fost consolidate structural pe dinauntru cu fasii de cablaj lipite perpendicular in puncte cheie. Dupa montaj cam asa arata interiorul: Este o inghesuiala cum n-ati vazut, si vina este in mare parte a radiatorului, dar am asigurat o buna ventilatie a interiorului ( in special a radiatorului ), si izolare optima a cablurilor, deci inghesuiala aia este una asumata si acceptata. Nu va recomand insa sa faceti ca mine, folositi-va de o carcasa ceva mai spatioasa, si eventual de un radiator montat pe dinafara, eu pe asta am avut-o si deci pe asta am folosit-o. Iata in continuare cateva teste, tensiune minima: Tensiune maxima: Curent minim: Curent maxim: Si ultimele poze: Atasez in continuare 2 arhive .rar care contin proiectele complete pentru regulator si afisaj, scheme, cablajuri, fisiere in eagle, proiect complet soft in microC, proiect simulare proteus, etc... Tot ce va trebuie pentru reproducerea sursei in caz ca sunteti interesati. http://www.mediafire.com/download/o2f7v889bccf93r/Regulator_LM317_Iadj.rar http://www.mediafire.com/download/sng8vi69p5c37hh/Afisaj.rar Aici este schema revizuită, cablajul și arhiva acestuia: https://www.elforum.info/applications/core/interface/file/attachment.php?id=133026 Rog sa fie respectata intocmai de catre oricine este interesat de proiect. Daca aveti probleme cu vreo componenta din schema, nu puneti voi la plesneala ce va vine in cap, imi spuneti mie ca nu gasiti ceva, si va recomand eu inlocuitor potrivit. Multumiri ( cer scuze daca am omis pe cineva ): Smilex pentru asistenta; D-lui Flomar60 pentru radiator; D-lui Tehnic Dan pentru carcasa; Thunderer pentru LM317HV; D-lui Vcdec pentru PIC16F876; D-lui Bolek pentru afisaj; Maxim_Sadilec pentru comutatorul cu cheie; Inchei cerandu-mi scuze pentru postarea atat de lunga insa este un proiect complex la care am lucrat foarte mult, si pe care doream sa-l prezint in detaliu asa cum merita. Va multumesc pentru atentie si pentru rabdarea de a citi prezentare aici de fata si va doresc toate cele bune. Cu stima, Marian. Editat Aprilie 26, 2020 de Marian Corectie link-uri 16 Link spre comentariu
lutza2 Postat Noiembrie 3, 2015 Partajează Postat Noiembrie 3, 2015 Nu inteleg un lucru. Vad ca se semneaza doua persoane. Dj Marik si Marian Elforum. Cine a facut sursa ? Link spre comentariu
Marian Postat Noiembrie 3, 2015 Autor Partajează Postat Noiembrie 3, 2015 Eu, Dj Marik este o porecla a mea din partea prietenilor, iar "Marian" este numele meu propriu, cu care sunt inscris aici din 2008. Link spre comentariu
milo01miau Postat Noiembrie 3, 2015 Partajează Postat Noiembrie 3, 2015 Respectele mele!!! Petru toate proiectele (la care nu multi constientizeaza munca depusa) puse la dispozitie pentru toata lumea! Numai bine. Link spre comentariu
briobit Postat Noiembrie 3, 2015 Partajează Postat Noiembrie 3, 2015 Respect pentru munca depusa dar si pentru faptul ca este publica toata documentatia. Stima. Link spre comentariu
Marian Postat Noiembrie 3, 2015 Autor Partajează Postat Noiembrie 3, 2015 Multumesc pentru aprecieri. Link spre comentariu
lrai Postat Noiembrie 3, 2015 Partajează Postat Noiembrie 3, 2015 Felicitari, dar am si eu 2 observatii. Prima e legata de transformator, trafurile de ups sunt in general economice si facute sa functioneze pe timp scurt. Chiar si cu ventilator nu rezista la putere maxima mult timp. A doua e legata de AO folosite. In cazul de fata lm358 nu e o alegere prea inspirata deoarece ai un shunt foarte mic si lm358 are ofsetul mare. Eu ti-as recomanda un lt1013 care e cam la acelasi pret si are cam aceleasi caracteristici ca 358 mai putin ofsetul care e de 10 ori mai bun. Si ultima chestia asa mai mult ca o curiozitate, care e faza cu intrerupatorul cu cheie ? Link spre comentariu
Marian Postat Noiembrie 4, 2015 Autor Partajează Postat Noiembrie 4, 2015 Asa cum am spus am testat traful inainte sa il pun la proiectul asta, ca sa ma lamuresc daca este bobinat economic l-am lasat sa functioneze in gol si s-a incalzit ce-i drept dupa mai mult timp, dar undeva pe la 45-50*C cu retea masurata de 240Vca, ceea ce mi s-a parut in regula, in sarcina bobinajul economic este irelevant, miezul nu se va incalzi mai mult indiferent de magnitudinea sarcinii, contributia la temperatura in sarcina va fi exclusiv de la pierderile pe cupru, si asa cum am zis, in 10A, caderea a fost de cca 2,5V, ceea ce nu este deloc mult pentru un asemenea curent. Nu am nici un stres in privinta trafului, oricum o astfel de sursa prin definitie nu trebuie sa functioneze permanent, dar n-as avea probleme nici sa incarc acumulatori spre exemplu. La AO am folosit alimentare simetrica pentru a evita limitarile de capat de cursa, alimentarea simetrica limiteaza si influenta offset-ului, insasi testele din poze arata asta, LM358 isi face treaba ok am aratat asta, deci nu avea sens un alt AO. Evident daca cineva doreste sa o reproduca, daca vrea poate sa foloseasca alt AO, si eventual poate ajusta schema si cablajul pentru a acomoda integratul preferat, am pus la dispozitie fisierele complete in eagle pentru asta, pentru a fi cat mai simplu de facut asta, se detine deja o configuratie testata si bine pusa la punct de mine. Intrerupatorul cu cheie il aveam printr-o cutie de mai mult timp si aici mi s-a parut tocmai potrivit, si totodata inedit, e o chestie subiectiva si atata tot, face fiecare cum vrea. Link spre comentariu
amudsen Postat Noiembrie 4, 2015 Partajează Postat Noiembrie 4, 2015 Toata consideratia pentru efortul depus, sursa arata "beton", daca nu aveam sursa duala facuta cu ajutorul d-lui Marian, ma apucam de asa ceva. Ce se intampla daca pierzi cheia? (evident intrebarea e ca o gluma, dar este asa de neobisnuit intrerupatorul ). Link spre comentariu
Marian Postat Noiembrie 4, 2015 Autor Partajează Postat Noiembrie 4, 2015 dar este asa de neobisnuit intrerupatorul Exact asta este ideea Link spre comentariu
gauss Postat Noiembrie 4, 2015 Partajează Postat Noiembrie 4, 2015 (editat) Schimba titlul ... la mine apare " la borator " , cred ca e o greseala nefericita ... Chiar n - a vazut nimeni ? ... iar o sa ma acuze lumea ca scriu la caterinca , precum la Bodega ... oricum e irelevant ... tot din " ziceri " ! Altminteri , spor ... frumos proiect ! Editat Noiembrie 4, 2015 de gauss Link spre comentariu
Marian Postat Noiembrie 4, 2015 Autor Partajează Postat Noiembrie 4, 2015 Asa este, nu stiu cum s-a strecurat eroarea asta, probabil o greseala a mea la tastare, regretabil este ca nu am verificat inainte sa postez pentru ca acum nu mai pot modifica nimic, motiv pentru care rog pe colegul moderator sa editeze titlul si sa scoata spatiul dintre "la" si "borator". Multumesc pentru observatie si totodata imi cer scuze pentru eroare. Link spre comentariu
flomar60 Postat Noiembrie 4, 2015 Partajează Postat Noiembrie 4, 2015 Eee, uite o treaba bine facuta!! Felicitari , domnul meu, pentru acest proiect finalizat cu brio! Multa munca dar si rezultatul e pe masura! Sa o folosesti sanatos si cu folos! PS. Unde ai inceput acest proiect si unde l-ai terminat... !!!! Link spre comentariu
lrai Postat Noiembrie 4, 2015 Partajează Postat Noiembrie 4, 2015 M-am uitat acum prin sertarul de piese si mai am 2 lt1013 varianta "OBSOLETE PACKAGE" care e compatibila la pini cu 358. Daca vrei sa scapi de eroare iti dau eu unul sa-l inlocuiesti in voltmetru ca acolo ai amplificare si acolo e eroarea cea mai mare. Ai mai mult de jumatate de amper eroare, eu nu l-as lasa asa mai ales ca e vorba de inlocuit o piesa pe care ti-o dau eu gratis. Tu decizi. V offset nu are legatura cu alimentarea. Link spre comentariu
Vizitator Postat Noiembrie 4, 2015 Partajează Postat Noiembrie 4, 2015 Foarte frumos, Marian, o remarca as avea si o intrebare: Remarca: ai folosit vaselina siliconica pentru ungere (nu termica), daca nu ma insel. Intrebarea: cu ce soft ai proiectat cablajul? Link spre comentariu
Postări Recomandate
Creează un cont sau autentifică-te pentru a adăuga comentariu
Trebuie să fi un membru pentru a putea lăsa un comentariu.
Creează un cont
Înregistrează-te pentru un nou cont în comunitatea nostră. Este simplu!
Înregistrează un nou contAutentificare
Ai deja un cont? Autentifică-te aici.
Autentifică-te acum