Myös korttimaksu toimii

Arduino

Aloittaja Pete2, 19.12.09 - klo:21:13

« edellinen - seuraava »

0 Jäsenet ja 1 Vieras katselee tätä aihetta.

PekkaNF

Wau. Upeeta. Oikeista linkeistäkin olisi apua.

Analogiapuolelta ainoa kohtalaisen tarkka (noin 8-10bit) on akun napajännite ja siitäkin mielenkiintoisin alue n. 10-15V. Mietin jopa kahta tai kolmea aseteltavaa komparaattoria 11,0/13,8/14,2 V jotka olis kytketty digitaalituloihin, mutta karkee tarkkuus riittää valvontaan ja päätöksen tekoon siitä mikä laturi pistetään päälle ja mitä kuormaa tiputetaan alas.

Toki mukavaa olisi mitata paneelijännitettä, joka on noin 0-64V, mutta sillä on enempi loggausarvo ja "nice to know" kun mitään muuta.

Toinen "nice to know" olisi virranmittaus "systeemin" ja akun negatiivisen navan välissä, jotain +/- 5A tms. Shuntti vai hal?

Digitaalitulot varmaan kannattaa ottaa optolla, ne kaikki on 5 tai nimellisesti 12 v. Näillä ei ole nopeusvaatimusta, mutta joku RC-suodatus olisi kiva järjestää, ettei joku satunnainen häiriö aiheuta vääriä johtopäätöksiä.

Käyttöjänniteen jakelussa arvon releiden ja high-side switchien välillä. Rele olisi "selvä peli", mutta onhan feteissäkin puolensa.

Ajattelin käyttää ihan vanhanaikaisa sulakkeita johtosuojana, Joissakin high side switcheissähän on virranvalvontaa yms. Ehkä ei kannata harjoitella liikaa kerralla.

Tällä ei ole kiirettä ja oikeestaan tuo analogiasignaalin puskurointi ja DI/DO puskuri logiikkasignaaleille prossun jännitetasolla on se mikä tulee ensiksi vastaan, enkä haluaisi mällätä.

PekkaNF

Hannu

http://openenergymonitor.org/emon/node/2109
Tuolle piirille ACS785 on aika paljon matskua netissä .
Tuossa yksi linkki mitä hyödynsin sain jopa toimimaan jotenkin.
Jännite oli trimmattu vastusjaolla sopivaksi sitten käräytin tuulimyllyssä koko hommelin.

Jännitteen mittauksen kanssa jäi ongelma, se pitää saada myös galvaanisesti erotettua. koska jännite saattaa
nousta 600V dc ja myös poweri jännitteet meni piikien muodossa sekaisin.Turvallisuudesta puhumattakaan.
Sellaisen piirin kuin il300 ajattelin iskeä tuohon  oli joku toinenkin ,mutta taidot loppui kesken toteuttaa.
Jos oikein ymmärsin pulma oli tämän suuntainen.

Seurataan mielenkiinnolla :D



Kremmen

#47
Lainaus käyttäjältä: PekkaNF - 24.01.14 - klo:10:54
Wau. Upeeta. Oikeista linkeistäkin olisi apua.
Katsotaan saadaanko linkkejäkin lueteltua, mutta tässä nyt lisäkommentteja aluksi alkuperäisen tekstin väleihin
Lainaa

Analogiapuolelta ainoa kohtalaisen tarkka (noin 8-10bit) on akun napajännite ja siitäkin mielenkiintoisin alue n. 10-15V. Mietin jopa kahta tai kolmea aseteltavaa komparaattoria 11,0/13,8/14,2 V jotka olis kytketty digitaalituloihin, mutta karkee tarkkuus riittää valvontaan ja päätöksen tekoon siitä mikä laturi pistetään päälle ja mitä kuormaa tiputetaan alas.

Toki mukavaa olisi mitata paneelijännitettä, joka on noin 0-64V, mutta sillä on enempi loggausarvo ja "nice to know" kun mitään muuta.
Akkujen jännitteitä voidaan mitata suoraankin, komparaattorit on varmaan helpompi tehdä softaan kuin rautaan. Jollei tarvita galvaanista erotusta ja kaikkien mitattavien signaalien maataso on yhteinen, selvitään yksinkertaisella jännitejaolla. Akkujännitettä mitatessa voi vastusjaon laittaa mieleisekseen, esim A/D-muuntimen täysi arvo 20,48V jännittellä tuottaa tarkkuuden 20,48/1024 =20 mV / bit mikä riittänee hyvin. Varaudu kuitenkin siihen, että softassa täytyy käyttää ja tallentaa kestomuistiin korjauskertoimia. Vähintään niin, että lasket jännitteen kaavalla

U = ax + b  missä

U = jännitteen mitta-arvo softassa
x = A/D-muuntimelta mitattu lukema
a = jännitteen kulmakerroin (V/bit)
b = offset jolla asetetaan lukeman nollakohta paikalleen.

Kehittyneempi ja vielä inhimillinen laskettava on toisen asteen sovitus jossa

U = ax^2 + bx + c saman systeemin mukaan. Mutta ehkä sitä ei tässä tarvita kun piirissä ei ole lähtökohtaisesti epälineaarisia elementtejä ja A/D-muuntimen perusvirheet tulee säädyllisesti kompensoitua jo tuolla lineaarisellakin korjauksella. A/D-muuntimen differentiaalinen epälineaarisuus ja kvantisointivirheet jää tällä tavalla hoitamatta, mutta menee jo vähän haasteellisemmaksi niin unohdetaan toistaiseksi..

Tiesithän, että Arduinon moottorissa, eli ATMega328-prosessorissa on lämpötila-anturi kiinteänä osana A/D-muunninsysteemiä. Haluttaessa/tarvittaessa sitä voi käyttää mikäli tarvitsee säätää akkujen maksimi latausjännitteitä. Lyijyakkujen latausjännitehän nousee kun lämpötila laskee. Tiedä sitten onko tuolla merkitystä aurinkopaneeleiden yhteydessä.

Joka tapauksessa suositeltavaa iltalukemista jolla moni asia Arduinosta selviää: http://www.atmel.com/Images/Atmel-8271-8-bit-AVR-Microcontroller-ATmega48A-48PA-88A-88PA-168A-168PA-328-328P_datasheet.pdf

Perus-Arduinossa voi valita A/D-muuntimen referenssijännitteeksi joko DEFAULT ( 5V tai 3,3V riipp. kortin käyttöjännitteestä), INTERNAL (sis. 1,1 V bandgap) tai EXTERNAL (ulkoa syötetty referenssi 0-5V). Sisäinen bandgap on näistä tarkin eikä vaihdu syöttöjännitteen mukaan. Sille sopiva vastusjako 20,48 -> 1,1 V olisi esim. R1 = 15,00 kohm, R2 = 852 ohm millä saadaan 1,100742 V. Tuon 852 ohmin saa aikaan kolmella E12-sarjan standardivastuksella tarkasti; esim 22+150+680 tai 22+270+560 tai 10+22+820.

Kuvassa VSense.PNG on simppeli vastusjako ja ensimmäisen asteen passiivinen suoto. Elektrolyyttikonkilla saa suodon kulmataajuuden helposti hyvinkin alas, mutta silloin pitää myös huomioida, että elkot vuotaa. Jonkun luokkaa 100 uF olevan elkon vuotovirta saattaa olla kymmeniä mikroampeereja ja 15 k ylävastuksen yli sellainen virta aiheuttaa jo satojen millivolttien jännitehäviön. Joten jos suodatat isoilla elkoilla niin mittauksen joutuu ehdottomasti kalibroimaan ja ehkä toistamaankin kun elkot vanhenee. Riippuu nyt tietty siitä kuinka tarkkaan mittaukseen oikeasti pyritään. Tuolla nyt ainakin yksi vapaasti jaeltu paperi aiheesta: http://www.tadiranbatteries.de/pdf/applications/leakage-current-properties-of-modern-electrolytic-capacitors.pdf
Lainaa

Toinen "nice to know" olisi virranmittaus "systeemin" ja akun negatiivisen navan välissä, jotain +/- 5A tms. Shuntti vai hal?
Shuntti. Minä tekisin tuon pienellä muutaman milliohmin Kelvin-kytketyllä sense-vastuksella ja mittavahvistimella. Eipä tule sen arvokkaammaksi kuin tarkkuudeltaan vähän sinnepäin hal-anturikaan. Laitoin tuosta piiriesimerkin (kuva ISense.PNG). Ohmiten mittavastuksista datalehteä löytyy täältä: http://www.ohmite.com/cat/res_fc4l.pdf. Mittavahvistin on TI:n tekele: http://www.ti.com/lit/ds/symlink/ina199a1.pdf.
Lainaa

Digitaalitulot varmaan kannattaa ottaa optolla, ne kaikki on 5 tai nimellisesti 12 v. Näillä ei ole nopeusvaatimusta, mutta joku RC-suodatus olisi kiva järjestää, ettei joku satunnainen häiriö aiheuta vääriä johtopäätöksiä.
Opton tarve riippuu siitä onko systeemin maatasot eri potentiaalissa vai ei. Ja tietysti vähän siitäkin halutaanko kiertovirtoja välttää vai eikö sillä ole väliä. Voin toki piirtää optotulon, nehän on yksinkertaisia. Mutta niistä ei saa paljoa iloa ellei opton tulopuoli ole syötetty erillisestä lähteestä, koska muussa tapauksessa syöttöjännite on joka tapauksessa galvaanisesti yhdistetty.
Esimerkkejä suojatuista ei-optisesti erotetuista tuloista kuvassa DIO.PNG. Tulosignaalit on passattu vähintään 0 - 5V tasoille, mutta kestävät kyllä paljon enemmänkin - ei noiden pitäisi tykätä kyttyrää vaikka työntäisit verkkojännitettä sisään, mutta älä nyt sentään koeta sitä. Avaan vähän tuota piiriä niin sen idea ehkä siitä hahmottuu:
-prosessori on erotettu ulkomaailmasta kokonaan siten, että sen inputteja ohjaa CMOS hex Schmitt trigger 40106. Tämä piiri myös torppaa värähtelyjä jos inputin taso vaihtuu hitaasti. Huomaa, että nuo on invertoivia joten signaalin suunta kääntyy triggerin yli mennessä.
-Schmitt-triggerin ja tuloliittimen välissä on ensinnäkin resistiivinen suojaus vastuksilla. Kymppikiloiset input-vastukset on syytä olla palamattomia läpireiän komponentteja jotta saadaan riittävä ryömintäväli jos inputtiin sattuu tosiaan osumaan vaikkapa se verkkojännite tai vielä pahempaa. Niin ei synny flashoveria niin helposti.
-Tulovastusten väliin on kytketty SP721 triple ESD-suojadiodipaketti. Tämä leikkaa pois kaikki tasot 0 > Uin > Vcc. Piikkijännitteet on pyritty maadoittamaan eikä ohjaamaan jännitteensyöttöön joka ei myöskään ehkä niin kovasti piikeistä tykkää. Sitä varten SP721 ei ole kytketty suoraan syöttöön vaan erillisen suojauspiirin kautta. +5V syötöstä otetaan ensin veto suurtaajuusferriittisuotimen läpi rajoitusvastukselle joka syöttää 4,3V zenerdiodia 1N4731. Zener kääntyy tällöin johtavaksi ja siihen on syynsä. Tarkoitus nimittäin on, että tuo zener maadoittaa kaikki häiriöpiikit suojamaahan, joka on kytketty sen anodille. Kuitenkin kun zener on johtamattomassa tilassa sillä on selkeä viive johtavuustilaan siirtymisessä. Tänä aikana zenerin impedanssi on suuri ja piikit etenevät signaalilinjoissa koko turn-on viiveen ajan. Sen sijaan kun zener jo johtaa ei viivettä ole vasan se nappaa piikit viiveettä. Nappaamista avustamassa on pieni 100 nF keraaminen konkka.
Laitoin kuvaan muutamia mahdollisia kytkimiä joilla inputteja voi ohjata. Ylimmät kolme on ajateltu aktiivisille lähteille jotka siis ohjaavat signaalia sekä ylös että alas. Alemmissa kolmessa on vetovastukset jolloin niitä voi ohjata yksinkertaisilla mekaanisilla tai trankkukytkimillä.

Vaihtoehtona kuvassa Optoin.PNG on yksinkertainen optoerotettu tulo. Siinä nyt ei ihmeitä ole, mutta pari huomiota:
-jos laitteen omaa +5V (tms) apujännitettä käytetään syöttämään kytkimiä, ei optoista ole hirveästi iloa. Voi ne siellä olla, mutta häiriöt saattaa uida sisään jännitesyötöistä. Kuvasssa ei ole esitetty +5V syötön suojausta. Ainakin pitää huolehtia jotenkin ettei oikari polta koko vehjettä. Joko siis sulake (mikä vinkkinä kuvassa) tai opton sarjavastus siirrettävä syöttöjohtoon. Miten kannattaa tehdä, riippuu kovasti siitä millaisella kytkimellä optoa ohjataan. Kuvan piirissä opton diodi ei ainakaan mene ylivirralle vaikka siihen kytkettäisi jännite (+5V) suoraan.
-Signaalin suodatus on tehty vasta opton jälkeen missä impedanssitasoja voidaan nostaa "järkeviksi". Esitetyillä komponenttiarvoilla aikavakioksi tulee noin 10ms ja siis rajataajuudeksi siinä 16 Hz. Konkaa kasvattamalla rajataajuus alenee lineaarisesti suhteessa.
Lainaa

Käyttöjänniteen jakelussa arvon releiden ja high-side switchien välillä. Rele olisi "selvä peli", mutta onhan feteissäkin puolensa.
Releillä vaan. Ne on idioottivarmoja, galvaanisesti erottavia ja oikein käytettynä vähintään yhtä luotettavia kuin fetit. Fetin lähes ainoa etu on kyky suurtaajuiseen toimintaan jatkuvasti, ja tietty osin se, ettei hilan ohjaaminen vaadi tehoa. Mikä nyt ei yleensä releelläkään ole mikään ongelma.
Lainaa

Ajattelin käyttää ihan vanhanaikaisa sulakkeita johtosuojana, Joissakin high side switcheissähän on virranvalvontaa yms. Ehkä ei kannata harjoitella liikaa kerralla.
Sulake on oikein hyvä. Se ainakin toimii silloin kun pitää ja on helppo ymmärtää. Kaikenmaailman polyfuset ja muut viritykset voi olla hirmu käteviä joissain erikoistapauksissa mutta perussulakkeen paikkaan kannattaa laittaa perussulake.
Lainaa

Tällä ei ole kiirettä ja oikeestaan tuo analogiasignaalin puskurointi ja DI/DO puskuri logiikkasignaaleille prossun jännitetasolla on se mikä tulee ensiksi vastaan, enkä haluaisi mällätä.

Näillä päästänee alkuun; jatketaan keskustelua epäselvistä kohdista tai jos ratkaisu ei vastaa tarvetta jossain kohdissa.

Jos oikeasti kiinnostaa niin voin kyllä vääntää piirikaavion myös tuolle Hannun esittämälle lineaarioptoerotukselle. Sillä saa edullisia ja kohtuuhyviä ratkaisuja aikaan.
Jos teillä on DipTrace käytössä niin kuvat löytyy sillä tehtyinä ja voin niitä vähän siistiäkin vielä.
Nothing sings like a kilovolt
Dr W. Bishop

PekkaNF

Kiitos paljon. Mun pitää tutkia noita ajatuksella ja piirrellä tota omaa doodlausta (ei voi nimittää schemaksi), jotta saan selville mitä pitää labrata.

Pitää kirjoitella aurinkolaturin valmistajalle ja kysellä saako sen laturin kytkettyä väylän kautta irti ja saako siitä viestiä ulos mitä se on mittaamassa ja duunamassa.

Akun lämpötila tosiaan pitää mitata ja latureissa on aina sisäiset mittaukset (jollei ole kytketty ulkoista mittausta).

Optot ja galvaaninen kärväyttämien oli tuttua kun tein veilä hommia Siemens S5:n kanssa ja niihin oli kytketty milloin mitäkin. Muutamaan tuhanteen I/O:n mahtui välillä jokunen yllärikin. Sitä luulis oppineen, silti ei ole pitkä aika kun epähuomiossa yhdistin hakkurin välipiirin postitivisen maadoitettun mittaukseen. Zzappp.

Kiitos paljon. Mun pitää tukisa noita, voi mennä vähän aikaa.

PekkaNF




Kremmen

Joo ihan rauhassa vaan. Mullahan ei ole mitään aikataulua tässä, että ihan miten itsestä tuntuu ja homma etenee.
Nothing sings like a kilovolt
Dr W. Bishop

Hannu

Lainaus käyttäjältä: Kremmen - 25.01.14 - klo:13:17

Jos oikeasti kiinnostaa niin voin kyllä vääntää piirikaavion myös tuolle Hannun esittämälle lineaarioptoerotukselle. Sillä saa edullisia ja kohtuuhyviä ratkaisuja aikaan.

Kiinnostaa kovinkin ,tämä on jo sellainen oppitunti että menee aikansa ennen kuin kaiken ymmärtää.
Tuo zenerin esivirittäminen mm. aikamielenkiintoinen.

Tämä mun mitattava jännite on tosiaan maksimissaan n.600V DC ja toinen tapaus tämä pätkittynä
pwm taajuudella joka on muutama Khz ehkä.
Näin mittaukselle tulee jonkin asteinen nopeus vaatimus.Prossu laskisi tästä tehollisarvon.




PekkaNF

Joo kiinnostaa noi Hannunkin viritykset.

Tutkiskelin noita hieman, tosin atmellin iltalukeminen on vielä vähän kesken ;D

DIO on vähän mun silmien/monitorin/bittiresoluution rajoilla, mutta kun ymmärsin ton resoluution, niin alkoi selvitä. Periaateessa tiesin ton virtalähteen erotuksen, mutta tosiaan tuo zener oli hauska, ei tullut ainakaan opiskeluaikaan vastaan, ehkä ohimennen jollekkin aturille sarjavastus ja hakkureista puhunut ope taisi mainita ferriittihelmen. Mutta tuo on hauska nähä piirikaaviona ja selostettuna.

Säikäytti hieman tuo pintaliitosshuntti. Mä olen onnistuntu välttämään pintaliitoskamat toistaiseksi ;D

Hyvä nähdä kaavioita, joista ei tarvii ruveta arvaamaan ensiksi, että mitä pielessä.

Teki melkein mieli ladata diptrace, mutta se viivästyttäisi vielä enemmän prjektin alouitusta. Tilasin arduinnon oikean unon ja pari proto piirilevyä.

No nyt autotalliin sorvaamaan valurautaa hieman ja sitten pesemään naama.

T: PekkaNF

Kremmen

No niin, tässä yksinkertainen kohtuullisen tarkkuuden omaava kaksois-lineaarioptovahvistin. Tämä kytkentä vaatii kaksipäisen syötön ja input on nollasta ylöspäin, eli siis unipolaari. Palataan lopussa siihen miten noita juttuja voi säätää tarvittaessa.
Piirin vasen puoli on mitattavan kohteen potentiaalissa, ja oikea puoli "turvallisessa" potentiaalissa. Huomaa, että kummankin puolen käyttöjännitteet ja maataso on myös oltava galvaanisesti eri piirejä, muuten mitään erotusta ei tapahdu. Seuraava selostus liittyy piirikaavioon "Optoerotusvahvistin.pdf".

Vasemmanpuoleinen mittausvahvistin (U501):

Vahvistin on kytketty aivan normaaliin invertoivaan kytkentään, jolloin siihen pätee normaalit invertoivan vahvistimen laskusäännöt. Kertauksena muutama juttu operaatiovahvistimista yleisesti ja invertoivasta vahvistimesta peruskytkennässä erikseen:
1. vahvistin vahvistaa + ja - inputtien välistä jännite-eroa (ideaali = ääretön vahvistus). Jos + inputi on positiivisempi kuin -, vahvistimen lähtö ohjautuu positiivisen jännitteen suuntaan
2. inputtien kautta ei kulje lainkaan virtaa
3. invertoivassa eli kääntävässä vahvistimessa + inputti maadoitetaan. Tulosignaali ohjataan - inputille vastuksen kautta, ja samoin outputti vastuksen kautta - inputtiin.
4. Kun tulosignaalin jännite nyt nousee se pyrkii nostamaan - inputin jännitettä, jolloin vahvistimen lähtö alkaa ajautua negatiiviseen jännitteeseen päin (koska + inputti on maadoitettu eli 0V niin - input on nyt positiivisempi).
5. Koska tulosignaali ja vahvistimen lähtö on kumpikin kytketty vastuksen kautta samaan pisteeseen (- inpputti) ne muodostavat ikäänkuin jännitejaon, jossa - inputin jännite määräytyy tuon jaon perusteella.
Kirchoffin virtalain perusteella tiedetään, että piirin solmuun saapuvien ja sieltä poistuvien virtojan summa on 0. Kun inputit eivät ota virtaa niin koko se virta joka syntyy tulojännitteestä tulovastuksen läpi, on mentävä vahvistimen outputtiin takaisinkytkentävastuksen kautta. Eli tällöin pätee

Uin/Rin + Uout/Rfb = 0     (1) ja tästä edelleen

Uin/Rin = -Uout/Rfb        (2) uudelleenjärjestelemällä tekijät saadaan

Uout/Uin = -Rfb/Rin        (3) eli kytkennän vahvistus on vastuksien suhde suoraan, ja etumerkki kääntäen.

Nyt optovahvistimesta ei kuitenkaan näytä löytyvän kuin tulovastus R504. Ja onkin totta, ettei suoraan yhtä Rfb:tä vastaavaa vastuskomponenttia. Kuitenkin meillä on takaisinkytkentä transistorin Q501, opton ledin Q502.1 ja opton fotodiodin Q502.2 kautta. Ideahan on tasapainottaa vahvistimen - inbputtiin tulevat ja sieltä lähtevät virrat. Ja se tapahtuu tässä piirissä näin:

Tulojännite liittimien J502-J503 välillä synnyttää tulovirran vastuksen R504 läpi (koska vahvistimen - inputti on virtuaalimaa eli pyrkii pitämään saman nollatason kuin + inputtikin).
Vahvistimen lähtö alkaa ohjautua negatiiviseen suuntaan jolloin PNP-transistori Q501 alkaa johtamaan ja opton ledissä Q502.1 alkaa kulkea virta.
Ledin virta synnyttää opton fotodiodeissa fotovirran ja nyt fotodiodi Q502.2 on kytketty - inputin ja maan välille niin, että siinä syntyvä virta alka vetää R504:n läpi kulkevaa tulovirtaa maihin. Kun vahvistimen lähtö on ohjannut optolle tarpeeksi virtaa niin, että fotovirta juuri vastaa tulovirtaa on systeemi tasapainossa ja saavuttaa jatkuvuustilan kunnes tulojännite muuttuu ja homma toistuu.
Vahvistimella näkyy suora takaisinkytkentä pienellä konkalla C503. Yhdessä tulovastuksen R504 kanssa se muodostaa vahvistimen siirtovasteeseen navan jolla estetään taipumus suurtaajuiseen värähtelyyn. Pitkä takaisinkytkentäketju aiheuttaa nimittäin vaihesiirtoa ja voi vaarantaa stabiilisuuden jos vahvistus säilyy suurilla taajuuksilla korkeana.

Kaiken edellisen sepustuksen jälkeen siis toiminta on äärettömän simppeli: vahvistinkytkentä pyrkii tekemään tulovirrasta Uin/R504 ja diodin Q502.2 fotovirrasta identtiset. Seuraava kysymys, että minkä suuruinen tuon virran nyt sitten pitäisi olla? Lasketaan taas vähän:

Kaksoisoptoille määritellään kolme K-arvoa seuraavasti:

K1: Servo current gain, eli "servosilmukan" virtavahvistus. Tämä on juuri se silmukka joka edellä kyhättiin. Laskennallisesti siis

K1 = Ip1/If missä

Ip1 on fotodiodin 1 virta
If on opton ledin virta

K2 on myötävahvistus eli sama kuin edellinen, mutta kohdistuen fotodiodiin 2 (toisiopuolen diodi)

K2 = Ip2/If

K3 on ns. siirtovahvistus (transfer gain) eli myötä- ja servovahvistuksien suhde

K3 = K2/K1   ideaalitapauksessa K3 = 1,0 jolloin molemmat diodit generoivat täsmälleen saman fotovirran, mutta käytännön komponenteissa on aina toleranssia.

Mitoitetaan piiri yleisesti käytetyn ja kohtuuedullisen komponentin HCNR200 mukaan. Perusteet kelpaa kaikille muillekin kunhan K-kertoimet ja maksimiarvot otetaan käytetystä komposta. Tälle lukuarvot ovat:

Ledivirta (abs. max): 25 mA
K1: min 0,25, typ 0,5, max 0,75
K3: min 0,85, typ 1,0, max 1,15

Tähdätään nimellistulojännitteellä vaikkapa 1 mA tulovirtaan. Se on riittävän pieni ollakseen aiheuttamatta mainittavia tehohäviöitä mutta tarpeeksi iso jotta ei ole kovin häiriöherkkä. Tällöin siis fotodiodin 1 fotovirta olisi tuon suuruinen ja siitä kertoimella K1 laskettuna ledin virta, variaation huomioiden 1/0,25 ... 1/0,75 mA eli 4 ... 1,33 mA. Tämä on ainakin turvallisen kaukana sallitusta maksimivirrasta.

Tästä saadaan siis tulovastuksen R504 mitoitus suoraan:

R504 = Uin_max/1mA eli helppo muistisääntö: Niin monta kilo-ohmia kuin voltteja. 10V = 10 kohm jne.

Toinen vastusarvo joka voidaan kiinnittää on opton ledinohjauksen sarjavastus R502. Se viime kädessä rajoittaa ledin läpi kulkevaa virtaa ja toimii samalla audiomiehille tuttuna trankun Q501 emitterin degenerointivastuksena. Tästä on seurauksena, että mitä suurempi R502, sitä enemmän operatiovahvistimen lähdön pitää muuttua jotta haluttu virran muutos saadaan aikaan. Pidetään vastuksen arvo kohtuullisena niin vahvistimen lähdön swingi pysyy maltillisena eikä nousunopeusraja tule niin nopeasti vastaan. Näillä jännitteillä voisi kokeilla jotain 220 - 330 ohmia.
R501 toimii trankun Q501 emitterin ylösvetovastuksena eli osaltaan varmistaa että trankku menee myös kiinni. Arvo ei ole mitenkään kriittinen, pari kiloa tai sinnepäin on ok.
Vahvistin ohjaa trankun kantaa vastuksen R503 kautta. Sopiva arvo riippuu transistorin virtavahvistuksesta joka 2N3906:lle on siinä luokkaa 100. Ledivirtaa tarvittiin enimmillään 4 mA ja siitä sadasosa tarkoittaisi 40 uA kantavirtaa. Kerrotaan tuo nyt vaikka kymmenellä varmuudeksi ja katsotaan mikä olisi resistanssi jos vastuksen yli jäisi esim 5 V. Eli 5V / 400 uA = 12,5 kohm. Laitetaan kymppikiloinen vastus R503.
R506 on varmistamassa että mahdolliset vuotovirrat ei käännä lediä päälle tahattomasti. Arvo voi olla muutama kymmenen kiloa,


Oikeanpuoleinen erotusvahvistin U502):

Nyt kun vasen puoli on hanskassa, on oikea puoli lähes triviaali. Käytetylle optolle K3-arvo on 1,0, joten molemmat fotodiodit käyttäytyvät identtisesti. Näin ollen kun päätettiin, että mittavahvistimen puolella on nimellistulojännitettä vastaava fotovirta 1 mA niin se on sama tälläkin puolella diodissa 2. Takaisinkytkentävastuksen R505 läpi pitää siis kulkea tuo samainen fotovirta 1 mA ja näin vastuksen yli jäävä jännitehäviö on suoraan toisiopuolen lähtöjännite (koska vahvistimen - inputti on kiinnitetty virtuaalimaahan). Täälläkin taas pieni konkka taittamassa vahvistimen suurtaajuusvahvistusta ettei ala pärähtelemään.

Siinäpä se pähkinänkuoressa. Kunhan pidetään mitoituksella huoli, ettei opton ledivirta mene tolkuttomaksi, niin tässä meillä on simppeli ei-kääntävä erotusvahvistin jonka jännitevahvistus on yksinkertaisesti G = R505/R504.

Sanoinko jo, että molempien puolien jännitteet ja maat on pidettävä galvaanisesti erillään. Tämä tarve mutksitaa käytännön ratkaisuja huomattavasti, kun sama jännitelähde ei noin vain käy molemmille puolille. Paljon käytetty ratkaisu on virittää pieni muuntajaerotettu hakkuri tekemään jännitteet - tyypillisesti pieni flyback-kytkentä. Silloin syöttö voi olla galvaanisesti erossa kummastakin puolesta kun on muuntajan käämit välissä.

---
Epilogi: Hälvennetään samantien mahdollisesti syntyvä hämmennys joka voi seurata, ellei tiedosta miten tuo opto toimii "oikeasti". Piirikaaviota katsellessa ja mikäli muistelee kääntävän vahvistimen lauseketta jossa vastusten suhde määrää vahvistuksen, voi herätä kysymys, miten tuo fotodiodi voi toimia kun se on kytketty - inputin ja maan väliin. Jos sitä ajattelee muuttuvana vastuksena vähän samaan tapaan kuin fototransistoria tavallisessa optossa niin eihän tuo piiri voi toimia. Kun siellä vastuksen toisessa päässä pitäisi olla muuttuva jännite jotta - inputti saataisi pysymään nollajännitteessä.
Vaan tässä optossapa onkin fotodiodit ja ne on hienostuneita kvanttimekaanisia laitoksia. Saihan Einstein vuoden -22 Nobelin palkinnonkin tuon efektin selittämisestä. Kun fotoni osuu fotodiodn puolijohdeliitokseen se irroittaa sen kiderakenteesta  elektroni/aukkoparin. Nuo yhdessä eivät ole mitään muuta kuin sähkövirtaa ja niinpä fotodiodi toimii valo-ohjattuna virtageneraattorina. Päinvastoin kuin luulisi, virta kulkee katodilta anodille koska virran muodostaa käänteinen rekombinaatio bipolaarisessa puolijohteessa. Mutta se nyt ei ole tärkeää, vaan se, että komponentti generoi valosta oman virtansa eikä tarvitse mitään apujännitettä jota ohjailla.

Nothing sings like a kilovolt
Dr W. Bishop

Hannu

Huh ,hyvät sydämen tykytykset sain innosta  kuin selasin tuon äkkiä läpi,Kiitos.
opton pdf sentään löytyi koneelta ,mitähän siittä on joskus meinattu tehdä :D.
Ei muuta kun miettimään tuota tekstiä ajatuksen kanssa ja postia Mouserille.
Tosiaan tässä kyllä vierähtää tovi.

Kremmen

Lainaus käyttäjältä: PekkaNF - 26.01.14 - klo:13:30
Joo kiinnostaa noi Hannunkin viritykset.

Tutkiskelin noita hieman, tosin atmellin iltalukeminen on vielä vähän kesken ;D

DIO on vähän mun silmien/monitorin/bittiresoluution rajoilla, mutta kun ymmärsin ton resoluution, niin alkoi selvitä. Periaateessa tiesin ton virtalähteen erotuksen, mutta tosiaan tuo zener oli hauska, ei tullut ainakaan opiskeluaikaan vastaan, ehkä ohimennen jollekkin aturille sarjavastus ja hakkureista puhunut ope taisi mainita ferriittihelmen. Mutta tuo on hauska nähä piirikaaviona ja selostettuna.

Säikäytti hieman tuo pintaliitosshuntti. Mä olen onnistuntu välttämään pintaliitoskamat toistaiseksi ;D

Hyvä nähdä kaavioita, joista ei tarvii ruveta arvaamaan ensiksi, että mitä pielessä.

Teki melkein mieli ladata diptrace, mutta se viivästyttäisi vielä enemmän prjektin alouitusta. Tilasin arduinnon oikean unon ja pari proto piirilevyä.

No nyt autotalliin sorvaamaan valurautaa hieman ja sitten pesemään naama.

T: PekkaNF
Piti laittamani ne piirikaviot pdf-muodossakin mutta se jäi sitten. Ei se mitään, laitn ne vielä tulemaan niin ei tarvitse tihrustella.

Alkaa olemaan läpireiän juottajilla ankeat ajat kun yhä enemmän on tavaraa jota saa vain pintaliitoksena. Se shuntti on vielä helppo, sehän on iso kuin voileipäkeksi mutta se mittavahvistin on sot23-6 paketissa ja se on jo aika pieni ja ikävä kolvata vanhan liiton maksi-wellerillä...
Noiden digitaalitulojen toiminnan uskallan tosiaan luvata, samat piirithän on käytössä siinä taannoisessa kierroslukumittarissa eikä ole kuulunut että olisi huolia ollut.
Tuo viimeisin erottava optovahvistin on ihan paperiharjoitus, sitä pitää labrata ennenkuin uskaltaa julistaa toimivaksi. Mutta enempi varmaan on kiinni layoutin yksityiskohdista kuin varsinaisesta piirikaaviosta.

Sitten tämmöinen kommentti tuohon sinun Diptrace-huomioosi: sen lataaminen ja opiskelu saattaa kyllä hidastaa projektin aloitusta mutta toisaalta se saattaa vauhdittaa projektin loppuunsaattamista. Jos nimittäin meinaat oikeasti tehdä lisäkortin Arduinolle niin jotain työkalua kannattaisi kyllä käyttää. Vaikka olisikin protokortti niin piirin mallaus kortille käy kyllä ihan eri lailla kun on oikean piirilevytyökalun tuki takana. Eikä se kynnys nyt niin iso ole; pitävät Diptracea aika helpponakin oppia - ainakin perusjuttuja. Ja apujahan saa.
Laitan nitä pdf:iä kohtapuoliin.
Nothing sings like a kilovolt
Dr W. Bishop

PekkaNF

Kiitos kiitos kiitos, noi pitää printata ja miettiä ihan paperin ja ajatuksen kanssa. Pari ajtustakin vähän jäänyt vireeseen, mutta mietitään.

PekkaNF

Kremmen

Tässäpä nuo kuvat pdf-muodossa, sekä kaikki vielä yhdessä Diptrace-tiedostossa.
Laitoin tuon zippinä mutta txt-päätteellä koskapa zip ei ole hyväksytty formaatti. Viruksia tuossa ei ole joten ainoa mitä paketista löytyy on Diptracen "Arduino IO.dch" piirikavio.
Nothing sings like a kilovolt
Dr W. Bishop

PekkaNF

OK. Pari päivää olen puljannut Arduino UNO R3:n kanssa ja harjoiteltu hommia tämän listan mukaan ylhäältä alas ja vasemmalta oikeelle:
http://arduino.cc/en/Tutorial/HomePage

Samalla olen lukenut ton C:n mallisen kielen syntaksia:
http://arduino.cc/en/Reference/HomePage

Tämän luin:
http://arduino.cc/en/Reference/StyleGuide

Ok, jos kirjoitetaan selosta ja tehdään ohjelmaa teknologisesti rajoittuneelle, niin varmaan ok, mutta minua alkoi ahdistaa.

Olisko suositella jotain tämän palstan ihmisten luonteeseen sopivaa opasta C:n opiskeluun (edellisen kerran opiskelin -88 ja silloin käytettiin pointtereita ja aivan saatanasti includattiin kirjastoja?

Tilasin pari kirjaa:

1) Getting Started with Arduino, 2nd Edition
http://shop.oreilly.com/product/0636920021414.do?green=1F313C24-404C-586A-ACAD-9471D450CFD5&intcmp=af-mybuy-0636920021414.IP
Otin sekä kovana, että PDF:nä. Mutta tämä kirja oli vähän vikatikki. Näyttää paljolti päällekäiseltä virallisten sivujen kanssa.

2) Arduino Cookbook, 2nd Edition
Recipes to Begin, Expand, and Enhance Your Projects
http://shop.oreilly.com/product/0636920022244.do?intcmp=il-na-books-videos-product-intsrch_arduino_ct
Tämä on jo koneella PDF:nä, mutten ole vielä aloittanut.

Itseasiassa kun nyt kerran pitää opiskella, niin vois tehdä sen oikein. Joten olen käynyt noita esimerkkejä läpi ajatuksella ja modannut niitä kutakin pariin otteeseen. Olen käyttänyt leipälevyä ja jumppereita ja kolvannut joitakin juttuja jo pikaistuksissani kokoon (lähinnä antureita piuhoihin yms.)

Yksi asia joka on tullut mieleet, että pisäis hankkia joku ESD alusta jonka päällä vois tehdä noita koekytkentöjä. Mieluiten eri matto, kun mitä käytetään rakentamiseen....ei ole kauan aikaa kun käräytin yhden pikkuhakkurin, kun oli alustalle unohtunut sivarilla katkaisuja lankoja. Olisko jotain ei ihan überkallista vaihtoehtoo.

Kattelin tota:
http://www.yeint.fi/index.php?main=64&productCat=2677&productID=15520&productCode=ITE+7804.874&brand=ITECO&mainProductGroup=ESD+SUOJAUS&subProductGroup=MAADOITUSRASIA

ja

http://www.yeint.fi/index.php?main=64&productCat=2673&productID=17966

*********
sitten yksi asia minua on kovasti askarruttanut: Mitenkä näissä sulautetuissa rakennetaan I/O:n logiikka? Perinteisesti teollisuuden logiikaohjaimissa on merkkereitä (flags) ja muuttujia, joita käsitellään tikapuuna jne. ja sitten syklin lopussa päivitetään prosessikuva, joka vasta vaikuttaa fyysisiin lähtöihin. Eikä inputitkaan muutu matkan varrella.

Arduinnossa taas saa I/O:ta ihan rauhassa rukata pitkin sykliä ja ilmeisesti se vaikuttaa fyysiseen lähtöön sen samantien? Eli jos haluaa rakentaa tilalogiikan, niin pitääkö ensin tehdä nippu muuttujia, joihin luetaan I/O, sitten käsitellään lukitukset ja lopuksi kirjoitetaan nämä outputteihin, vai onko tässä joku fiksumpikin menetelmä?

PekkaNF

jyrki.j.koivisto

Kremmeni tähän varmasti vastailee myöskin mutta kerron nyt oman mielipiteen näistä Arduinoista. Aivan ensimmäiseksi unoha koko Arduino, se on vain sen alustan nimi ja ilmeisesti tarkoitettu että sillä saisi jotain näennäisen toimivaa nopeasti tehtyä.

Etsi mikrokontrollerin datalehti ja ala käymään sitä läpi, sillä pääsee jo aika pitkälle. Porttien toteutus on vissiin se ensimmäinen kohta mihin kannattaa kiinnittää huomiota.

Logiikan voi sitten rakentaa monella eri tapaa kunhan ensin ymmärtää miten portit rakentuu. Itse lähtisin siitä tosiasiasta että portin voi asettaa moneen tilaan, input, output jne. Porteissa on myös ylösvetovastukset hyvin usein aseteltavissa ja portin voi myös laittaa "open collector" tilaan jne. jne.

C ei ole varmastikkaan paljoa siitä muuttunut, C++:ssaa ei liene tarkoituksenmukaista tähän sotkea koska se vaatii jo jonkin verran prossulta pinnan alla.

Kremmen

Lainaus käyttäjältä: PekkaNF - 02.02.14 - klo:15:03
OK. Pari päivää olen puljannut Arduino UNO R3:n kanssa ja harjoiteltu hommia tämän listan mukaan ylhäältä alas ja vasemmalta oikeelle:
http://arduino.cc/en/Tutorial/HomePage

Samalla olen lukenut ton C:n mallisen kielen syntaksia:
http://arduino.cc/en/Reference/HomePage

Tämän luin:
http://arduino.cc/en/Reference/StyleGuide

Ok, jos kirjoitetaan selosta ja tehdään ohjelmaa teknologisesti rajoittuneelle, niin varmaan ok, mutta minua alkoi ahdistaa.

Olisko suositella jotain tämän palstan ihmisten luonteeseen sopivaa opasta C:n opiskeluun (edellisen kerran opiskelin -88 ja silloin käytettiin pointtereita ja aivan ruohosipulisti includattiin kirjastoja?
C ja C++ on kaikille samat, joten varsinaisen kielen opiskelu on yksi asia joka kannattaa mutta eri asia on sitten vielä soveltaa kieltä käytännössä. Matalan tason sulautetuissa systeemeissä kuten Arduinossa ja päinvastoin kuin esim PC:ssä, ei ohjelman ja raudan välissä ole mitään virtualisointi- tai abstraktiokerrosta kuten vaikkapa käyttöjärjestelmää. Tällöin iso osa systeemin suunnittelua ja toteutusta on ohjata sulautettuja oheislaitteita ja GPIO:ta (siis General Purpose I/O, eli yleiskäyttöiset tulot ja lähdöt eli portit) suoraan. Tämän hallitsemiseksi tarvii osata prosessorin sulautetut oheislaitteet, sen porttirakenne sekä käytetyn alustan (tässä siis Arduinon) piirikaavio.

Arduinon mukana tulee sen oma IDE jolla noita "sketchejä" kirjoitetaan. Miksiköhän niitäkään ei ole voinut rehellisesti kutsua ohjelmiksi... No, joka tapauksessa IDE ei käännä mitään, vaan koodin tuottaa taustalla vanha tuttu avr-gcc joka on siis ei mikään muu kuin Atmelin prosessoreille sovitettu GNU C/C++ kääntyri, varmaan maailman eniten käytetty. Arduinolla ei siis ole mitään omaa ohjelmointikieltä, vaan se on puhdas C/C++ sellaisena kuin avr-gcc sen toteuttaa (Arduino Unon "moottorihan" on ATMega328). Kaikki avr-gcc:n ajonaikaisen kirjaston (AVR Libc) funktiot on käytettävissä, ja _ne_on_syytä_oppia_. Löytyy täältä: http://www.nongnu.org/avr-libc/. Tuolla on vielä joku vähän vanhempi avr-gcc tutoriaali: http://www.8051projects.net/files/public/1242392126_2569_FT22383_avr_tutorial.pdf.

Ja omana mielipiteenä kannattaisi juuri Arduinon kanssa treenata C++:n käyttöä, koska niin Arduino tekee itsekin. Vaikkei sitä missään mainostetakaan niin Arduinon koodin rakenne on suoraan C++:n mukaista ja valtaosa sen omia ja kolmansien kirjoittamia kirjastoja on itse asiassa C++ -luokkia. C++:n käytöllä saa useita etuja mutta ei joudu maksamaan muuta kuin opettelemisen vaivan. Yleensä C++ -kielen käyttöä väistellään sillä perusteella että se olisi raskasta, mutta se ei kyllä pidä paikkaansa teorian eikä oman kokemuksenkaan perusteella. C++:n periaate on "no penalty" eli jos jotain ominaisuutta ei käytä, se ei tule mukaan lopulliseen koodiin. Tätä nykyä kirjoitan kaikki sovellukset C++:lla jos vaan käytetty ympäristö sitä tukee. Muun muassa taannoin jäsen senaattorin aloitteesta toteuttamani kierroslukumittari on kokonaan C++:lla koodattu.

Eli: opettele kieli ja käännösympäristö, opettele prosessori, ja opettele ajoympäristö eli Arduinon piirikaavio.

Eikä koodia ole mikään pakko kirjoittaa käyttäen Arduinon vakiokirjaston hömppäfunktioita joista suosikki-inhokki on Digitalwrite().
Seuraava koodi toimii Arduinossa mainiosti. Selvitäpä itsellesi mitä se tekee (selvitykseen tarvitaan AVR-Libc:n ja ATMega328-prosessorin I/O:n tunteminen).

#include <avr/io.h>
uint8_t count;

void setup(void) {
  PORTB = 0;
  DDRB = 0xff;
  count = 0;
}

void loop(void) {
  PORTB = count++;
}

Lainaa

Tilasin pari kirjaa:

1) Getting Started with Arduino, 2nd Edition
http://shop.oreilly.com/product/0636920021414.do?green=1F313C24-404C-586A-ACAD-9471D450CFD5&intcmp=af-mybuy-0636920021414.IP
Otin sekä kovana, että PDF:nä. Mutta tämä kirja oli vähän vikatikki. Näyttää paljolti päällekäiseltä virallisten sivujen kanssa.

2) Arduino Cookbook, 2nd Edition
Recipes to Begin, Expand, and Enhance Your Projects
http://shop.oreilly.com/product/0636920022244.do?intcmp=il-na-books-videos-product-intsrch_arduino_ct
Tämä on jo koneella PDF:nä, mutten ole vielä aloittanut.
Arduino ei ole juuri muuta kuin ATMEga328, poweri ja USB-liitäntä. Niinpä kaikki sulautettujen järjestelmien oppaat kelpaa soveltaen myös Arduinolle. Itse hakisin mielummin aihepiirin mukaan kuin toteutusalustan. Mutta ei mulla ole oikein antaa linkkejä kun en ole itse moisia kirjoja kaipaillut.
Lainaa

Itseasiassa kun nyt kerran pitää opiskella, niin vois tehdä sen oikein. Joten olen käynyt noita esimerkkejä läpi ajatuksella ja modannut niitä kutakin pariin otteeseen. Olen käyttänyt leipälevyä ja jumppereita ja kolvannut joitakin juttuja jo pikaistuksissani kokoon (lähinnä antureita piuhoihin yms.)

Yksi asia joka on tullut mieleet, että pisäis hankkia joku ESD alusta jonka päällä vois tehdä noita koekytkentöjä. Mieluiten eri matto, kun mitä käytetään rakentamiseen....ei ole kauan aikaa kun käräytin yhden pikkuhakkurin, kun oli alustalle unohtunut sivarilla katkaisuja lankoja. Olisko jotain ei ihan überkallista vaihtoehtoo.

Kattelin tota:
http://www.yeint.fi/index.php?main=64&productCat=2677&productID=15520&productCode=ITE+7804.874&brand=ITECO&mainProductGroup=ESD+SUOJAUS&subProductGroup=MAADOITUSRASIA

ja

http://www.yeint.fi/index.php?main=64&productCat=2673&productID=17966
Itse hommasin aikanaan hyvin samanlaisen plugin, 120x60cm kumimaton, rannelenkin ja pari nepparikierrejohtoa. Maton taisin tilata Partcon kautta, hehän toimittavat olikos se nyt Farnellin ja Elfan kamaa -jommankumman kataloogista muistaakseni löytyi matto kohtuuhintaan. Kumimatto on hyvä, se kestää kuumaa kolvia ja askartelua, ei tarvii varoa.
Lainaa

*********
sitten yksi asia minua on kovasti askarruttanut: Mitenkä näissä sulautetuissa rakennetaan I/O:n logiikka? Perinteisesti teollisuuden logiikaohjaimissa on merkkereitä (flags) ja muuttujia, joita käsitellään tikapuuna jne. ja sitten syklin lopussa päivitetään prosessikuva, joka vasta vaikuttaa fyysisiin lähtöihin. Eikä inputitkaan muutu matkan varrella.

Arduinnossa taas saa I/O:ta ihan rauhassa rukata pitkin sykliä ja ilmeisesti se vaikuttaa fyysiseen lähtöön sen samantien? Eli jos haluaa rakentaa tilalogiikan, niin pitääkö ensin tehdä nippu muuttujia, joihin luetaan I/O, sitten käsitellään lukitukset ja lopuksi kirjoitetaan nämä outputteihin, vai onko tässä joku fiksumpikin menetelmä?
Kyllä toki; mikrokontrollerin I/O-operaatiot suoritetaan välittömästi. Niin ne tehdään logiikassakin, onhan sielläkin prosessori sisällä, mutta logiikan käyttis hoitaa homman sekvensoidusti. Jollain Arduinolla joudut tekemään homman käsin juuri kuten esität, eikä ole periaatteessakaan olemassa sen fiksumpaa tapaa. Noin niitä tehtiin jo kultaisella 80-luvulla kun meikällekin maksettiin palkkaa paperiteollisuuden automaation kyhäilystä prosessoreilla.
Lainaa
PekkaNF
Jos haluat päästä asiassa eteenpäin ja ehkä vähän murtaa Arduino-kalteria niin yksi helppo konsti on asentaa ilmainen Atmel Studio 6.1 ja sille Visual Micron Arduino-plugin. Näin pääset kirjoittamaan Arduino-koodia ihan "oikeassa" kehitysympäristössä joka toimii sitten mille tahansa Atmelin prosessorille, ARMit mukaan luettuna. Siis jos/kun ruokahalu kasvaa. Visual Micron mukana tulee myös alkeellinen Arduino-debuggeri joka on parannus verrattuna siihen, että Arduinossa itsessään ei ole mitään. Plus, että Studio tekee koodaamisen ja koodin hallinnan jumalattoman paljon helpommaksi.
Nothing sings like a kilovolt
Dr W. Bishop

Powered by EzPortal
SMF spam blocked by CleanTalk