svm86 Postat Iulie 14, 2012 Partajează Postat Iulie 14, 2012 Inainte sa o vand (din lipsa de spatiu si timp sa mai lucrez acasa), poate este cineva interesat sa vada o varianta de statie de lipit comandata cu PWM. Inspirat fiind de schema lui wolf, am ajuns la varianta urmatoare: Detalii: Transformator -2 x 12V 3000 mA Letcon de 48W - cu termocupla K Letconul este comandat cu mosfet. PIC16f1826 5 volti obitinut cu sursa coboratoare de tensiune folosind mc34063. Punte redresoare + capacitati - letconul comandat cu PWM de catre PIC (DC) Pentru afisare am folosit: 1 led Power ON, 3 leduri (verde- sub pragul impus, galben-ok, rosu-peste pragul impus) Am programat 3 temperaturi de lucru. Se pot selecta cu un switch (3 pozitii). Ventilatorul este pentru decor. (Pe placa nu am decat 5 volti - nefiind suficienti sa invarta ventilatorul). Ca solutie se poate realiza separat un step-down catre 12volti pentru alimentarea lui. poate mai simplu un 7812- dar nu este eficient. Carcasa este o sursa de PC mica. Pentru AO am folosit 2 rezistente de precizie - cred ca sunt un model mai vechi Am sa adaug si schema facuta Altium Designer, codul sursa in C (CCS). -Luni 16.07.2012 poze cu statia de lpit https://plus.google.com/u/0/11400502709 ... xaQSyPvNEz ratza: titlu editat pentru mai multă claritate. Link spre comentariu
H Robert Postat Iulie 14, 2012 Partajează Postat Iulie 14, 2012 Vezi ca ai pus albumul pe privat si nu putem sa vedem pozele. Link spre comentariu
svm86 Postat Iulie 15, 2012 Autor Partajează Postat Iulie 15, 2012 Vezi ca ai pus albumul pe privat si nu putem sa vedem pozele.Multumesc de observatie.Interesant ca erau publice (nu sunt obisnuit cu google plus, public poate fi considerat si pentru cercul tau de prieteni). Link spre comentariu
briobit Postat Iulie 15, 2012 Partajează Postat Iulie 15, 2012 deci se poate o poza pana la urma ca sunt interesat de cum este realizata Link spre comentariu
svm86 Postat Iulie 15, 2012 Autor Partajează Postat Iulie 15, 2012 https://lh4.googleusercontent.com/-3zk5oyCw0GA/UAJgZ46tQ8I/AAAAAAAAAUE/GiF1nJZc1yE/s711/2012-07-14 https://lh4.googleusercontent.com/-LQPmf97jwWM/UAJgXNDIVPI/AAAAAAAAAT0/MMUYlhkVeNU/s711/2012-07-14 https://lh4.googleusercontent.com/-MdNXp97wpf4/UAJgVtX6WmI/AAAAAAAAATk/-KtsfuaOZFg/s711/2012-07-14 https://lh3.googleusercontent.com/-SoXGtwWwOZI/UAJgTxBMo3I/AAAAAAAAATY/xiU8kthNnUQ/s711/2012-07-14 https://lh3.googleusercontent.com/-SugtnLLfsBs/UAJgSNFfSLI/AAAAAAAAAVM/A_bhqh1qz2s/s711/2012-07-14 https://lh3.googleusercontent.com/-U5zQ6fZWMB0/UAJgQfUSuuI/AAAAAAAAAS4/C6Uu5mX562A/s711/2012-07-14 https://lh4.googleusercontent.com/-OfpfQke03Gk/UAJgOiYu8FI/AAAAAAAAASo/vinnYWxpYR4/s711/2012-07-14 https://lh6.googleusercontent.com/-OWfPBVh9Zv0/UAJgMnaU0dI/AAAAAAAAASY/_1jisiDIUeQ/s711/2012-07-14 https://lh4.googleusercontent.com/--cShY2nSXfE/UAJgK6eVPwI/AAAAAAAAAVg/W8k5ZMrXEyc/s711/2012-07-14 https://lh5.googleusercontent.com/-jqT_JEzMV9k/UAJgJDO1RFI/AAAAAAAAAR8/_6WX3evyMCU/s711/2012-07-14 sau http://photobucket.com/statie-de-lipit Link spre comentariu
svm86 Postat Iulie 16, 2012 Autor Partajează Postat Iulie 16, 2012 LOAD = letconulU2M = mosfetR6m - nu a fost echipat Statie de lipit1.pdf Link spre comentariu
ratza Postat Iulie 17, 2012 Partajează Postat Iulie 17, 2012 Mişto ideea. Ce temperaturi presetate are? Pune şi codul sau hex-ul. Link spre comentariu
svm86 Postat Iulie 17, 2012 Autor Partajează Postat Iulie 17, 2012 TEMPERATURI: 270, 350, 400 Codul sursa: #include <16F1826.h>//#device ICD=TRUE#device adc=16#FUSES NOWDT //No Watch Dog Timer#FUSES INTRC_IO //Internal RC Osc, no CLKOUT#FUSES NOPUT //No Power Up Timer#FUSES PROTECT //Code not protected from reading#FUSES MCLR //Master Clear pin enabled#FUSES CPD //No EE protection#FUSES NOBROWNOUT //No brownout reset#FUSES FCMEN //Fail-safe clock monitor enabled#FUSES WDT_SW #FUSES NOCLKOUT #FUSES NOWRT //Program memory not write protected//#FUSES NOVCAP #FUSES PLL#FUSES DEBUG #FUSES BORV19#FUSES NOLVP //No low voltage prgming, B3(PIC16) or B5(PIC18) used for I/O#use delay(clock=8000000)#use rs232(baud=9600, xmit=PIN_B7,rcv=PIN_B6)#bit ADPREF1=0x9e.1#bit ADPREF0=0x9e.0#bit FVREN=0x117.7#bit ADFVR0=0x117.0#bit ADFVR1=0x117.1#bit INTOSC=0x99.1#define KP 3#define KI 0#define KD 0unsigned int16 temperatura,temp,setare,t10;unsigned char PID;//PIDsigned int16 integral_err=0;signed int16 prev_err=0;#INT_AD //BUG pt PIC16f1826 - trebuie folosita intreruperea pentru a iesi din sleepvoid AD_isr(void){} //masura temperaturavoid masura_temperatura(){ set_adc_channel( 0 ); read_adc(ADC_START_ONLY ); sleep(); temp=read_adc(ADC_READ_ONLY); //temperatura = temp*8600; ; //scalare 4,096 volt =1024 pasi si scalare x214 //temperatura =temp*0.007637; // valoarea de pe ADC temperatura =temp*0.0067; //valoarea calculata cu factorul de amplificare 214 }//-----------------------------------------------------------void init(){ SET_TRIS_A(0xFF); SET_TRIS_B(0xFF); setup_spi(SPI_SS_DISABLED); setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1); setup_timer_1(T1_DISABLED ); setup_timer_2(T2_DIV_BY_1, 127, 1); setup_comparator(NC_NC_NC_NC); setup_oscillator(OSC_8MHZ|OSC_INTRC|OSC_PLL_ON,0); INTOSC=1; setup_adc_ports( sAN0 |VSS_VREF ); // gresit partial ADPREF1 =1; ADPREF0 =1; //[VREF_4096 FVREN=1; ADFVR1 = 1; ADFVR0 = 1; setup_adc(ADC_CLOCK_INTERNAL ); enable_interrupts(INT_AD); enable_interrupts(GLOBAL); output_low(PIN_B3); // Set CCP1 output low setup_ccp1(CCP_OFF); // Configure CCP1 as a PWM //setup_timer_2(T2_DIV_BY_16, 250, 1); // 500 Hz //set_pwm1_duty(0); // 0% duty cycle on pin C2 //output_high(PIN_B3); //LETCON //delay_ms(150);}unsigned char PID_control(){signed int16 error;signed int16 delta_err;signed int16 p_out;signed int16 i_out;signed int16 d_out;signed int16 output;error = setare - temperatura;delta_err = prev_err - error;integral_err+= error;if(integral_err > 127) integral_err = 127;if(integral_err < -127) integral_err = -127;p_out = error * KP;i_out = integral_err * KI;d_out = delta_err * KD;output = p_out + i_out + d_out;//output = error * KP;if(output > 127)output = 127;if(output < -127)output = -127;prev_err = error;return (unsigned char)output + 127;}void main(){unsigned i; setup_spi(SPI_SS_DISABLED); setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1); setup_timer_1(T1_DISABLED ); setup_timer_2(T2_DIV_BY_1, 127, 1); setup_comparator(NC_NC_NC_NC); setup_oscillator(OSC_8MHZ|OSC_INTRC|OSC_PLL_ON,0); INTOSC=1; setup_adc_ports( sAN0 |VSS_VREF ); // gresit partial ADPREF1 =1; ADPREF0 =1; //[VREF_4096 FVREN=1; ADFVR1 = 1; ADFVR0 = 1; setup_adc(ADC_CLOCK_INTERNAL ); enable_interrupts(INT_AD); enable_interrupts(GLOBAL); setare=150;while(1){output_low(PIN_B3);delay_ms(3);if( input(PIN_A1)==1) setare=0;if(input(PIN_B2)==0 && input(PIN_A1)==0)//rosu{ setare=400; output_high(PIN_A2);} else output_low(PIN_A2);if(input(PIN_B0)==0 && input(PIN_A1)==0 )//galben { setare=350; output_high(PIN_A3);} else output_low(PIN_A3); if(input(PIN_B1)==0 && input(PIN_A1)==0)//verde{ setare=270; output_high(PIN_A4);} else output_low(PIN_A4);if(setare > temperatura ){ output_high(PIN_A4); //letconul este rece}if(setare < temperatura ){ output_high(PIN_A2);// atentie temperatura mai mare decat setata } masura_temperatura();printf("\n\r T= %Lu si trebuie sa fie %Lu si PID= %u \n\r",temperatura,setare,PID); //DEBUG cu PICKIT PID = PID_control();for(i=127;i<PID ;i++) //trebuie ridicata temperatura{ output_high(PIN_B3); //LETCON delay_ms(1);}for(i=127;i>PID ;i--) //nu trebuie ridicata temperatura{ output_low(PIN_B3); //LETCON delay_ms(1);}}}Poate este neclar unde este folosit PWM; realizat soft for(i=127;i { output_high(PIN_B3); //LETCON delay_ms(1); } for(i=127;i>PID ;i--) //nu trebuie ridicata temperatura { output_low(PIN_B3); //LETCON delay_ms(1); } Nu am continuat proiectul... dar se poate porni modulul de PWM si modifica factorul de umplere in raport cu variabila PID. Suplimentar se poate modifica algoritmul de PID/parametrii acestuia. Am folosit si pickit pt interfata cu calculatorul, pentru a observa mai bine temperatura de lucru. Link spre comentariu
rosmarin Postat August 19, 2012 Partajează Postat August 19, 2012 Laudabila ideea propusa si realizata in forma prezentata de dvs.Rog respectuos daca aveti amabilitatea sa ducem o idee pana la capat.Una este sa trezim interesul si alta sa finalizam un proiect.In masura posibilitatilor pe care le aveti de libertate constructiva asi fi foarte interesat si nu numai eu de acest proiect.BOALA ROMANILOR IN GENERAL: Nu finalizam nimic, deoarece suntem presati de alte noutati,sarim usor de la una la alta,vesnic in cautare. Acest lucru caracterizeaza in general oamenii dotati, vesnic in cautare de alte solutii Este o parere personala care poate sa nu coincida cu a altora.SCUZE. Link spre comentariu
svm86 Postat August 19, 2012 Autor Partajează Postat August 19, 2012 Laudabila ideea propusa si realizata in forma prezentata de dvs.Rog respectuos daca aveti amabilitatea sa ducem o idee pana la capat.Una este sa trezim interesul si alta sa finalizam un proiect.In masura posibilitatilor pe care le aveti de libertate constructiva asi fi foarte interesat si nu numai eu de acest proiect.BOALA ROMANILOR IN GENERAL: Nu finalizam nimic, deoarece suntem presati de alte noutati,sarim usor de la una la alta,vesnic in cautare. Acest lucru caracterizeaza in general oamenii dotati, vesnic in cautare de alte solutii Este o parere personala care poate sa nu coincida cu a altora.SCUZE.Proiectul l-am facut, testat, construit (vreo 3 variante de PCB), am facut cateva lipituri cu aceasta statie - proiectul este functional - si da mai poate fi imbunatatit.Nu inteleg rostul comentariului adresat. Link spre comentariu
ratza Postat August 20, 2012 Partajează Postat August 20, 2012 Probabil s-a legat de asta: Nu am continuat proiectul... dar se poate porni modulul de PWM si modifica factorul de umplere in raport cu variabila PID. Link spre comentariu
rosmarin Postat August 20, 2012 Partajează Postat August 20, 2012 Intocmai.Scuze .Nu a fost cu intentie rautacioasa.Apreciez solutia si initiativa.Succes in abordarea altor subiecte. Link spre comentariu
svm86 Postat August 20, 2012 Autor Partajează Postat August 20, 2012 Probabil s-a legat de asta: Nu am continuat proiectul... dar se poate porni modulul de PWM si modifica factorul de umplere in raport cu variabila PID. Nu am continuat... vroiam sa adaug un LCD, senzori de temperatura care sa sesize stationarea in suport -> sa apreasca incalzirea... Nu am scris: nu am terminat proiectul, si ca statie nu este functionala.Ca orice produs se poate face mai bun. Acum o masina este finalizata.. sau apare o versiune mai buna - si aici ma refer facuta de acelasi producator...Ce vroiam sa spun eu: codul sursa cel de sus, este compilat si incarcat in statia de lipit => produs final PENTRU MINE. Link spre comentariu
Vlad Mihai Postat Noiembrie 15, 2012 Partajează Postat Noiembrie 15, 2012 Salut intenţionez să fac şi eu ceva de genul. Am pe acasă un pic16f628A +un LCD2x16 se poate modifica codul ca să funcţioneze pentru ceea ce am eu? 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