2012 m. birželio 4 d., pirmadienis

Nuo PIC prie Atmel...

Kaip žinia, tarp elektronikos mėgėjų ir profesionalų plačiai paplitę PIC ir Atmel mikrovaldikliai. Universitete mokėmės būtent PIC mikrovaldiklių programavimo, tačiau, prieš gerą mėnesį, pradėjus naudotis Ebay paslaugomis, supratau, jog PIC mikrovaldikliai daug brangesni už Atmel mikrovaldiklius, pavyzdžiui, populiariąją atmega8 galima nupirkti už varganus 4 litus, kai tuo tarpu už PIC mikrovaldiklių su tokia specifikacija nei už 10 litų niekas neparduoda, o už kainą, atitinkančią tos pačios atmega8 kainą išeina vos koksai 16f628a PIC'iukas su skurdžia periferija, atminties kiekiu ir t.t. Taigi nusprendžiau namuose savo projektam naudoti geriau Atmega8 valdiklius.
Vieną tokią užsisakiau ir po 3 savaitėliu radau jau pašto dėžutėje. Dar po geros savaitės, kai atsirado laisvesnė nuo mokslų diena, sėdau domėtis jos programavimu. Iš pradžių gąsdino atmel valdiklių "užrakinimo" pavojus, bet, pasidomėjus, kaip su šita problema lengvai susitvarkoma, ši baimė sumažėjo.
Įsirašiau MikroC PRO for AVR, susikompiliavau paprastutę programėlę, pasijungiau savo PICkit2 programatorių, pasileidau virtual serial port emuliatorių, PK2AVRISP programėlę, AVR Studio kompiliatorių ir pabandžiau nuskaityti Atmegą.



Deja, bet nepavyko. Bandžiau ir bandžiau dar daug kartų, tikrinau pajungimą, laidus, bet niekas negelbėjo. Tuomet liko tik manyti, jog atmega "užrakinta". Iš tikro jinai neužrakinta, o nustatymų bitai nustatyti į tokius, kuomet atmega pasileidžia tik turėdama išorinį dažnio generatorių. Teko pasijungti besimėtantį PIC16f887 vien dėl to, kad nuo jo "paimčiau" išorinį dažnį atmegai (Kaip tai padaryti galimą pamatyti kad ir čia: http://www.scienceprog.com/life-giving-to-atmega8/). Vos tik tai padarius, atmegą pavyko nuskaityti, sudėlioti fuse bitus į reikiamas vietas ir užprogramuoti pirmąją atmega8 savo programa:



Dabar nebereikės bijoti atmegų, ir galėsiu projektuose naudoti pigesnius ir galingesnius valdiklius.

2012 m. balandžio 29 d., sekmadienis

Mini UV dežė



Vis labiau į projektus braunasi SMD elementai, todėl reikia tikslių ir sudėtingų PCB, o joms pagaminti yra naudojama technologija, panaudojant PCB su fotorezistu. Tokias plokštes reikia švitinti UV spinduliais, todėl ir nusprendžiau pasigaminti UV dėžę.

Korpusas:
Korpusas iš senos spintelės lentynos, bei 3mm faneros, o skydelis iš šaldytuvo plastmasinės korpuso dalies.

Laikmatis:
Laikmačio schema mano, programa taip pat. Elementai buvo pasirinkti atsižvelgiant į namuose turimas medžiagas. LCD naudotas, nes turiu parsisiuntęs iš Kinijos, jo kaina gavosi mažesnė negu naudojant 7 segmentų indikatorius, nes Šiauliuose nėra pirkti pigių 7 segmentų indikatorių (vieno kaina apie 3lt, taigi 4 kaina jau 12Lt, o LCD man kainavo 10Lt). Taimerio valdiklis - PIC16f628A, taip pat dėl to, kad turėjau porą tokių pirktų iš Kinijos po 3,5Lt.


Lempos:
Lempos iš Lemonos: http://lemona.lt/index.php?page=item&i_id=55092. Komutavimui panaudota ne relė, o paprasta schemutė su BT136 simistoriumi. Droseliai panaudoti iš taupiųjų 11w lempučių po 3,5Lt.



Keletas foto iš gamybos:

Dar prieš gaminant laikmatį, išbandžiau. Nuotraukoje matosi atraižėlės, švitintos atitinkamai 3, 4 ir 5 minutes. Taigi geriausias variantas švitinant 4 minutes.



 Simistorinis draiver'is:



Laikmatis:



Vidus:



Skydelis neturėtų nukristi :D


 Panaudotas 4mm organinis stiklas, įtvirtintas karštais klijais:



 UV dėžės švitinamas plotas ~23x14cm:


Funkcijos:
  • Laiko nustatymas 0-59 minučių, 10 sekundžių tikslumu;
  • Valdymas trimis (+, -, set) mygtukais;
  • Likusio laiko, būsenos indikacija LCD ekranėlyje;
  • Garsiniai mygtukų paspaudimo, švitinimo pabaigos signalai;
  • Šviesinė (geltonas LED) būsenos indikacija (mirksi - švitinama, šviečia - baigta);
  • Švitinamas plotas: ~23x14cm;
Gaminant aišku neapsieita be netikėtumų, apie kuriuos nepagalvota projektuojant, pvz: nemaniau kad reikės išvestos ICSP jungties, tad teko pakabint ant laidukų, taip pat nepagalvojau, jog per arti laikmačio praeinantys lempų maitinimo laidai kels jo veikimo problemas, tad teko laidus pervesti kitu keliu iki lempų. Bet iš klaidų mokomasi, tad jos kaip ir į naudą :)
Beje, neturėjau dviejų padėčių jungiklio, tai laikinai įdėjau turėtą trijų.
Gamyba truko gerą mėnesį, po truputį projektuojant, gaminant PCB, korpusą, rašant programą.

Na ir greitai sumestas video:


Ačiū už dėmesį, prašom palikti komentarą ;)

2012 m. balandžio 15 d., sekmadienis

Nixie clock. 3 dalis.

Taigi paskutinis "potepis" laikrodžio (ankstesni gamybos žingsniai: http://elektronikoblogas.blogspot.com/2012/03/nixie-clock-2-dalis.html, http://elektronikoblogas.blogspot.com/2012/02/nixie-clock.html) gamyboje atliktas:



Kaip matote, medinė korpuso dalis nulakuota kaštono spalvos laku.
Nieko ypatingo, tačiau bus dar vienas kažkoks prietaisėlis, parodantis, jog čia gyvena konstruoti mėgstantis žmogus :)
Realiai atrodo tikrai geriau, negu nuotraukose, kurios išryškina visą "broką".

2012 m. balandžio 2 d., pirmadienis

Rusiški 7 segmentų indikatoriai


Net nebūčiau pagalvojęs, kad kada nors būta tokių daiktų, kaip kaitriniai 7 segmentų indikatoriai.
Tai paprasčiausia lemputė su 7 skaičių segmentus imituojančiais kaitriniais siūleliais, kurie kaista ir švyti. Pagal datasheet, vienam segmentui reikia apie 20mA srovės ir 3,15V įtampos, kas visai panašu į šviesos diodo segmentą. Tačiau dinaminės ir ilgaamžiškumo savybės jau tikrai nepanašios į šiuolaikinių LED indikatorių.
Pajungimas prie mikrovaldiklio nesiskiria nuo LED indikatoriaus pajungimo, tad išbandžiau ant savo breadboard'o:


Ateityje, kai neturėsiu ką veikti, panaudosiu kokiam "vintage" laikrodžiui ar termometrui.
Beje, universitete taip pat radau ir 7 segmentų indikatorių, kuris sudarytas iš nemenko aliuminio korpuso su segmentus imituojančiomis ertmėmis, kuriose dedamos kaitrinės lemputės ir taip gaunama vėlgi tokių skaičių indikacija.
Dabar tokie įtaisai gana keistai atrodo :)

2012 m. kovo 31 d., šeštadienis

Universalus PIC mikrovaldiklių programatorius



Vienu metu prireikė rimtesnio PIC programatoriaus, nes kilo įtarimas, jog dėl kažkokių priežasčių JDM programatorius nesugeba įrašyti PIC16F676 mikrovaldiklio laiko konstantos (OSCCAL). Taigi gavau patarimą iš elektronika.lt forumo gamintis rimtesnį programatorių: http://radiomaster.com.ua/index.php?newsid=602
Gaminant kilo sunkumų su KP1533LA3 mikroschemos radimu. Tokios neradau, tačiau radau  K155LA3. Buvo abejonių, ar ši tiks, tačiau, kaip paaiškėjo vėliau, abejoti nebuvo verta.
Prieš gaminant pats pridėjau DIP14 mikroschemos lizdą PIC16F676 valdikliui, kad nereikėtų jo jungt laidukais.
Gali kilti klausimas, kokius naudot užsienietiškus tranzistorius vietoj schemoje pateiktų rusiškų: aš naudojau BC547 (npn) ir BC557 (pnp) tranzistorius.
Kaip išorinį maitinimo šaltinį panaudojau iš Pabalių turgaus pirktą už 5 Lt DC 18V 500mA vadinamąjį "blokelį".


Pliusai:
* Ilgas programuojamų valdiklių sąrašas;
* Patikimas;
* Nesudėtingas.

Minusai:
* Su užsienietišku LA3 analogu (kiek girdėjau) kyla veikimo problemų (visai neveikia programatorius), o pačią LA3 ne iš donorų rasti sunkoka.
* Reikalingas išorinis maitinimo šaltinis.
* Šiuolaikiniai kompiuteriai neturi COM jungties.

Jeigu kam reikės, galėsiu pasidalinti PCB brėžiniu.