Aihearkisto: Rakentelut

100w ledejä&virtalähteitä

Köyhän ei kannata ostaa halpaa, se tuli todettua jälleen kerran. Nuo ledit, jotka tilasin olivat aika huono laatuisia. Yksikään niistä ei luultavasti ole kovin pitkä ikäinen. Artikkeli kuvassa on yksi ledeistä jännite on noin 15V ja virta on aika tasan10mA. Noilla virroilla ja jännitteillä ei pitäisi 100w ledin yksittäisten ledien vielä syttyä, eikä varsinkaan noin, että kirkkaita pisteitä on siellä täällä. Kaikkein paras ja optimi tilanne olisi, jos kaikki yksittäiset ledit alkaisivat syttyä samaan tahtiin. No aika näyttää miten ledit kestävät. Taidan kuitenkin laittaa palautetta myyjälle kuvien kera ja kysellä asiasta.

IMG_20150722_011441
Koekytkentä mallia ”haluatko kissasta eroon?”

100W Ledi siis koostuu kymmenestä ledi ”nauhasta”, joissa kussakin on kymmenen 1W lediä eli siis 10*10*1W=100W . Samoin esimerkiksi 20W ledi koostuu kahdesta ”nauhasta”. Toki muitakin malleja ja kytkentöjä on markkinoilla.

100w ledi lämpenee varsin hyvin ja en ole vielä saanut oikeita jäähdytyssiilejä, joten voin vain muutamia minuutteja kokeilla kerrallaan noita, ne ovat ihan sairaan kirkkaat! Siilit eivät myöskään ihan nopeasti ole tulossa. Sain sähköpostia siilien myyjältä, ne siilit olivat palautuneet hänelle takaisin. Ilmeisesti Kiinan postilla on jotain ongelmia/ruuhkaa tai jotain.

Äkkiä laskien, jos 1W ledi vastaa karkeasti 10W hehkulamppua niin 100W ledi vastaa noin 1kW hehkulamppua suhteellisen jees! Tarkoitus on siis noista neljästä ledistä tehdä sen verran kirkas valaistus, että en tarvitse erikseen kirkasvalolamppua. Seuraava ostos on sitten varmaan luxi-mittari.

En yleensä omissa projekteissa käytä verkkovirtaa, mutta poikkeus vahvistaa säännön tässäkin asiassa. Kuvassa on ehkä ihan hyvä selitys asialle ;-D En löytänyt omista varastoista sokeripalaa, joten tein sen sitten itse parista bnc-ruuviterminaali palikasta ja sopivasta välikappaleesta. Muuten asiassahan ei ole mitään hätää, mutta jos töpseli on ”väärin päin” on bnc-rungossa 240V verkkojännite. Onneksi kyseessä on siis vain koekytkentä. Lopulliseen kytkentään toki tulee parempi ratkaisu ja jonkinmoiseen laatikkoonkin toi pitää laittaa.

Virtalähde on suljettu paketti ja en sen sisään pääse ellen tuhoa koko IMG_20150723_235432laitetta ja ihan sitä en viitsi tehdä, ainakaan vielä. Tuosta saa siis irti 3A ja 21-38V.  Jännite siis muuttuu sen mukaan mitä ledi muuttaa mm. lämpötilan takia ominaisuuksiaan. Mittasin jännitteen yhden ledin kohdalla. Se oli luokkaa 25.5V eli jos oikeasti 3A menee ledille(, mitä en ole mitannut) teho on 3A*25.5V=76.5W ei ihan siis se 100W mikä pitäisi olla. pläääh….. Mua on huijattu.

Nyt vasta tuosta kuvasta tajusin, että laatu ei noissa virtalähteissäkään ole mitenkään päätä huimaava. Vaihe  ja nolla kaapelien värit ovat väärin päin. Pitäisiköhän testata kuinka paljon tuosta palikasta lähtee häiriötä ympäristöön.  Harmi, ettei ole EMC-labraa käytettävissä.

Ostin lisäksi sopivan linssin pakettiin mukaan.  Ei ihan niin hyvIMG_20150722_030003ä kuin olisin halunnut, mutta toimiva silti ja komean näköinen möllöttäjä! Toivottavasti kiinnitys reiät sopivat jäähdytyssiilissä sekä ledin että linssin kiinnityksiin.

Ledejä, virtalähteitä ja dummyload

Laiskuus ja kärsimättömyys taitaa löytyä monen keksinnön takaa. Tilasin eBaysta 100w ledejä ja niihin sopivia virtalähteitä. Tilasin ledit ja virtalähteet yhtä aikaa, mutta virtalähteet tulivat nopeasti ja vastaavasti ledit tulivat hitaasti….

Minulla siis oli hetken aikaa virtalähteitä, joita minä en oikeastaan mitenkään voinut testata. Jännitteen mittaus ei onnistunut, koska suojapiiri nappasi lähteestä virrat pois heti, kun jännite nousi riittävästi. Samoin suojapiiri nappasi virrat pois, kun yritti mitata virtaa yleismittarilla. Ilmeisesti suojapiiri vaatii jonkin verran jännitettä ennen kuin se antaa ottaa virtaa ja näinhän yleismittarissa ei ole vaan se näkyy oikosulkuna virtalähteelle(, jos siis piirissä ei ole muuta). Eikä minulla ollut mitään soveltuvaa 100w kestävää vastusta/kuormaa.

Siitä lähti sitten idea tehdä keinokuorma, joka kestää 100w ledin virtalähteen testaamisen.  Lopulta ihan jatkuvaa 100w tehoa kestävää en tehnyt, kun tarkoitus on/oli käyttää niitä osia mitä sattuu löytymään valmiina ja sen takia esimerkiksi jäähdytysrivat jäi sen verran pieneksi, että laskeskelin niiden 100w teholla  lämpenevän teoriassa yli 350 astetta ympäristöä lämpimämmäksi. Ei ihan onnistu, kun tinakin jo alkaa noissa lämmöissä sulaa varsin nätisti. No kyllä se hetken aikaa kestää kuitenkin sitä 100w tehoakin. 100w Ledin virtalähteestä saa siis noin 3A virtaa ja jännite on maksimissaan luokkaa 36V.

Lopulta tuli kuitenkin suunniteltua ihan kunnon piirilevykin ja tilattua iTeadilta. Ei mitään tietoa onko mitään järkeä tehdä kuormaa niin kuin sen tein, mutta periaatteessa pitäisi toimia. Enkä siis myöskään kokeillut leipälaudalla, kuin vain yhdellä mosfetillä toiminnan. Tarkoitus ei ollut alunperinkään tehdä mitään super tarkkaa, kunhan vain suunnilleen on jotain sinne suuntaan kuorma. Ei liene mitenkään vaikea arvata kenen videosta sain osittain idean ja otin mallia.

Eikä Martinin videoidenkaan katsomisesta ainakaan haittaa ollut, vaikka ovatkin pikkasen pitkähköjä. Martin oli tehnyt muutamia laskelmia, joita en itse ollut tehnyt ja joihin ensi kuulemalta suhtauduin hiukan skeptisesti, mutta todellakin oikeassahan hän oli,

Kuorman ottama teho eri virroilla.
Kuorman ottama teho eri virroilla.

jossain vaiheessa mosfetissa tapahtuva teho häviö alkaa laskea ja kaikki teho häviää vastuksessa.  Kun P=R*I^2 niin vaikka virta koko ajan kasvaa, menee mosfetin vastus R jossain vaiheessa niin pieneksi, että teho alkaa häipyä. Omassa kuormassa ei ole tarkoitus käyttää noin isoja tehoja.

Kuorman säätö on toteutettu potentiometrillä ja operaatiovahvistimen (LM324) ohjaamilla mosfeteilla (IRLZ24N).

Ensimmäinen versio koekytkentä levyllä. Vastus ei näy.
Ensimmäinen versio koekytkentä levyllä. Vastus ei näy tässä.

Periaatteessa potentiometrin olisi voinut laittaa suoraankin kiinni mosfetteja ohjaavaan operaatiovahvistimeen, mutta lm324 oparissa jäi käyttämättä yksi lohko, joten käytin sen puskurina. Lisäksi säädöstä löytyy jännitteen jako, jolla voi tarvittaessa muuttaa säädön vahvistusta.

Masiinassa on siis kolme mosfettia, jokaisella oma jäähdytys ripa. Jokaisella mosfetilla on oma vastus, jonka jännitehäviötä mitataan ja ohjataan sen perusteella mosfettia.

Kuorma vastuksena ja ”tunnustelu” vastuksena on tarkoitus käyttää  3 x 0,1 tai

Piiri kaavio.
Piirikaavio.

3x1ohmin 5% tehovastusta. Ledi virtalähteen arvoilla (siis 3A ja max. n.40V)  tulee siis per vastus ja mosfetti kulutetuksi tehoksi

0,1 ohm vastuksilla

0,1V*1A=0,1W

mosfetit

(40V-0,1V)*1A=39,9W

39,9W*9C/W=360C

 

ja 1 ohm vastuksilla

1V*1A=1W

mosfetit

(40V-1V)*1A=39W

39W*9C/W=350C

40 volttia on periaatteessa enemmän kuin mitä lähteestä pitäisi saada irti, mutta laskeskelimpa worst case tilanteen kuitenkin. Kovin pitkää aikaa siis ei voi kuormaa tuolla teholla käyttää tällä jäähdytyksellä, mutta sen verran, että voi leditevirtalähteen testata. Tosin ledit saapuivat postissa ennen kuin sain kuorman valmiiksi, joten siinä mielessä ei enää tarvitse kuormaa, mutta hällä väliä, saattaa sitä johonkin muuhunkin tarvita.

En ole vielä päättänyt kumpia vastuksia käytän. Luultavasti 0,1 ohmin, koska yön vähinä pimeinä tunteina piirilevyä suunnitellessa vastusten kohdalle jäi väärä vastus ja en taida saada noita 1 ohmin vastuksia nätisti kiinni piirilevyyn.

Jo tässä vaiheessa tiedän useammankin jutun joita pitää lisätä tai korjata seuraavaan versioon. Laitteessa ei esimerkiksi ole lainkaan mitään suojaukseen viittaavaakaan. Esimerkiksi vastukset mosfettien ja operaatiovahvistimien välillä olisi ehkä hyvä idea, samoin sinne voisi laittaa alasvetovastuksen, jotta mosfetteihin ei jää virtakatkossa tms. jännitettä gate pinniin. Kakkos versioon voisin harkita näytön laittamista ja vaikkapa joku mikrokontrollerikin, jolloin laitteesta saa muunkinlaisia kuormia kuin pelkän vakio virran.

Toiminta periaate on varsin yksinkertainen. Se perustuu täysin ohmin lakiin. Vastuksen yli vaikuttavaan jännitteeseen vaikuttaa vain virta, joka kulkee vastuksen lävitse. Kun tiedetään jännite ja vastus voidaan varsin helposti laskea virta vastuksen läpi. Sen jälkeen tarvitsee vain ohjata operaatiovahvistimella mosfettia pitämään jännite vastuksen yli siinä mihin se on potikalla säädetty.

Jännityksellä odotellaan miten äijän taas käy, kun piirilevyt saapuvat. Ne ovat tänään lähteneet Hong kongista, että en ihan usko, että ne tälle viikkoa ehtivät tänne. Kirjoittelen kuormasta lisää siinä vaiheessa, kun olen saanut kuorman rakennettua ja vähän testailtuakin.

 

 

R-2R DAC

R 2R digitaali analogi muunnin

Pientä kokeilua. Näin youtubessa seuraavan videon.

Ja päätin rakennella huvin ja viihteen vuoksi samanlaisen. R 2R dacin rakentelin R 2RWikipediasta löytyneen ohjeen mukaan. Vastusten arvolla ei niin isoa merkitystä ole, kunhan ne ovat saman kokoisia.  Minä käytin 10k vastuksia, koska niitä sattui olemaan pussillinen lojumassa laatikossa. Koodina on täsmälleen sama kuin alkuperäisessä videossa.IMG_20150413_185420

Kytkentä on rakennettu reikälevylle ja siinä on kaksi 8-bit muunninta. Koodi tosin käyttää y-akselilla vain 6-bit muunnosta.  Onneksi bitti määrän lyhennys on tässä tapauksessa helppoa. Oskilloskoopista pitää löytyä XY-tila jotta koodi näyttää mitään. Rigol 1054Z skoopista se löytyy. Näytön yläreunassa näkyy signaali normaalissa aika tasossa ja alaosassa XY. Jostain olisi varmaan löytynyt nappi millä näytössä olisi näkynyt pelkästään XY, mutten jaksanut alkaa sitä etsimään.

Laittelin aluksi johdot väärin päin jolloin kytkentä näytti ihan mitä sattuu, koska MSB oli LSB:n paikalla ja vastaavasti kaikki muutkin bitit ristissä.

Miten R 2R-dac sitten toimii?

Toiminta on hyvin yksinkertainen: jokaiselle bitille on oma sisäänmenonsa, jonka kautta ko. inputti vaikuttaa oman osansa ulostulevaan jännitteeseen. MSB(=most significant bit) eli eniten merkitsevä bitti vaikuttaa  \frac{1}{2^1} V_{in} = \frac {1}{2} V_{in} verran ulostulo jännitteeseen. Seuraava bitti vaikuttaa \frac{1}{2^2} V_{in} = \frac {1}{4} V_{in} verran ja 8-bitin tapauksessa LSB(=least significant bit) eli vähiten merkitsevä bitti vaikuttaa \frac{1}{2^8} V_{in} = \frac {1}{256} V_{in} verran.

MSB on lähimpänä ulostuloa ja LSB vastaavasti kauimpana.  Eri sisäänmenojen painoarvot ovat laskettavissa varsin helposti, mutten tässä niitä itse laske vaan linkkaan toisen videon, samalta henkilöltä, jonka videosta sain alunperin idean.

 

WS2812B kello

Jeee!! ne saapuivat! IMG_20150324_230440ja noista on jo kellokin rustattu 🙂

Ledit on tehtaalla asennettu  piirilevyn kappaleelle, jossa on kuusi tinattavaa täplää, DATA in ja out, 5v in ja out sekä sama GND:lle.  IMG_20150408_173017Rakentelin noista 3×5 ledin ”paneeleita” neljä kappaletta. Ensimmäisessä testissä huomasin Kiinan poikien tekemän ”källin”, GND täplät eivät olekaan kytketty yhteen! Toki voi olla, että normaalisti ne on kytketty yhteen, mutta kun etsin ebaysta halvimmat mahdolliset ledit ja tilasin ne niin laatu ei ihan sitä ole mitä pitäisi. Tinasin siis kiltisti johdon joka täplään.  Ledit sinällään muuten toimivat yhtä lukuunottamatta.

Kuvassa näkyy suunnilleen ulkoinen rakenne, ihan prismasta haettu taulukehys ja motonetistä ikkunan tummennuskalvoa ja ledipaneelit kuumaliimalla kiinni lasiin tai no tarkemmin sanottuna ne on liimattu tummennuskalvoon, koska kalvo on asennettu kummallekin puolelle lasia pienen sekaannuksen vuoksi. Tarkoitus oli ostaa tumminta mahdollista kalvoa ja vaitoehdot kulkivat 50%-5% välillä. Nappasin hyllystä rullan johon oli merkitty 50% ajatuksella, että 50% merkintä tarkoittaa 50% prosenttista valon blokkausta ja vastaavasti 5% tarkoittaa, että 5% blokataan. No sinällään se 50/50 oli ihan oikein, mutta kyseessä ei olekaan tummin kalvo vaan vaalein! Prosentti luku ei  kerrokaan valon blokkaus määrää vaan läpäisymäärän. No oppia ikä kaikki.

Ohjaimena on arduino micro ja RTC on joku random DX.comista tilattu DS1307 chippiin perustuva halpis moduli.  Proto versiossa neopixel clockvirtalähteenä on vanha samsungin laturi, joka muuten toimii, mutta siitä hajosi liitin. Virtalähde on totaalisen alimitoitettu, mutta toimii kyllä kunhan vain ei innostu liikaa. Kaikkiaan näyttö voi imaista pahimillaan lähes 4 amppeeria virtaa! (60mA*60kpl=3,6A*5V=18W) Kuvassa näkyy kytkentä osittain, ledejä on 60kpl ja RTC modulia en jaksanut alkaa eaglella piirtelemään, joten käytin pelkkää chippiä. Tarpeelliset kuvasta kyllä näkee.  Ledi ketjussa on lisäksi muutama 100uF kondensaattori tasaamassa virtapiikkejä. Ledit on kytketty niinkin järkevästi, että data lähtee vasemmalta alhaalta ja siirtyy siitä pykälän oikealle ja putoaa alas johdolla ja lähtee taas nousemaan ledejä pitkin. Yllä olevasta videosta näkee asian aika selvästi.

Ihan putkeen ei mennyt koekytkentälevyllä homma. RTC siis on I2C IMG_20150408_142031kytkentäinen, mutta hups! yritin ensiksi käyttää sitä niin, että kello tuli SPI-linjasta, jännä juttu ettei toiminut! Kuvassa siis virheellinen kytkentä, oikeat pinnit ovat 2 ja 3.

Koodi löytyy gihubista.  Se on hyvinkin kokeilu asteella vielä, käytännössä siinä on vain pari esimerkki koodia yhdistetty ja lisätty pari funktiota. Datan syötön ledeille hoitaa Adafruitin kirjasto, WS2812B vaatii sen verran tarkkaa ajoitusta, että arduinon omalla koodilla ei siihen pääse, niinpä kirjastossa on käytetty assemblyä. RTC-koodi on käytännössä suoraan esimerkin koodi.

Videolla on pieni testi kellosta.

 

Ihan täydellinen koodi ei ole, kuten kuvasta näkyy (kello on siis tuossa 19.07).IMG_20150408_190806 Toi bugi on jo korjattu koodista, mutta muita siellä vielä on. Heti ensimmäisenä yönä huomasin myöskin, että vaikka kello ei läheskään täydellä  kirkkaudella toimikaan, on se yöllä totaalisen liian kirkas, varsinkin kun se vaihtaa väriään (ja samalla kirkkauttaan) minuutin välein.  Yksittäinen ledi siis voi saada jokaiselle kolmelle värille arvon välillä 0-255. VIrtalähteen rajoituksista johtuen nykyisessä koodissa jokainen väri voi saada arvon välillä 0-30, mutta missään koodissa ei varmisteta, että kirkkaus pysyy samana. Teoriassa siis väreille voi tulla arvo 0-0-0, jolloin ledit ovat kokonaan sammuksissa!

Tarkoitus olisi viellä väkertää tuolle piirilevy ja ehkä jopa rakentaa toinen niillä korjauksilla mitä tuota ensimmäistä tehdessä on tullut tarpeelliseksi huomattua. Yksi lisäys mikä tohon ehdottomasti tarvitaan on anturi joka mittaa ympäristön valaistuksen ja säätää sen mukaan ledien kirkkauden. Toki senkin voisi tehdä ihan kellolla, mutta onhan se paljon coolimpaa, että oikeasti mitataan se valoisuus.

WS2812B ledejä

Kokeilin ensimmäistä kertaa eläissäni ebaysta ostamista. Tilasin 100kpl WS2812B ledejä, ihan kohtalaisen hyvään hintaan. Ainoa huono puoli on, että toimitusaika on luokkaa kuukausi. Noh ompahan aikaa suunnitella mitä noista tekee.

WS2812B on siis RGB-ledi, jossa on sisään rakennettuna ohjainchippi. Ledistä on usemapia versioita ja tämä minun tilaama versio on asennettuna pienelle jäähdytyslevynä toimivalle alumiinilevyn kappaleelle. Ledi itsessään on neljä pinninen (data-in, data-out, +5v ja gnd). Alumiinisessa taustalevyssä on kuitenkin kuusi pinniä, koska käyttöjännitteellekin on omat IN ja OUT-pinnit.

Jokainen ledi vaatii 24-bittisen komennon (yksi 8-bittinen pätkä R,G ja B värille) ja ohjauskoodi on data transfer timedatasheetin mukaan todella nopeaa! Jopa niin nopeaa, että (teoriassa) 16MHz arduino ja arduinon oma koodi on liian hidasta ohjaamaan noita. Onneksi kuitenkin ilmeisesti sequence charthiukan hitaampikin nopeus riittää ja löytyy valmiita kirjastoja, jotka käyttävät nopeampaa koodia.  Ledeissa on myös piiri, joka muodostaa signaalin uudestaan, jolloin virheet eivät keräänny signaaliin pitkässäkään lediketjussa. composition of 24bit data Katsellaan ohjausta tarkemmin sitten koodissa ja kun pääsen testaamaan itse ledejä.

 

Mielessä olisi siis rakentaa noista ledeistä kello seinälle, vähän niin kuin taulu tai ehkä infinity-mirror tyyppinen ratkaisu, en ole viellä päättänyt. Periaatteessa kuitenkin ohjaukseen arduino (tai mahdollisesti jotain nopeampaa) ja RTC-kello, ehkä myöskin ESP8266, jolloin kelloa voi ohajata netin kautta ja sen saa pysymään NTP:n avulla oikeassa ajassa.

 

 

 

 

 

RFID ohjattu kissan ruokinta-automaatti

Tässä kämpässä pyörii ahmatti kissa ja napostelija kissa. Kuivaruokaa ei siis voi pitää koko aikaa esillä koska toinen kissa söisi sitä liikaa. Eikä innosta jatkaa vahtimista, että toisella on ruokaa, mutta toinen ei pääse sitä syömään, eikä toisaalta aina ole paikallakaan vahtimassa. asialle täytynee siis jotain tehdä.

Toisella kissalla on valmiina ihon alla tunniste siru, voisikohan sitä käyttää? Olisikohan ideaa rakennella jonkinlainen automaatti, joka tunnistaa kissan sirusta tai ehkä väristä tms. ja antaisi syödä vain tietyn määrän tai tietystä astiasta. Tämä on vasta ihan Idea asteella oleva juttu, mutta katsellaan mitä tästä tulee.

Näköjään markkinoilta löytyy valmiitakin mm. MeowSpace ja Smarthome, mutta hintaa näkyy olevan sen verran, että ei tule kauppoja! ( mutta jotain mallia noista patentoiduista systeemeistä voisi kyllä ottaa!)

(6.2. 2017 Edit: vaihdettu toimimaton linkki toimivaan)

Omia ja muiden virheitä, mutta toimiva sarastevalo silti.

Joulu meni ja samoin uusivuosi. Edessä siis uudet kujeet, mutta jatketaan hetki viellä vanhoilla kuitenkin. Itead studiosilta tilatut piirilevyt saapuivat ”joululoman” aikana.  Itead on erittäin edullinen piirilevyvalmistaja, tekee kuitenkin ihan kohtuullista jälkeä. Välistä kuitenkin on pieniä ongelmia. Kuvassa on lähikuva yhdestä toimitetusta piirilevystä, vihreässä juotteenestopinnoitteessa on ilmeisesti routterin tekemä jälki. Hassua sinällään, että itead toimitti tuon ”rikkinäisenkin” levyn, koska pienin tilausmäärä heiltä on kymmenen levyä ja tuo rikkinäinen on yhdestoista.

Tinailin kytkennän kasaan ja poltin koodin atmega328p mikrocontrolleriin ja kas kummaa laite ei toimi! Ei muuta kuin tutkimaan missä vika on. Yllätys ei liene, että se löytyi penkin ja näppäimistön välistä.

Etukäteen oli jo tiedossa, että shift registerit on kytketty väärään järjestykseen piirilevylle, mutta muita yhtä alkeellisia virheitä löytyi levyltä lisääkin. Ts. A7D kytkimiin asetettu aika tulee väärin luettua. (03:45 tulee luettua 45:03) Onneksi kaikki ”isot” virheet olivat sellaisia, että ne pystyi koodissa korjaamaan.

Ensimmäinen ongelma oli rotary encoderin kanssa, joka ei toiminut. Syyksi paljastui koodi ja fuse-bittien asettelu. Levylle laitettu pari vastusta ja kondensaattori per encoderin pinni estämään kytkinvärähtelyä, en kuitenkaan aikonut luottaa pelkästään tuohon kytkentään, joten koodissakin oli kytkinvärähtelyjä varten rivi. Kokeilin erillaisia viiveitä ja kaikilla viiveillä tilanne oli että, encoderi ei toiminut. Tilanne korjautui, kun jätti koko viive rivin pois koodista. Myöhemmin huomasin, että viiveet olivat kaiken kaikkiaan liian pitkiä ja syy siihen oli fuse-bittien tila. Koska käytin arduinon IDEä tähän projektiin luulin, että se asettaa fuse-bitit automaattisesti. Näköjään niitä ei aseteta automaattisesti ja mikrocontrolleri toimikin tehdasasetuksilla eli 1MHz taajuudella eikä 16MHz taajuudella niin kuin minä ja koodi olettivat. Kaikki delay-käskyt kestivät siis 16 kertaa pidempään kuin oli tarkoitus.

Seuraava ongelma oli, että sarastuksen asetus ei toiminut. Ongelman ratkaisemiseksi jouduin tekemään koodin, jolla asetettu aika välkyteltiin ledillä, koska systeemissä ei ole muuta näyttöä.  Levylle on kyllä suunniteltu I2C liitäntä näyttöä varten, mutta posti ei ole viellä tuonut tilaamaani I2C-kytkentäistä näyttöä Suomeen asti. Näillä näkymin kuitenkin jätän näytön kokonaan pois.

Ongelmaksi selvisi virhe piirilevyssä. IMG_20150109_233454  Kuvassa näkyy kytkimen kyljessä  numerot 1,2,4 ja 8, jotka kertovat bittien järjestyksen kytkintä luettaessa. Piirilevyllä vedot menevät päinvastaisessa järjestyksessä. Kytkimeen asetettu ykkönen (0b0001) siis tuli luettua numerona kahdeksan (0b1000). Yksi funktio koodiin lisää ja ongelma oli ratkaistu.

Kuvassa näkyy myös seuraava ongelma. Kissa pääsi leikkimään kytkimellä ja testasin vain mekaanisen toiminnan kytkimestä ennen kuin tinasin sen paikoilleen. Olisi kannattanut testata myös sähköinen toiminta. Kissan hammas oli sen verran painassut kytkimen sisuskaluja, että kytkin ei toiminut kunnolla ja jouduin tinaamaan sen irti. Onneksi olin tilannut yhden ylimääräisen, vaikka suhteellisen kalliita mokomat ovat!wpid-wp-1420882629588.jpeg

Kuva ei ole mitenkään selvä, mutta tarkkaan katsomalla siitä näkee, että alhaalta laskien toinen ”liuku” on taipunut. Ehkä sen olisi saanut toimimaan, mutta kun oli toimiva kappalekin niin laitoin sen.

 

Koodissa on vielä tekemistä ja RTC-moduli IMG_20150112_012817(kuvassa keltainen) on kotelointia ajatellen aika hankalasti 90 asteen kulmassa alaspäin. Moduli on tinattu noin, koska etupuolelle tinattuna se olisi ollut ICSP liittimen tiellä. Tässä versiossa taidan vain vaihtaa/suoristaa pinnit ja asentaa modulin varsinaisen piirilevyn alle, mutta kaikkien virheiden takia taidan tehdä levystä version kaksi, jossa lisään RTC-modulin piirit suoraan pääpiirilevylle. Tällä hetkellä käytössä ds1307 piiriin prustuva RTC-moduli. Levyltä pitää lisäksi siirtää muutamia komponentteja hiukan, koska nyt ne ovat liian ahtaasti.

Laite siis kuitenkin toimii tällä hetkellä ja jo useampana aamuna olen herännyt helposti. RTC- moduli ei tosin tunnu olevan kovin tarkka, melkein minuutin per päivä heittää kello. Tarkemmin ajatellen itseasiassa kide taitaa olla suurin syyllinen kellon heittoon.

Pieniä harmaita aivosoluja sai kyllä koodatessa käyttää, kuten esimerkiksi miten asettaa RTC-kellon aika, kun laitteessa ei ole yhtään ainutta nappia? Vain A7D-kytkimet ja encoderi. Ratkaisu oli sitten kuitenkin aika yksinkertainen. Mikä tahansa ei kellon ajaksi sopiva asetus A7D kytkimissä, asettaa laitteen tilaan, jossa  kellonajan voi asettaa. A7D-kytkimiin laitetaan kellonaika ja encoderia pyöräyttämällä se siirretään RTC-chippiin. Muitakin asetuksia voinee laittaa vastaavalla menetelmällä, mutta katsotaan.

Lisäksi nälkä kasvaa syödessä! Alunperin oli tarkoitus tehdä valosta ihan oma yksikseen toimiva, mutta nyt mielessä on netin yli ohjauksen lisääminen masiinaan.  Samalla voisi käyttää NTP:tä hyväksi ja pitää sillä kellonaika oikeana.

Voin lähettää koodin ja eagle tiedostot sähköpostilla, jos joku niitä kaipaa. Tänne en niitä (viellä) laita, koska molemmissa on viellä tekemistä aika paljon.  edit: whatta heck!! laitetaan kuitenkin tarjolle vaan. Tuleepahan samalla opeteltua tuota GITHubin käyttöä. Lisäksi noita piirilevyjä on enemmän kuin minä tarvitsen, että niistäkin voidaan päästä sopuratkaisuun. Sarastevalo siis sinällään toimii, mutta en voi sanoa olevani viellä täysin tyytyväinen siihen.

Ensimmäinen aamu sarastevalon kanssa

Huomenta!

Ensimmäinen aamu takana, kun sarastevalon testikytkentä on wpid-img_20141223_101819.jpgtoiminnassa. Herätys oli kieltämättä normaalia helpompi sarastevalon kanssa, mutta yhden aamun kokemuksella ei ihan hirveästi voi viellä sanoa tarkasti vaikutusta.

Aikaisemmasta kokemuksesta kuitenkin voin sanoa, että idea on toimiva! Jos sinulla ei ole muuten kokemusta niin mieti miten helppoa on kesäaamuna herätä auringon valoon.

 

Seinässä katon rajassa on kummallakin puolella huonetta 2.5m ”valkoista” ledi nauhaa. Testi kytkennässä on käytössä vain toisen puolen nauha. Nauhan valinnassa tärkeimmät asiat olivat kirkkaus ja wpid-img_20141220_155657.jpghinta. Kompromissi näiden suhteen on suhteellisen hyvin onnistunut, mutta seuraava nauha on lämmintä valkoista, eikä ”pelkkää” valkoista niin kuin tämä nauha. Nykyinen nauha on ihan liian kylmän väristä, niin kuin edellisessä kirjoituksessa mainitsin. (Kuva viellä valehtelee lisää, valo ei sinistä kuitenkaan ole. Kuvassa on eri testikytkentä, mutta nauha on sama.)

Seuraava vaihe on tehdä koodi loppuun ja väkerrellä piirilevy eaglella ja tilata se. Jonkinlainen kotelokin pitäis sitä ennen päättää. Onneksi joulun aikaan on aikaa tälläisellekin.

Minulla on ollut aikaisemmin ollut  denver merkkinen sarastevalo, mutta en ollut tyytyväinen siihen. En löytänyt netistä täsmälleen samaa, mutta löysin erimerkkisen, mutta ulkoisesti täysin samanlaisen valon.

En voi todellakaan suositella denver/audiosonic sarastevaloa, se on vaikea käyttöinen, näytön sininen taustavalo on aivan liian kirkas, sisuskalut näyttävät halpaakin halvemmalta, vaarallisilta suorastaan ja lisäksi yksi 40w lamppu ei ihan hirveästi ainakaan minuun vaikuta. Aukaisin denverin valon, koska halusin himmentää näyttöä vaihtamalla isompi vastus näytön ledille, mutta heitin valon menemään SER-jätteeseen,  kun näin valon sisuskalut, mielenkiinnosta kokeilin kuitenkin vastuksen vaihtamista ensin ja onnistuihan se.

Vaikeakäyttöinen herätyskello

Miltä kuulostaisi herätyskello, jonka herätysaika asetetaan  binäärikoodilla ja jonka kellonaika tarkistetaan kytkemällä kello USB-piuhalla kiinni tietokoneeseen?IMG_20141221_224506 Ei kovin käyttäjäystävälliseltä? Sellaisen kuitenkin rakensin 😉 Herätyskin toimii yhdellä ainoalla punaisella ledillä.

Fiksuimmat ovat ehkä jo pelkän kuvan perusteella tajunneet, että kyseessä on vielä vaiheessa oleva projekti. Valmistumassa on siis sarastevalo. Tämän hetken ohjaimena toimii arduino micro ja kellona TINY-RTC.  Herätysaika  tai siis sarasteaika asetetaan taustalla näkyvällä reikälevyllä olevilla DIP-kytkimillä. Valmiissa sarastevalossa on toki paljon helpompi tapa asettaa herätys.

TINY-RTC moduulissa on rtc-kello(DS1307), eeprom-muistia(AT24C32) ja paikka lämpötila anturille (DS18B20). Muistia en luultavasti käytä, kun lopullinen tarkoitus on tehdä koko paketti omalle piirilevylle. Lämpötila-anturikin taitaa jäädä käyttämättä, vaikka sekin olisi aika helppo tapaus.

Minulla on muistakin RTC-moduleita, jotka on tilattu halvalla DX.com:ista. Tosin niitten osalta näyttää tilanne siltä, että ne eivät toimi luotettavasti.

A7D-kytkimillä saa asetettua aika monta tilaa, jotka eivät ole sallittuja kellonaikoja. Pitää kehittää jotain järkevää tai järetöntä niille asetuksille. Periaatteessa käänteinenkin sarastevalo olisi kiva, ts. illalla valot sammuisivat hiljalleen.

Tarkoituksena olisi ohjata ledinauhaa katonrajassa, nauha on jo seinällä, mutta se on niin kylmää valoa, että se menee vaihtoon tai mahdollisesti rinnalle tulee toinen lämpimämpää valoa antava nauha. Mahdollisesti myös piilotan nauhan jonkinlaisen listan avulla, mutta katsotaan sitä jossain vaiheessa.

 

Edit: Kuulema oikea termi mahtaa olla sarastusvalo, mutta milloinkapa minä olisiin puhunut täysin oikeilla termeillä?

 

 

 

 

Omron A7D-206-1 pushwheel & 74hc165

Pientä testausta uusimpaan projektiin.

 

Testailin projektia varten omronin pushwheel-kytkintä. Mukava pieniOmron A7D BCD-koodia sylkevä laatikko.  ”Julkisivussa” siis numeronäyttö ja kaksi nappia, joilla voi valita numeron ja sama numero tulee binäärikoodina ulos pinneistä.  Common pinniin laitetaan joko maa tai muu sopiva jännite, muihin pinneihin laitetaan sopiva ylös/alavetovastus. (Itse käytän yleensä 10 kOhm.) Tämän jälkeen pinneistä on luettavissa binääri muodossa mikä numero on asetetuna kytkimeen.

 

A7D:t koekytkentälevyllä
A7D:t koekytkentälevyllä. En tehnt koko kytkentää vaan neljännen kytkimen sijaan ko. 74165 pinnit on kytketty nollaan.

Omaan projektiin on tulossa neljä noita kytkimiä.  Periaatteessa valitussa mikrokontrollerissa on riittävästi pinnejä lukea suoraan kaikki tarvittavat 16 pinniä kytkimistä, mutta parempi valinta monessa mielessä on kuitenkin käyttää PISO- siirtorekisteriä (rinnakkain sisään, sarjassa ulos.)

Tällä kertaa valinta osui 74HC165 piiriin. Se on 8-bittinen ja helposti ketjutettavissa oleva siirtorekisteri.  Piirtelin eaglella kytkennän ja rakentelin koekytkennän koekytkentälevylle74165 Kytkentä. Clk, (clock)inh(ibit), serdata ja *pl/ss (paraller load/serial shift) mevevät kaaviossa arduinolle, mutta itse kytkennässä INH-linja on suoraan maahan kytkettynä.

 

Koodi lukee A7D lukemia (vrt aikaisempaa kuva)

En alkanut itse kirjoittamaan koodia arduinolle testiä varten, vaan lainasin Jordanin blogista koodia, pienin lähinnä kosmeettisin muutoksin.

 

Tämä siis toimivaksi todettu. Projekti jatkuu näillä. Projektin vaiheita ja lopputulos tulee tänne siinä vaiheessa, kun on jotain julkaistavaa.

Loppuun viellä videon pätkää kytkimen toiminnasta. Kytkentä on tehty vain esittelemään kytkimen toimintaa ja siinä on virranrajoitusvastus, koekytkentälevy, neljä lediä, kytkin ja virtalähde.

 

Omron A7D data sheet

74hc165 data sheet