Posts Tagged ‘AVR’

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…)

Va, penktadienio proga parodysiu, kur sueina visi mano vakarai ir kodėl nebepakyla rankos dar kažką parašyt.

(daugiau…)

Na, kokiame rimtame projekte nebūna atminties nutekėjimų (memory leak)? Čia visų programuotojų galvos skausmas, nebent jie programuoja tai, ko niekam nereikia 😀

(daugiau…)

Jei pamenate, kadaise rašiau apie tokį dalyką, kaip mygtukų ir laidų taupymas su Arduino mikrovaldikliu. Ten pateikiau paprastą pavyzduką: kas kažkiek laiko su analogRead(…) funkcija nuskaitoma analoginio įvado reikšmė ir pažiūrima, ar ji atitinka kokio nors mygtuko reikšmę. Analoginės mygtukų klaviatūros, beje, naudojamos net ir rimtoje buitinėje technikoje, pavyzdžiui, televizoriuose. Juk paprasčiau klaviatūros valdymą perdavinėt dviem laidais, nei kokiais penkiais, ar ne?

(daugiau…)

Na, aš vis po truputį projektuoju ir eksperimentuoju su šiokiu tokiu šilumos ūkio valdymu. Galvojau, kad gal prasisuksiu su termorezistoriais, bet supratau, kad nekokia tai mintis. Jiems reikia analoginio konverterio, reikšmės nėra labai tikslios (arba reikia brangesnių ir geresnio gamintojo termorezistorių), be to, įtakos turi ir laidų ilgis su savo varža. Nors varinių laidų ji ganėtinai neženkli. Tad pasikalbėjęs su protingais draugais ir kolegomis nusprendžiau išbandyti skaitmeninius DS18B20 daviklius.

(daugiau…)