Posts Tagged ‘AVR’

Kai rašai kodą visokiems smulkiems įrenginiams, yra kelios taisyklės apie tai, kas vyksta greitai, o kas — lėtai. Esu skaitęs porą knygų, rašytų 80-aisiais, kur patyrę kompiuterastai svaigdavo apie visokius asemblerius, atminties taupymą, efektyvų registrų išnaudojimą neliečiant atminties ir taip toliau. Šiomis dienomis smulkūs įrenginiai, IoT ir apskritai įterptinis programavimas yra labai plati ir mažai matoma pasaulio pusė, kurioje galioja senosios taisyklės.

(daugiau…)

Dallas DS18B20 ir kitų panašių termometrų nuskaitymas su mikrovaldikliu yra tikrai gan trivialus darbelis, o Arduino frameworkui pritaikytos OneWire ir DallasTemperature bibliotekos naudojamos visur kiaurai, kai kur perrašomos, kad tiktų (pvz. NodeMCU eLua firmwarėje) ir jų kokybės bei panaudojimo niekas nekvescionuoja. Na, išskyrus gal vieną kitą bambeklį gyką, tokį, kaip aš.

(daugiau…)

Su sąlyga, kad šiemet vyno pasidariau, tai teko galvot ir kur jį kavot. Nes šaldytuvas mažas, o sandėliukas – šiltas. Užtai viename balkone yra nenaudojama spintelė, kur šiuo metų laiku temperatūra visai palanki. Bet problema tame, kad ji jau buvo pradėjus kristi žemiau nulio, o ir žiema ne už kalnų. Sušaldyti vyno butelius būtų gaila. Aišku, ten laipsnių biškį yra, ne iš karto užšaltų prie minuso, bet tas minusas gali pavaryt ir iki minus daug. Todėl susirūpinau, kaip čia tą vyną nuo užšalimo apsaugot.

(daugiau…)

Pagal datas apsižiūrėjau, kad paskutiniai darbeliai su neoninių indikatorių laikrodžiu buvo kažkur prieš metus laiko. O buvau planavęs jį per porą mėnesių pasidaryti. Šiaip didžiausias „feilas“ buvo pasiektas, kai pasidariau prastą plokštę, bet į ją sulitavau savadarbius ИН-14 indikatorių lizdus. Po to bandžiau tęsti darbą su ta plokšte ir supratau, kad nepajėgsiu — per daug vargo. Tuomet pasidariau naują indikatorių plokštės versiją, kur kas tobulesnę, su takeliais vietoj miriado laidų. Bet nepavyko lizdų išlitavimas — izoliatoriai patys išsilydė, liko tik vienas apysveikis. Tada ir atėjo kūrybinė depresija, nes niekaip nesugalvojau, kaip ten geriau viską padaryt. Galvojau, gal lizdus iš viso mest iš projekto, indikatorius tiesiai sulituot. Jie juk ir skirti litavimui. Bet nesinori, nors užmušk. Noriu, kad jie būtų lengvai išimami ir keičiami — ir viskas.

(daugiau…)

Ką gi, pagaliau prisiruošiau beveik visai baigtą savo litavimo stotelę išbandyti gyvai. Ko trūko? Trūko skylių rozetėms dėžutės dangtelyje, kurias paprasčiausiai išpjoviau peiliu ir trūko termoporos prie lituoklio galo. Lituoklis mano paprastas, 220 V, niekaip nereguliuojamas. Reguliuodavau jį su atlikusiu lempos reguliatoriumi. Kaip minėjau kažkur, trūkumas toks, kad lituoklis gaudamas mažiau galios ilgiau šyla iki darbinės temperatūros, o atvėsęs antgalis lėčiau atsistato.

(daugiau…)

ISP kabeliukas

Posted: 2013-11-30 in Darbeliai
Žymos:, ,

Čia toks trumpas įrašėlis bus. Pastaruoju metu truputį trūksta laiko, tai prioritetai skiriami materialinei ir šeimos gerovei, o visokie tinklaraščiai ir kitos mažos nesąmonės kiek kenčia. Nieko, pakentės ir praeis 🙂

Žodžiu, pasidariau aš čia kažkada Arduino skydelį kitų AVR procesorių programavimui. Ir prijungiau pirmiems bandymams kitą plokštę su senu IDE kabeliu. Na, kitokio po ranka neturėjau. Paskui panaršiau ybėjuje ir likau nustebęs, kad toks paprastas šešiagyslis kabeliukas kainuoja nemažus pinigus. Pigiau, tiesą sakant, nusipirkti visą AVR programatorių, kokį nors ten Tiny ISP kloną. Na, bet juk taip nesąžininga. Pasidariau skydelį, o jam kabelio gaut neįmanoma.

(daugiau…)

Taigi tęsiu savo litavimo stotelės projektą. Aišku, tai nėra tikra litavimo stotelė, o tik semistorių pagal temperatūrą junginėjantis aparačiukas. Užtat tinka bet kokiems 220 V aparatams. Tiek lituokliui, tiek laminatoriui — svarbu tik K tipo termoporą prie jų kažkaip prišriubuoti.

Pirmojoje darbo dalyje, be abejo, prikrepinau (nuo žodžio crap, jei ką, toks IT srities terminas) kažką, kas matuoja temperatūrą. Tiesa, gavau eilinį kartą progą paspardyti sau į subinę už neatidumą ir kreivą plokštės dezainą. Na, antrą kartą užsiraunu, nors ir buvau ir prisiskaitęs ir jau užsirovęs, kad į mikrovaldiklių plokštes būtina įmontuoti maitinimo šaltinių filtrus. Na, grubiai tariant, įdėti bent jau vieną 100 µF ar kažkokį nekritiškai panašų kondensatorių. Čia irgi buvo tas pats. Valdiklis veikia, ekranėlį valdo. Paskui pasiknisęs prijungiau ir termoporos matuoklį MAX6675 bei pačią termoporą, tai pradėjo rodyti visokias pievas. Temperatūra šokinėja kaip išprotėjus. Prikabinau kondensatorių — viskas gražu ir gerai. Na, bet apie viską iš eilės ir po truputį.

(daugiau…)

Kas per…

Posted: 2013-11-10 in Pezalai
Žymos:, ,

Šiandien apie vaikus įrašo nebus, nes nėra įkvėpimo ir sugalvota tema dar nebaigė vystytis. Bus kitą savaitgalį. O šiandien susidūriau su durna problema, kurios niekaip neišsprendžiu. Taigi, draugai AVR žinovai, pabandykite man pagelbėti…

Reikia nuskaityti reikšmę iš PORTB ketvirto bituko. Na, arba 12-o Arduino elektrodo.

if (PORTB & _BV(4)) {
	...
}

neveikia. O

if (digitalRead(12)) {
	...
}

veikia.

Inicializuojama tik vienu būdu:

DDRB &= ~_BV(4)

Kadangi digitalRead veikia, tai turiu nuojautą, kad portas inicializuojamas teisingai. O šiaip nuskaitinėjant visą laiką, beje, yra vienetukas. Ir bbž, kodėl. Aišku, digitalRead dar atlieka krūvelę lietaus šokių prieš patį nuskaitymą, bet… nu juk turi ir taip veikt. Nesuprantu. Projektas šiaip yra AVR, ne Arduino, tai visokie ano pribumbasai yra kiek apriboti…

Panorau turėti lituoklį su koreguojama temperatūra. Paskutinis mano variantas — lituoklio dusinimas su tiristoriumi — veikia visai pusėtinai. Temperatūrą per kelis bandymus nusistačiau visai  gerą, kanifolija nebedega, o gražiai tirpsta ir lengvai rūksta. Nežinau, kodėl šiuolaikinius tiek pigius, tiek brangius 220 V nereguliuojamus lituoklius daro tokius karštus — virš 400 ℃. Tokį turi ištisai į kempinėlę trinti ir vėsinti tokiu būdu ir tik tada lituoti. Arba naudoti rūgštinį aktyvų fliusą, kuris irgi vėsina lituoklį, bet… tai yra mirtis elektronikai. Net ir labai gerai nuplovus rūgšties patenka į visokias mikroertmes ir koroduoja komponentus.

Ką gi, su tiristoriumi neblogai. Išskyrus vieną trūkumą — lituoklis nuolat gauna mažiau energijos. Tad lituojant jis greičiau atvėsta ir lėčiau atstato temperatūrą. Nežinau, kaip veikia visokios gudrios litavimo stotelės, galbūt jos turi ir kokius nors gudrius algoritmus temperatūros palaikymui, bet paprasčiausias principas yra lygintuvo: užkaito lituoklis iki tinkamos temperatūros — maitinimą išjungiam. Nukrito temperatūra laipsniu-dviem — vėl duodam ir „pilnu gazu“. Ir taip pulsuojam po truputuką, kas keliolika sekundžių.

Taigi apie pirmą bandymą. Dariau jį prieš gerą mėnesį, bet vis neturėjau laiko aprašyti. O ir šiaip, sunku girtis nesėkmėmis…

(daugiau…)

Taigi va, aš šiek tiek prakutau su AVR mikrovaldiklių programavimu. Įsigijęs Arduino pradėjau tyrinėti jo kodą, paskui pradėjau eksperimentuoti… na, ir patys žinote, kaip nutinka, kai į kažką giliniesi. Kuo toliau į mišką, tuo… čia irgi tas pats. Tiesa, kas tas Arduino yr, aš suvokiau labai greitai ir lygiai taip pat suvokiau, kad visomis jo bibliotekomis pasitikėti tikrai negalima.

(daugiau…)