Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Diy duvaljka, jbc lemilica, led svetlo, mikroskop
Evo vec neko ko se zalio

To je ovaj problem iz post 138 i to tako ne sme da radi kako sam ja odradio pa sad pokusavam da to ispravim softverski a to je nemoguce, sacekacu ipak da polemim novi pcb pa cu da probam nista me ne kosta
Reply
Tu sam mozda trebao uvesti u sw i merenje napona na VCC od ad8495 posto imam jos 3 slobodna ulaza u ads1115 pa mozda i merenje napona reference, ads1115 ima 4 ulaza taman i vise nego dovoljno da se svi naponi izmere pre nego sto se napravi kalkulacija, nisam se setio na vreme a pozurio sam sa izradom pcb
Reply
Ovako


Attached Files Thumbnail(s)

Reply
(11-10-2022, 06:05 PM)savan Wrote: Korak posmatram po stepenu celzijusa! U cemu je problem?
Pa problem je sto posmatras lose tj. netacno je to kako posmatras i to pokusavam da ti objasnim, ali se ne das Smile

(11-10-2022, 06:05 PM)savan Wrote: PIC ima rezoluciju 10bit na A/D, koliki je korak na 5V ??
Koliko je 10bit u decimalnom obliku?? Zar nije 1023 ?
Kada se podeli 5V na 1023 = ??mV
Nebitan je napon napajanja vec je bitno u registriju koju naponsku referencu od mogucih izaberes ( u picu).
Rekoh ti 1024mV je dostupna i korak je 1mV sa tom referencom.

(11-10-2022, 06:05 PM)savan Wrote: Edit:
I da je je 1mV ako se interna referenca pic-a podesi na 1024mV ni to nije zagarantovanih 1mV jer efektivnih bitova od tih 10bita je osam do devet. Sad pogledaj ovu cinjenicu
ADS1115, uzecu efektivnih (cak i 15bitova) zagarantovanih 14bitova = 5 / 16383 = 305uV A/D korak zagarantovan. Sta dobijamo sa picovim efektivnih 8 do 9 bitova?

Pic ima efektivno 10bita, a ti posmatraj sto se mene tice kao da ima 8-9, ja tu ne mogu nista.
Stvar sam ti bio maximalno uprostio, PIC je sposoban da meri 1mV, toliko mu je korak. Sa onim AD8495 imas naponsko pojacanje sa termopara i imas promenu napona iz njega od tacno 5mV po celzijusu. Za 0.2celzijusa iz AD8495 ces imati 1mV promenu, shvati da tom kolu nije korak 5mV, i posmatraj ga kao analogno pojacalo jer to i jeste (sem ako ja nesto nisam pobrkao, a ne bi trebalo).
Shodno tome imas korak citanja jednak 0.2C , e sad ako uzmes u obzir cinjenicu da mozes da imas gresku +/-1digit to je greska od +/-0.2C sto je u celoj prici totalno irelevantna greska. Za potrebe regulacije temperature lemilice, a i maltene bilo cega u tom rangu 250-350c imaces sasvim dovoljnu rezoluciju, i tacnost mozda cak i 1stepen celzijusa (makar tesko objasnicu dole zasto), ako se cela naprava lepo kalibrise sa onim kako sam objasnio. I ponovicu ti jos samo jednom jer kapiram da me nisi shvatio za ozbiljno, kada je potrebno da izvucemo jos koji bit vise sa AD iako hardverski nemamo, veoma uspesna je metoda oversamplinga pogotovu kada nismo preterano vremenski zavisni. Za oversampling je neophodno da imamo izvor shuma, a to uvek imamo sa uredjajima koji se napajaju iz gradske mreze, pogotovu ako jos ima neki smps onda nema problema. Uostalom oversampling nisam izmislio ja, niti neko tamo tek tako, nego je to metoda koja se uspesno koristi i sa kojom mozes da izvuces veoma precizno merenje i sa tih "bednih" 10bita kako ih ti posmatras.

https://www.analog.com/en/technical-arti...pling.html
https://www.silabs.com/documents/public/.../an118.pdf

Kako god okrenes i obrnes, shodno cinjenici da je to lemilica, da nemas temp stabilisane kleme i jos x razloga, onda greska u AD8495 koja je neminovna, nemoj da ocekujes da mozes da imas spravu koja ce biti tacnija od nekih 1.5% tj. +/-4C (onako odokativno) na temperaturama 250-350C , pa i da uzmes neki 20bitni ADC to ti nista nece pomoci, gresku imas pa imas i pre ADC. To sto ce iz pica da dobijes 280.5c , a iz ads1115 ces sa 16bita dobiti 280.467C je totalno nebitno jer ti sa tih 16bita ne dobijas preciznost merenja temperature vec samo lazni osecaj da je to ultra precizno tj, sitan korak, a tacnost je vec pre toga narusena. Eto to je najplasticnije sto mogu da ti objasnim, iako sam rekao da necu dalje da ucestvujem u temi .
Linux is like a wigwam NO Windows NO Gates and an Apache inside
Reply
Mislis da ja ne radim nekoliko sampla i da ne razumem o cemu pricas? Evo samo jedan detalj u vezi ads1115 pa zakljuci sam

Code:
            for (i=0; i < READ_SAMPLES; ++i)
            {
                prev_tick = gpioTick();

                // ADS1115 I2C Device Address
                BSC0_A = 0x48;

                // set config register and start conversion
                // AIN0 and GND, 4.096v, 128sps
                BSC0_DLEN = 3;
                BSC0_FIFO = 1;
                BSC0_FIFO = 0xc3;    // single shot mode
                //BSC0_FIFO = 0x42;    // continuous mode
                BSC0_FIFO = 0x83;    
                BSC0_S = CLEAR_STATUS;
                BSC0_C = START_WRITE;    
                wait_i2c_done();

                timeout = 50;
                // wait for conversion complete
                do {        
                    BSC0_DLEN = 2;
                    BSC0_S = CLEAR_STATUS; // Reset status bits
                    BSC0_C = START_READ; // Start Read after clearing FIFO
                    wait_i2c_done();
                    buf[0] = BSC0_FIFO;
                    buf[1] = BSC0_FIFO;
                } while ((0x0000 == ((buf[0] << 8 | buf[1]) & 0x8000)) && --timeout);

                // read conversion register
                BSC0_DLEN = 1;
                BSC0_FIFO = 0;   // conversion register is 0    
                BSC0_S = CLEAR_STATUS;
                BSC0_C = START_WRITE;    
                wait_i2c_done();
                BSC0_DLEN = 2;
                BSC0_S = CLEAR_STATUS; // Reset status bits
                BSC0_C = START_READ; // Start Read after clearing FIFO
                wait_i2c_done();    
                buf[0] = BSC0_FIFO;
                buf[1] = BSC0_FIFO;

                // temperature = (VOUT - VREF)/(5 mV/ C)

                // convert output and display results
                //val = (int16_t)buf[0]*256 + (uint16_t)buf[1];
                val = buf[0] << 8 | buf[1];    // Combine the two bytes of readBuf into a single 16 bit result
                temperature = (float)((((val * 4.096) / 32768.0) - 1.33) / 0.005);
                //printf("Conversion: buf[0]=0x%02x buf[1]=0x%02x combined=0x%04x time=%.2f mS result=%f temperature=%.2f\n",
                //         buf[0],
                //         buf[1],
                //         val,
                //         (float)((gpioTick() - prev_tick) / 1000.0),
                //         (float)((val * 4.096) / 32768.0),
                //         temperature);

                jbc_temperature += round(temperature);
            }

            jbc_temperature /= i;
        }

Ali sam shvatio da nije potrebno da radim vise samplova jer onda gubim na brzini grejanja a zakljucio sam i da je ads1115 dovoljno precizan da bukvalno ni nema razlike ako je 5 samplova u pitanju ili je jedan sampl u pitanju pa sam ipak definisao READ_SAMPLES = 1

Podsetio sam se i zasto sam stavio u formuli 4.096, tako sam podesio registar u ads1115 mada sad tek vidim da je to pogresno kako sam uradio, ispravicu i doci cu do resenja na kraju.
Reply
Postoji odavno MAX31856, doduše on je na SPI pa zahteva bar 3 linije, možda ima neka slična I2C varijanta, generalno to je dobro i povoljnije rešenje.

AD8495 je vrlo specifičan IC, on služi SAMO ZA KOMPENZACIJU, nema pojačanje, samo offset može da se podešava ali ne može gain i iza njega mora da ide još jedan stepen pojačanja, zato su upotrebili poseban ADC koji ima PGA u sebi.

Ovaj MAX31856 radi to sve u jednom IC, isto ima Cold Junction Compensation u sebi (isto treba ispod kleme/konektora da se postavi) i izlaz je 14bit vrednost, pa gde lepše od toga, dobije se lepo sve u digitalnom domenu, sve ostalo radi integralac.

Obratite pažnju na fejkove, poručivati samo kod proverenih dobavljača, Ali/Ebay i lokalne dobavljače izbegavati. Naleteo sam na par fejkova ...

Za taj MAX daju tačnost od +/-1.5*C što je skroz korektno i može u potpunosti da završi posao za lemilicu

[Image: attachment.php?aid=38748]


Attached Files Thumbnail(s)

Reply
@savan
Drug uz svo postovanje prema tebi, tvom liku i delu, ali ti ne razumes o cemu ja pricam jer ti 5 sampla usrednjavas i time ne dizes broj bitova. Znaci to veze nema sa oversamplingom i dobijanjem 1-2-3bita dodatno.
Morao bi ipak malo da sednes, smiris strasti i procitas ono sto sam ti ja i ostali ljudi pisali u ovoj temi.

edit: upao mi miki izmedju Smile dok sam pisao

(11-10-2022, 10:12 PM)mikikg Wrote: Za taj MAX daju tačnost od +/-1.5*C što je skroz korektno i može u potpunosti da završi posao za lemilicu
Samo +/-1.5c, a onoliki bitovi i ostalo ?! (salim se naravno da neko ne pomisli da sam ozbiljan)

Za onaj AD8495 nisam znao da nema u sebi interni amplifier tj, po pdf kada sam gledao video sam da pise 5mV/K i nisam dalje previse analizirao kolo, tim gore ako nema jer je on neupotrebljiv onda ni sa ads1115 kako god okrenes i obrnes. Jesi ti siguran u ovo sto si napisao da nema interni amp i da mora externi, gledam pdf ponovo i ne bih rekao da je tako ?!
edit: AD8495
Full K-Type Range 0° to 50° Thermocouple Amplifier w/Cold Junction Compensation
Linux is like a wigwam NO Windows NO Gates and an Apache inside
Reply
Mislim da je na JBC stanici korak podešavanja temperature čitavih 5 stepeni a ovde se jure decimale bez potrebe.
Reply
Ima smisla sto Miki prica ali mislim da nije toliko drasticno na ovom ad8495


Attached Files Thumbnail(s)

Reply
ddanijel, ne zanima me pic12f1840 adc/dac ali ni najmanje da budem iskren ali pogledacu linkove koje si okacio da probam da razumem o cemu pricas konkretno u vezi sa ovim slucajem sta bi nam to pomoglo bolje nego sa ads1115

U dokumentu koji si procitao nepotpuno kao ni ja ne pise 5mV/K nego 5mV/C, velika je razlika

Nevezano za ovo, pitnje za sve koji prate temu, vredi li meriti napon reference i napon VCC sa dodatna dva ulaza u ads1115 koji su inace ostali ne iskorisceni, da se dobije sto preciznija matematicka formula pri izracunavanju temperature??
Reply
Drug, i za osciloskop si onomad napisao "ne zanima me oblik signala jer nemam osciloskop" , tako si i sad isto iskljuciv da te ne zanima picov adc. Uostalom nisam ti ja predlozio da koristis pic ADC i nemoj mene napadati, provrti iznad pa vidi ko je prvi predlozio, ja sam samo potvrdio to i pokusao da ti pojasnim da sa njime ne bi nista izgubio na preciznosti merenja. U ovom slucaju ti nece pomoci i nemoj ti zbog toga da probas da razumes "linkove", jer tebi za ovu lemilicu ne pomaze ni adc 20bita, jer su i 10bita za pomenutu spravu preveliki i gresku budi sretan ako budes imao manju od 5stepeni pa sa cime god merio, radio, uzorkovao.

editujes non stop posle mog pisanja, nemoj to da radis, a objasni mi koja je razlika izmedju kelvina i celzijusa ? Kako to mislis VELIKA je razlika ?
5mv imas po promeni 1 stepena nebitno da li je kelvin ili celzijus jer su skale samo pomerene, shift za -273,15, ali 1K=1C gledano po stepenu promene !
Braca je napisao 5mV/C ako se ne varam, ali to uopste ne menja sustinu i tacno je i jedno i drugo, razlika ne postoji.
Linux is like a wigwam NO Windows NO Gates and an Apache inside
Reply
>>> U dokumentu koji si procitao nepotpuno kao ni ja ne pise 5mV/K nego 5mV/C, velika je razlika

Prof. Dr. Braca kada bude ovo čuo mislim da će predložiti ukor na razrednom veću u vidu klečanja na kukuruzu u neodredjon vremenskom trajanju sve dok mu se na kolenu ne uveća temperatura za 14350m*K ... Big Grin
Reply
Pa ne moze se ni ocekivati manja greska na 50Hz AC zar ne?
Reply
Nemam uopste problem sa (ne)znanjem, shvatam o cemu pricate da je skala ista samo pomerena u minus, ne mogu ni znati sa 3 rasreda srednje skole koja nema veze sa elektronikom i 4 godine rada na ne puno projekata i na samoukom radu, to je sustina, nema uopste potrebe za sprdnjom kada nesto izgovorim sto nema veze sa tacnoscu, nadam se da me razumete i da ste i vi isto tako bili na tom nivou pa se nisu sprdai sa vama, postujem svako znanje koje posedujete i trudim se da upijem. Ddanijel se malo postavio drugacije pa mi se ucinilo da se trudi da me poklopi i kad treba i kad nema potrebe sta me malo iritira moram priznati ali postujem znanje svako!
Reply
Bez ljutnje, ali ta moja malo šaljiva opaska je očigledno urodila plodom jer te je naterala da odeš negde i pročitaš malo o te dve merne jedine, za toliko da znaš razliku, to je bila poenta a ne provokacija.

Ako ti je za utehu ni ja nemam fakultetsku diplomu, isto kao ti sam dosta dugo programirao u PHP-u, od verzije 3.x do neke 7.x. mada je to i nebitno, bitno je da sam se trudio da razumem u najsitnije detalje sve što sam uzeo da radim.

Oko SMPS na primer pre ovog foruma skoro da nisam imao nikakva iskustva i tek kada je Macola došao na forum i počeo da piše stotine i hiljade tekstova ja sam skontao koliko ne znam ali me to nije sprečilo da čitam veruj mi neke Macoline postove po 20-30 puta dok ne ukapiram šta je čovek pokušao da objasni jer je složeno.
Na primer pravili smo makete i probne primerke samo da bi videli kako neke stvari rade u realnosti, samo da vidim "krivulju" na osciloskopu neke konkretne vrlo pikatne pojave u sklopu, nisam jurio da pravim PCB kod kineza gotovog pretvarača, nisam tražio da mi neko nacrta gotovu šemu ali sam zato odvojio vreme i skoro svaku stvar koju je Macola pisao nekako probao u praksi na prototipovima tako da se meni proces izrade prvog malo ozbiljnijeg SMPS (200W LLC) sveo prvo na izradu nekoliko prototipova koji su služili samo za razumevanje nekih pojava pa tek posle jedno godinu dana sam krenuo na konkretnu izradu LLC-a koji je proradio na prvu sa skoro svim ispunjenim tehničkim zahtevima koju su u startu bili projektovani, bez i jedne spaljene koponente i nije me uhvatila struja Smile
Reply
Konkretan primer, HW i SW koji smo zajedno projektovali Macola i ja, on je radi na HW ja na SW.
To spada u najprecizniju elektroniku koju možeš da zamiliš, to je metrološki nivo tačnosti i preciznosti (pls nemoj da mešaš pojmove tačnosti i preciznosti, posebno nemoj da pomešaš sa meteorologijom) i praktično spada u najprecizniju mašinu u Srbiji koja odražava neku temperaturu stabilno i tačno na zadatoj vrednosti. Ta sprava se koristi za nacionalno etaloniranje merne jedinice metar i neophodna je super-mega precizna regulacija temperature zbog toplotnog širenja etalnoskih uzoraka za dužinu.

Macola kada je video tehničke zahteve koji treba da se ispune samo je prokemntarisao da sve te neke integrisane A/D konvertere možemo da ZABORAVIMO, on nije naleteo u svojoj karijejri na IC koji bi mogli to da ispune tek tako.

Nakon detaljne analize zahteva odlučili smo da ipak idemo na custom DISKRETAN dual-slope A/D konverter koji je realizovan sa "običnim" analognim kapijama tipa CD4066 i par OP-AMP tipa OPA189 i nešto sitne R/C boranije.
Najskuplja komponenta u toj našoj elektronici je bila naponska referenca LM399 i da bi izvukli njene karakteristike odprilike da smo morali da je TROSTRUKO temperaturno stabilišemo, tj trostruki "oven", komara-u-komori-u-komori, tj da njen napon bude mrtvo tačan i nepromeljiv u odnosu na temperaturu okoline.

Ukupna efektivna rezolucija tog diskretnog A/D konvertera je oko 18bit sa očitavanjem tačnim i stabilnim u +/- 1 count!!!
Pošto ta sprava treba da stabiliše isključivo tačno 20.000*C (zahtev po etalnoskom standardu), sprava je projektovana da A/D konverter radi merenja u vrlo uskom temperaturnom opsegu reda 18*C do 22*C i svih tih 18bit je RAZVUČENO na samo ta 4*C koja nas interesuju!

Kako to na kraju praktično radi možeš da vidiš na grafikonu i samo da znaš da je taj rezultat odprilike 10x bolji/stabilniji nego što je ta mašina (djunta koja košta nešto manje od milion Eura!) originalno imala.
Eto toliko o "stabilizaciji temperature"!

[Image: attachment.php?aid=38750]


Attached Files Thumbnail(s)

Reply
@savan
po meni prvo što treba da rešiš je napajanje grejača.Nemožeš napajati grejač preko termopara .Trebaš probati  recimo drugi pristup.Prve dve sekunde pustiš pun napon na grejač pa prekidaš grejanje i meriš pa ako je temperatura manja isključuječ merenje i pustiš još desetak perioda grejanje pa opet meriš.
Hoću da kažem da u pauzama merenja radi grejač a ne kao što ti radiš u pauzama grejanja meriš temperaturu.Imaćeš više uzoraka merenja samim tim i preciznije a snaga grejača je dovoljna da u par ili desetak  perioda rada grejača koriguješ temperaturu.Dalje  možeš praviti algoritam da na osnovu razlike između dva uzastopna merenja menjaš broj perioda rada grejača.Ja bih ovako probao a ti kako hoćeš.
Reply
Miki trudim se! Skroz rzumem to sto pricas, i meni se vrte kojekakve misli da se nesto odradi na neki drugi nacin sto niko nije mozda uradio, i ja to iznesem nije me blam, neko ce se podsmevati ideji neko ce mozda videti neku svoju ideju u tome sto iznesem, stvar je izneti pa bilo to smesno ili bilo to mozda interesantno nekome, tek sam na pocetku elektronike, znam da ce to vremenom da se razradi i da cu doci na neki prihvatljiv nivo u ostalom necu postavljati kojekakva glupa pitanja, stvar je samo na koliko toliko postovanja i malo strpljenja. Kako to Dragan radi sa ogromnim strpljenjem i znanjem, pa i Miki, Braca. treba da bude za primer kako se treba ponasati prema nekome ko je na pocetku, nema potrebe rugati se necijem ne znanju. Morate priznati ovako kako sam odradio lemilicu da je zanimljivo resenje? Nemam problem i ako kazete da nije i da je smesno odradjeno ali samo ako komentar nije maliciozan mogu da prihvatim sprdnju.
Reply
Gorso69 tako i radim, znaci grejac ide u off, radi se merenje. Termopar na novoj shemi veza je popravljena, crvena zica koja je jedan kraj termopara je ujedno bila i gnd tako da se grejac grejao preko termopara sto je skroz pogresno, sada je to u novoj shemi ispravljeno, zelena je zajednicki gnd grejaca i termopara a crvena (drugi kraj termopara) je slobodna skroz, trebalo bi da je sto se veza tice sada sve ok. Ujedno digitalija je na svom gnd planeu sto nije bas bio slucaj na prvobitnoj verziji sklopa, mislim da je sada shema ok?
Reply
Šta je to mokroskop? 4
Reply


Forum Jump:


Users browsing this thread: 5 Guest(s)