briobit Postat Martie 8, 2014 Partajează Postat Martie 8, 2014 Dar al naibii sa fie Protheus al meu, daca are in librarie vreun encoder sau vreun max/ao ce ne trebuie noua pe aici.incearca cu arhiva de mai jos si faci asa: extract and copy this dll file to " C:\Program Files\Labcenter Electronics\Proteus 7 Professional\LIBRARY" folder Sursa : http://www.edaboard.com/thread263397.html daca nu merge cu prima arhiva mai este varianta 2 Link spre comentariu
Patefon Postat Martie 8, 2014 Partajează Postat Martie 8, 2014 Cu permisiunea dumneavoastra as face cateva comentarii: 1. Felicitari pentru proiect! 2. Daca tot se va folosi un microcontroller as cauta sa indepartez "problema termocuplei". In speta termocupla furnizeaza tensiunea proportionala cu diferenta de temperatura dintre picatura si capatul terminalelor. Capatul terminalelor se afla in interiorul manerului letconului. Cum manerul se incalzeste haotic in functie de pozitia in care sta in suport, cat de cald e in casa, cat timp il tii in mana etc... o variatie de 10 grade celsius este posibila oricand. As propune luarea in calcul a unui letcon, ESD care are o sarma in plus pe cablu, si conectarea in interiorul manerului a unui termistor care sa compenseze variatia de temperatura. In acest fel am avea un produs premium la un pret DIY. 3. Pentru simplitate/comoditate m-as rezuma la doua memorii de temperatura + "burst mode". As implementa functia "Burst" care sa aduca un plus de 15% - 20% peste temperatura curenta de lucru vreme de 30 de secunde. Pentru activarea ei as folosi un microlimitator cu brat metalic iesit/vizibil prin carcasa care sa poata fi actionat cu varful letconului (mereu mai ai nevoie de o mana in plus....) Iata si cateva imagini exemplificative: Unde se sfarseste termocupla Aici se vede un letcon ESD desfacut Aici e un model de limitator care permite iesirea parghiei de actionare prin carcasa Spor la lucru! Link spre comentariu
Nikk Postat Martie 8, 2014 Partajează Postat Martie 8, 2014 @marian_a, Deloc.Sa nu ne pierdem umorul . De fapt eu m-am uitat pe cablaj si retinusem si discutia anterioara despre encoder. Mea culpa.Personal prefer "dizainul" minimalist eSol . Dar e chestie de gust. Nu am fost niciodata presat sa am trei temperaturi presetate si reglaj continuu/encoder . Dar mai stii ce vremuri vin ...Nikk Link spre comentariu
Vizitator marian_ariciuc Postat Martie 8, 2014 Partajează Postat Martie 8, 2014 @briobrit! Multam fain! Mai tarziu instalez. Acum sunt la cafea...@1. ciocead, da, are dreptate Patefon. 2 butoane suntdeajuns, partea cu manerul, se incalzeste dar oare influenteaza termocupla care e aproape in varf?@2. Ciocead, vazusem ca ii spuneai lui geomar sa conecteze acel max-xxxx, la sck, miso, mosi ai uC-ului, ori eu am folosit acei pini la encoder. Am putea folosi acei pini si pentru max-xxxx si pentru encoder in acelasi timp? Modificam schema pentru ambele situatii?@nick, ...@moderatori: se poate sa fiti cu ochii in patru pentru a nu lasa topicul sa se transforme in fâs cu multe pagini fara nimic palpabil? Lasati-ma pe mine moderator doar peacest topic Link spre comentariu
ciocead4 Postat Martie 8, 2014 Autor Partajează Postat Martie 8, 2014 @1. ciocead, da, are dreptate Patefon. 2 butoane suntdeajuns, Las la aprecierea voastra numarul de butoane si functionalitatea lor, eu o sa implementez in software ce o sa-mi spuneti. partea cu manerul, se incalzeste dar oare influenteaza termocupla care e aproape in varf? Asta spuneam eu inca de la inceput prin "cold junction compensation" ... la temperatura varfului se adauga sau se scade temperatura la care se gasesc terminalele termocuplei din letcon. In conditii normale de temperatura sa zicem ca acolo este o temperatura cat de cat constanta, daca lucrati cu statia in laborator atunci va fi 20C-25C. Eu pot sa calibrez statia in software la aceasta temperatura, dar cand cineva o sa lucreze afara iarna, sau intr-un laborator neincalzit atunci diferenta asta de temperatura se va reflecta in temperatura varfului. De aceea propune @patefon o metoda prin care sa citim temperatura din manerul letconului... as putea compensa aceasta diferenta in software daca as sti valoarea acelei temperaturi. Atentie, aceasta diferenta nu influenteaza stabilitatea temperaturii varfului, veti vedea pe display o indicatie constanta (in limita celor 2-3 grade acceptate) indiferent de temperatura manerului letconului... @2. Ciocead, vazusem ca ii spuneai lui geomar sa conecteze acel max-xxxx, la sck, miso, mosi ai uC-ului, ori eu am folosit acei pini la encoder. Am putea folosi acei pini si pentru max-xxxx si pentru encoder in acelasi timp? Modificam schema pentru ambele situatii? Pinii sck,mosi,miso se folosesc pentru programarea microcontroler-ului, de aceea eu as evita volosirea lor pentru altceva. Exceptie o face situatia in care decideti sa folosim MAX31855, pentru ca acesta trebuie legat la SPI si atunci cea mai buna alternativa este sa refolosim pinii de MISO,SCK si /SS. Datorita modului cum functioneaza programatoarele AVR si a MAX31855 nu cred sa fie probleme in a multiplexa aceste doua functionalitati pe perioada dezvoltarii softului. Dar parca stabilisem sa folosim AD623, de aceea ne vom folosi de o intrare ADC a uC-ului... alegeti voi care intrare ADC este libera. @GeoMar, te rugam posteaza ultima varianta de schema in format pdf, asa cum a postat @marian_ariciuc, e cea mai buna metoda sa revizuim impreuna conexiunile... Daniel Link spre comentariu
Nikk Postat Martie 9, 2014 Partajează Postat Martie 9, 2014 @ Daniel,Ati sintetizat bine problematica "cold junction compensation" , dar mai sunt multe variabile . Sa ne gandim numai la calitatea/reproductibilitatea termocuplei , inertia termica si calitatea varfului unui letcon de 10$ ... La o termorezistenta de calitate Weller multe aspecte sunt rezolvate . Nu critic letconul in sine ci subliniez problemele. Liniarizarea software pe o plaje 150-350 grd nu e chiar simpla si mai ales reproductibila.Apreciez la dvs ca aveti bunavointa sa explicati ce doriti sa faceti . Poate o faceti in continuare , adica amplificatorul termocuplei , ce probleme/calitati sa aiba si ce poate face MAX 31855, AD8495 un AOI sau chopper-stabilized Op Amps . De ce AD623 , ce probleme rezolva la pretul sau eventual fata de alte optiuni . Eu as opta pentru un cablaj DIP in zona asta care permite fiecaruia sa puna ce are cu un banal adaptor SMD-DIP (excluzand MAX care face altceva) pentru cine nu are acces la cablaje personalizate. Adaptorul se poate face chiar pe cablaj. Apoi UC , ADC, Uref pentru ADC , ce sa faca software-ul si ce poate sa faca rezonabil , etc . Astea sa invatam cate ceva si sa alegem mai bine . Bafta tuturor !Nikk Link spre comentariu
ciocead4 Postat Martie 9, 2014 Autor Partajează Postat Martie 9, 2014 Sa ne gandim numai la calitatea/reproductibilitatea termocuplei , inertia termica si calitatea varfului unui letcon de 10$ Inertia termica este mai mare decat la Weller WSP80, iar asta se va reflecta in coeficientii PID-ului in software. Liniarizarea software pe o plaje 150-350 grd nu e chiar simpla si mai ales reproductibila. Pentru inceput voi calibra temperatura in doua puncte, sa zicem de exemplu 100C si 400C, dupa care utilizatorii vor spune daca abaterea in alte puncte este "insuportabila" si putem adauga puncte pe curba de liniarizare. Apreciez la dvs ca aveti bunavointa sa explicati ce doriti sa faceti . Poate o faceti in continuare , adica amplificatorul termocuplei , ce probleme/calitati sa aiba si ce poate face MAX 31855, AD8495 un AOI sau chopper-stabilized Op Amps . De ce AD623 , ce probleme rezolva la pretul sau eventual fata de alte optiuni . Eu as opta pentru un cablaj DIP in zona asta care permite fiecaruia sa puna ce are cu un banal adaptor SMD-DIP (excluzand MAX care face altceva) pentru cine nu are acces la cablaje personalizate. Adaptorul se poate face chiar pe cablaj. Apoi UC , ADC, Uref pentru ADC , ce sa faca software-ul si ce poate sa faca rezonabil , etc . Astea sa invatam cate ceva si sa alegem mai bine . Nikk Acesta este unul din scopul efortului nostru, sa invatam impreuna ce inseamna un regulator de temperatura pentru termocuple si cum se pot obtine performante decente folosind un proiect cat mai simplu. Dupa cum probabil ati observat din expunerile mele anterioare, punctul critic intr-un astfel de proiect este citirea temperaturii de la senzor (termocupla K) cu o precizie si rezolutie buna. MAX31855 realizeaza citirea cu 0.25C rezolutie si face liniarizari/compensari interne, astfel incat AVR-ul nu mai influenteaza cu nimic calitatea citirii termocuplei. Pentru ca MAX31855 reprezinta varianta un pic mai scumpa am decis impreuna cu colegii de forum sa folosim totusi un amplificator extern si conversia sa o facem folosind ADC-ul intern din microcotroller. Pentru asta trebuie sa avem grija de urmatoarele: - semnalul de la intrarea ADC sa fie cat mai aproape de full scale range al ADC, in opinia mea daca putem folosii range-ul 0V...5V ar fi foarte bine. De aceea eu as propune sa folosim referinta de 5V, adica Vcc-ul microcontroller-ului , reducand astfel numarul de componente externe necesare. Stiu ca Vcc-ul de 5V este " poluat" de consumatorii prezenti pe linie (uC, display, etc), dar la eSol nu au fost probleme majore. - pentru a avea un range cat mai mare la intrarea ADC, trebuie sa folosim un amplificator rail-to-rail - offset-ul amplificatorului trebuie sa fie de asemenea cat mai mic pentru a nu influenta citirea temperaturii (in valoare absoluta) - amplificatorul trebuie sa fie stabil la castig relativ mare, dupa calculele mele in jurul valorii 270 Vmax = 0.041mV * 450gradeC *270 = 4.98V, astfel ne apropiem de full scale range al ADC - precizia obtinerii gain-ului este importanta pentru o cat mai usoara reproductibilitate a proiectului: utilizatorii nu vor fi nevoiti sa imperecheze valori de rezistoare pentru a obtine un gain cat mai precis Considrentele de mai sus conduc la ideea folosirii unui amplificator de instrumentatie, daca va uitati in datasheet-urile acestora veti observa ca producatorii (TI, Analog, Linear) recomanda folosirea AOI-urilor pentru amplificatoare de termocuple. Hope it helps, Daniel Link spre comentariu
Vizitator marian_ariciuc Postat Martie 9, 2014 Partajează Postat Martie 9, 2014 MAX31855 realizeaza citirea cu 0.25C rezolutie si face liniarizari/compensari interne, astfel incat AVR-ul nu mai influenteaza cu nimic calitatea citirii termocuplei.ar iesi treaba mai buna cu MAX31855?daca da, imi schimb opinia si votez pentru MAX.@ciocead, uite un link postat de [user=nucutza] pe pagina 2: http://paja-trb.cz/konstrukce/mikropajka_2011.htmlaceasta statie sugerata de el, utilizeaza MAX. dar ma enerveaza ca e cu LCD si nu are meniul in engleza macar.tot acolo se gasesc si fisierele .bin, .bas...poate deschizi sa te inspiri, ca sa nu zic plagiezi ca nu patesti nimic daca faci asta. Link spre comentariu
fratello Postat Martie 9, 2014 Partajează Postat Martie 9, 2014 MAX31855 este vreo 27 lei, cu transport ... Cresterea pretului componentelor poate duce, in final, la concluzia ca mai bine luam o statie "de-a gata" decat sa tot investim in componente & manopera. Eu zic sa pastram, totusi, un nivel rezonabil de pret, altfel caracterul DIY se cam pierde ... Parerea mea ! Link spre comentariu
Nikk Postat Martie 9, 2014 Partajează Postat Martie 9, 2014 @ daniel,multe observatii corecte . Vedeti ca UC are si o referinta interna de 2.56V accesibila direct care permite si AO de calitate fara R to R ( care numai teoretic inseamna 0-5V) . Ar mai ramane Offsetul si mai ales Offset Driftul. Pentru comparatie , va rog sa ne spuneti parerea despre ICL7650 , vandut pe forum cu .5 - 1 leu/ buc . Eventual si despre propunerea mea de cablaj versatil in zona AO care sa permita sa monteze fiecare ce are/doreste : OP07 ,Ad263, ICL, AD8495 , etc .Nikk Link spre comentariu
GanMark Postat Martie 9, 2014 Partajează Postat Martie 9, 2014 foarte interesant proiectul si felicitari pentru initiativa !mai ales ca se va putea customiza dupa fiecare utilizator....desi eu nu pot dar sper ca se va gasi mai multe variante in legatura cu encoderul,dupa parerea mea,daca tot o sa fie 3 butoane pentru memoriese va putea cu clasicul switch / encoder sa fie optional ?binenteles cu encoder arata mai bine .....e binevenit si standby / decuplare totala dupa 1 ora..... Link spre comentariu
GeoMar Postat Martie 9, 2014 Partajează Postat Martie 9, 2014 ...@GeoMar, te rugam posteaza ultima varianta de schema in format pdf, asa cum a postat @marian_ariciuc, e cea mai buna metoda sa revizuim impreuna conexiunile...DanielDeocamdata NU am o schema desenata, am incercat sa respect cerintele expuse de tine anterior direct la desenarea/proiectarea cablajului.Am sa incerc si o desenare a schemei. Pe cablaj am optat pentru MAX31855, cred ca asigura o buna precizie statiei?In functie de timpul liber, am sa incerc sa tin cont de toate indicatiile/sfaturile expuse in topic.Dupa cum reiese si din pozele postate, am optat pentru switch-uri, nu toti au un encoder prin cutii.P.S.Argumente PRO/CONTRA acestei statii, vor exista cu siguranta mereu.La final, daca cei "implicati" in realizarea/definitivarea acestui model (proiect) de statie, vor fi multumiti de solutiile implementate, precum si de rezultatele obtinute, cred ca este suficient.Daca v-a fi un proiect bun/rau, scump/ieftin, etc, etc, ramane de stabilit dupa testarea produsului finit de catre cati mai multi utilizatori. Link spre comentariu
Patefon Postat Martie 9, 2014 Partajează Postat Martie 9, 2014 Va salut,Am vazut ca a intrat in discutie solutia citirii temperaturii cu o eroare de 0.25 grade celsius (MAX31855). Nu zic ca nu e o solutie eleganta, dar parca e prea mult pentru o statie DIY. In schimbul unei acurateti de citire superioara (care intre noi fie vorba nu aduce nici un beneficiu atata vreme cat termocupla nu se leaga direct pe cablajul MAX-ului, unde circuitul ar fi folosit la potentialul maxim avand termometru intern) va propun un algoritm de incalzire care sa genereze erori mai mici.Pentru asta nu e cazul sa inventam apa calda ci sa tragem cu ochiul in gradina producatorilor de termostate industriale. Cum fac ei pentru a tine in frau inertia termica si overshooting-ul initial? Pe masura ce temperatura citita se apropie de temperatura nominala incalzirea se face cu pauze. Din ce in ce mai mari pana cand aproape de temperatura nominala ramane la 1 secuda On si 5 - 10 secunde Off.Eu va propun un algoritm mai ieftin (sa nu dam dureri de cap programatorului) care ar consta in:- Definirea unui threshold (1 grad celsius)- Incalzirea 100% atat timp cat T_Actual < (T_Setat - Threshhold)- Incalzire (10+0.1xT_Setat)% atat timp cat(T_Setat - Threshold) < T_Actual < (T_Setat + Threshold) numai in faza de incalzire- Trecera in faza de racire cand T_Actual>T_Setat+Threshold- Incalzire 0% atat timp cat T_Actual > T_Setat numai in faza de racireEvident thresholdul si procentul incalzirii in zona activa sunt subiecte de modificare functie de utilizator si ciocan utilizat. Valorile sunt orientative ele urmand a fi descoperite experimental.E doar o propunere. Minoritatea se supune vointei majoritatii iar coordonatorul de proiect are drept de veto.EDIT: Mi-am dat seama ca o incalzire in fractie fixa nu lucreaza corect in toata plaja. Am propus o fractie variabila 10% + 10% din temperatura setata astfel incat sa avem 30% la 200 de grade Celsius si 50% la 400 grade Celsius. Link spre comentariu
Nikk Postat Martie 10, 2014 Partajează Postat Martie 10, 2014 E un mica inexactitate : 0.25 grdC este de fapt rezolutia ADC pe 14 bit la MAX . Teoretic in plaja de interes pentru o statie , ajunge la 4 grdC (+/- 2) .Pana la citirea varfului cu o asemenea precizie e cale lunga si evident nu se regaseste in final .Algoritmul propus de dvs ne e cumva o forma de PID expusa intr-o maniera descriptiva ?Eu zic ca da . Astept si parerile colegilor .O varianta TOP pe care eu as sustine-o ar fi cu AD8495 , un AOI compensat pentru termocupla K , single/dual supply , MSOP 8 . Toate cele bune .Nikk Link spre comentariu
ciocead4 Postat Martie 10, 2014 Autor Partajează Postat Martie 10, 2014 E un mica inexactitate : 0.25 grdC este de fapt rezolutia ADC pe 14 bit la MAX . Teoretic in plaja de interes pentru o statie , ajunge la 4 grdC (+/- 2) .Pana la citirea varfului cu o asemenea precizie e cale lunga si evident nu se regaseste in final .Da, 0.25grdC este rezolutia ADC din MAX31855. Precizia declarata este +/-2 grade si intr-adevar in cazul nostru se vor mai acumula si alte erori pe traseul termocuplei; de exemplu daca nu montam MAX-ul in letcon, atunci nu beneficiem de "cold junction compensation".O varianta TOP pe care eu as sustine-o ar fi cu AD8495 , un AOI compensat pentru termocupla K , single/dual supply , MSOP 8 . AD8495 este scump (mai scump decat MAX) si valoarea lui de output are doar 5mv/C, asta inseamna ca la 450GrdC am avea o valoare de aprox 2.25V pentru intrarea in ADC. Asta ar insemna sa folosim Vref = 2.56V intern din ATMEGA, chiar si asa n-am folosi un range maxim al ADC-ului. In plus daca nu-l montam in manerul letconului nu beneficiem de "cold junction comensation" la fel ca in cazul MAX-ului.@Patefon: Software-ul statiei va fi preluat in mare parte de la eSol, acolo este implementat un PID, care are grija sa regleze temperatura in pasi potriviti asfel incat sa minimizeze overshoot-ul si variatiile de temperatura. Alte strategii de reglaj temperatura nu sunt necesare.@GeoMar: Stiu ca deja ai plantat un MAX31855 pe PCB, intre timp colegii de forum si-au exprimat acordul sa "mergem" pe un AOI, eu am propus AD623, de aceea te intreb daca este greu sa mentinem atat MAX-ul cat si un AD623 pe PCB/schema? Pentru varianta de prototip, eu as lipi mai intai un AD623, as face primele teste si daca totul este OK mai apoi putem sterge MAX-ul din layout/schema, ce ziceti?Referitor la discutia despre rezolutia citirii temperaturii, aveti in vedere ca regulatorului (PID in cazul nostru) ii folosesc si fractiuni de temperatura (0.25grdC in cazul MAX-ului) pentru a putea decide mai repede care sa fie evolutia heater-ului, chiar daca pe display se vor afisa doar incremente de 1grdC. In cazul AOI + ADC intern ATMEGA, rezolutia este 10bit, deci 1 LSB ar corespunde unei temperaturi de aprox. 0.44grdC, adica aproximativ de 2x mai slaba decat in cazul MAX-ului. Bineinteles ca supraesantionarea si filtrarea ajuta, mai creste un pic rezolutia, dar tehnicile acestea sunt aplicabile ambelor variante (AOI,MAX). Experienta de la eSol spune ca dupa toate procesarile enumerate, citirea temperaturii cu ADC-ul intern este suficient de precisa, stabila pentru a putea face fata aplicatiei noastre.Daniel 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