Sisukord:

Seinakellaga mängimine: 14 sammu
Seinakellaga mängimine: 14 sammu

Video: Seinakellaga mängimine: 14 sammu

Video: Seinakellaga mängimine: 14 sammu
Video: Punastav Kaja Kallas valetab nii, et isegi saatejuht pidi märkuseid tegema 2024, November
Anonim
Image
Image
Tööpõhimõte
Tööpõhimõte

Elektrooniline käsitsi seinakell (kaubanduslik märgistus kvarts) pole tänapäeval midagi erilist. Seda saab osta paljudes poodides. Mõnes neist on need äärmiselt odavad; hinnaga umbes 2 € (50 CZK). See madal hind võib olla motivatsioon neid lähemalt uurida. Siis tundsin, et need võivad olla huvitavad mänguasjad elektroonika algajatele, kellel pole nii palju ressursse ja kes on peamiselt huvitatud programmeerimisest. Aga tahaks oma arengut teistele tutvustada. Kuna odavad seinakellad on eksperimentide ja algajate katsetuste suhtes väga tolerantsed, otsustasin kirjutada selle artikli, kus sooviksin esitada põhiideid.

Samm: tööpõhimõte

Tööpõhimõte
Tööpõhimõte
Tööpõhimõte
Tööpõhimõte

Seda kella on lihtne ära tunda, kasutades liikumiseks mingit samm -mootorit. See, kes juba mõne kella lahti lõi, tunnistas, et see on tavalise samm -mootoriga kahe asemel ainult üks mähis. Sel juhul räägime "ühefaasilisest" või "ühepooluselisest" samm -mootorist. (Seda nime ei kasutata nii sageli, enamasti on see analoogne tuletus teiste täispakk -samm -mootorite puhul kasutatava märgistuse jaoks). See, kes hakkab juba tööpõhimõttele mõtlema, peab küsima, kuidas on võimalik, et mootor pöörleb alati õiges suunas. Tööpõhimõtte jaoks on kasulik kirjeldus järgmisest pildist, mis näitab vanemat tüüpi mootoreid.

Esimesel pildil on näha üks mähis koos klemmidega A ja B, hall staator ja punakassinine rootor. Rootor on valmistatud püsimagnetist, see on põhjus, miks see on värvimärgistatud, nähtav, millises suunas magnetiseerub (pole nii oluline, milline poolus on põhjas ja mis lõunas). Staatoril näete rootori lähedal kahte "soont". Need on tööpõhimõtte jaoks väga olulised. Mootor töötab neljas etapis. Kirjeldame iga sammu nelja pildi abil.

Esimesel etapil (teine pilt) on mootor pingestatud, klemm A on ühendatud positiivse poolusega ja klemm B on ühendatud negatiivse poolusega. See tekitab magnetvoogu, näiteks noole suunas. Rootor peatub asendis, mis vastab magnetvooga.

Teine samm järgneb pärast toite väljalülitamist. Seejärel peatatakse staatori magnetvoog ja magnetil on kalduvus pöörduda asendisse, selle polarisatsioon on staatori magnetilise pehme materjali maksimaalse mahu suunas. Ja siin on need kaks soont üliolulised. Need osutavad maksimaalse helitugevuse väikesele kõrvalekallele. Seejärel pööratakse rootorit veidi päripäeva. Nagu on näidatud pildil 3.

Järgmine samm (neljas pilt) on pingega ühendatud vastupidise polaarsusega (klemm A negatiivsele poolusele, klemm B positiivsele poolusele). See tähendab, et rootoris olev magnet pöörleb mähisega magnetvälja suunas. Rootor kasutab lühimat suunda, see tähendab jälle päripäeva.

Viimane (neljas) samm (viies pilt) on sama mis teine. Mootor on jälle pingeta. Ainult üks erinevus on see, et magneti lähteasend on vastupidine, kuid rootor liigub taas materjali maksimaalse mahu suunas. See on jälle veidi päripäeva.

See on kogu tsükkel, esimene samm järgneb uuesti. Mootori liikumine on teine ja neljas etapp stabiilne. Seejärel viiakse see mehaaniliselt üle käigukastiga 1:30 ülekandekiirusega teise käekella asendisse.

2. samm: tööpõhimõte Jätk

Tööpõhimõte Jätk
Tööpõhimõte Jätk
Tööpõhimõte Jätk
Tööpõhimõte Jätk
Tööpõhimõte Jätk
Tööpõhimõte Jätk
Tööpõhimõte Jätk
Tööpõhimõte Jätk

Joonised näitavad pinge lainekuju mootori klemmidel. Numbrid tähendavad kõiki sekundeid. Tegelikult on impulsid ruumidega võrreldes palju väiksemad. Need on umbes millisekundid.

Samm: praktiline lahtivõtmine 1

Praktiline lahtivõtmine 1
Praktiline lahtivõtmine 1

Kasutasin praktiliseks lahtivõtmiseks ühte odavaimat seinakella turul. Neil on vähe plusse. Üks on see, et hind on nii madal, et saame neid katsetuste jaoks vähe osta. Kuna tootmine on tugevalt orienteeritud hinnale, ei sisalda need keerulisi nutikaid lahendusi ega keerukaid kruvisid. Tegelikkuses ei sisalda need ühtegi kruvi, vaid ainult plastist klõpslukud. Vajame ainult minimaalseid tööriistu. Näiteks vajame kruvikeerajat ainult nende lukkude väljavõtmiseks.

Seinakella lahtivõtmiseks vajame lamedat otsakruvikeerajat (või mõnda muud torgata pulka), pesulõksu ja kõrgendatud servadega töömatti (see ei ole kohustuslik, kuid hõlbustab rataste ja muude väikeste osade otsimist).

Samm: praktiline lahtivõtmine 2

Praktiline lahtivõtmine 2
Praktiline lahtivõtmine 2
Praktiline lahtivõtmine 2
Praktiline lahtivõtmine 2
Praktiline lahtivõtmine 2
Praktiline lahtivõtmine 2
Praktiline lahtivõtmine 2
Praktiline lahtivõtmine 2

Seinakella tagaküljel on kolm riivi. Kaks ülaosa numbrite 2 ja 10 asendis saab avada ja katteklaasi avada. Kui klaas on avatud, on võimalik kellaosutid ära tõmmata. Nende asukohta pole vaja märkida. Tagastame need alati asendisse 12:00:00 Kui kellaosutid on välja lülitatud, saame kella liikumise lahti ühendada. Sellel on kaks riivi (asendis 6 ja 12). Soovitatav on liigutus võimalikult sirgelt välja tõmmata, vastasel juhul võib liikumine kinni jääda.

Samm: praktiline lahtivõtmine 3

Praktiline lahtivõtmine 3
Praktiline lahtivõtmine 3
Praktiline lahtivõtmine 3
Praktiline lahtivõtmine 3
Praktiline lahtivõtmine 3
Praktiline lahtivõtmine 3

Siis on võimalik liikumist avada. Sellel on kolm riivi. kaks positsioonidel 3 ja 9 tundi ning seejärel kolmas 6 tunni pärast. Avades piisab, kui eemaldada mootori ja käigukasti vahelt läbipaistev hammasratas ja seejärel hammasratas, mis on ühendatud mootori rootoriga.

6. samm: praktiline lahtivõtmine 4

Praktiline lahtivõtmine 4
Praktiline lahtivõtmine 4
Praktiline lahtivõtmine 4
Praktiline lahtivõtmine 4

Mootorimähis ja staator hoiavad ainult ühte riivi (12 tunni pärast). See ei pea kinni ühestki elektrirööbastest, see kehtib jõurööbaste kohta ainult pressi abil, siis pole eemaldamine keeruline. Spiraal on keeratud staatorile ilma hoidikuta. Seda saab hõlpsasti maha võtta.

Samm: praktiline lahtivõtmine 5

Praktiline lahtivõtmine 5
Praktiline lahtivõtmine 5
Praktiline lahtivõtmine 5
Praktiline lahtivõtmine 5
Praktiline lahtivõtmine 5
Praktiline lahtivõtmine 5
Praktiline lahtivõtmine 5
Praktiline lahtivõtmine 5

Spiraali alumisel küljel on liimitud väike trükkplaat, mis sisaldab ühte kuue väljundiga CoB (Chip on Board). Kaks on toiteallikaks ja need lõpetatakse suurematel ruudukujulistel padjadel, et paigaldada elektrirööpad. kaks väljundit on ühendatud kristalliga. Muide, kristall on 32768Hz ja seda saab edasiseks kasutamiseks joodetuks muuta. Kaks viimast väljundit on mähisega ühendatud. Leidsin, et ohutum on pardal olevad jäljed ära lõigata ja juhtmed olemasolevate padjandite külge jootma hakata. Kui proovisin mähist lahti keevitada ja juhtme otse mähisega ühendada, rebisin mähise traadi alati ära või kahjustasin mähist. Üks võimalus on uute juhtmete jootmine plaadile. Ütleme nii, et primitiivsem. Loovam meetod on ühendada mähis toiteplokkidega ja hoida toitepiire akukarbiga ühendamiseks. Seejärel saab elektroonikat akukasti sisse panna.

8. samm: praktiline lahtivõtmine 6

Praktiline lahtivõtmine 6
Praktiline lahtivõtmine 6
Praktiline lahtivõtmine 6
Praktiline lahtivõtmine 6

Jootmise kvaliteeti saab kontrollida ohmmeetri abil. Spiraali takistus on umbes 200Ω. Kui kõik on korras, paneme seinakella tagasi. Tavaliselt viskan elektrisiinid välja, siis on mul rohkem ruumi uutele juhtmetele. Fotod tehakse enne elektrirööbaste viskamist. Unustan järgmise foto teha, kui need eemaldatakse.

Kui olen liikumise lõpetamisega lõpetanud, katsetan seda teise kellaosuti abil. Panen käe selle telje külge ja ühendan natuke voolu (kasutasin CR2032 mündipatarei, kuid kasutada saab ka AA 1, 5V). Lihtsalt ühendage toide ühe polaarsusega juhtmetesse ja seejärel uuesti vastupidise polaarsusega. Kell peab tiksuma ja käsi liigub ühe sekundi võrra. Kui teil on probleeme tagasiliikumise lõpuleviimisega, kuna juhtmed võtavad rohkem kohta, pöörake pooli ja asetage see vastasküljele. Kui jõurööpe ei kasutata, ei mõjuta see kella liikumist. Nagu juba öeldud, peate käed tagasi pannes panema need osutama kella 12.00. See peab olema õige vahemaa tunni ja minuti käe vahel.

9. samm: seinakella kasutamise näited

Enamik lihtsaid näiteid keskendub aja kuvamisele, kuid erinevate muudatustega. Väga populaarne on modifikatsioon nimega "Vetinari kell". Osutab Terry Pratchetti raamatule, kus isand Vetinaril on ooteruumis seinakell, mis tiksub ebaregulaarselt. See ebakorrapärasus häirib ootavaid inimesi. Teine populaarne rakendus on "siinuskell". See tähendab kella, mis kiirendab ja aeglustab siinuskõvera põhjal, siis on inimestel tunne, et nad sõidavad lainetel. üks mu lemmikuid on "lõunaaeg". See muudatus tähendab, et kell läheb 11–12 tunni (0,8 sekundi) võrra kiiremini, et lõunat varem süüa; ja aeglasemalt lõuna ajal 12–13 tundi (1, 2 sekundit), et oleks lõunaks veidi rohkem aega ja kadunud aja korvamiseks.

Enamiku nende muudatuste jaoks piisab kõige lihtsama protsessori kasutamisest, kasutades töösagedust 32768Hz. See sagedus on kellatootjate seas väga populaarne, sest selle sagedusega on kristallide valmistamine lihtne ja keelatud on binaarne jagatud sekunditeks. Selle sageduse kasutamiseks protsessoril on kaks eelist: saame hõlpsalt kella kristallide ringlusse lülitada; ja protsessoritel on sellel sagedusel tavaliselt minimaalne tarbimine. Tarbimine on midagi, mida me seinakellaga mängides nii sageli lahendame. Eriti selleks, et oleks võimalik toita väikseima akuga nii kaua kui võimalik. Nagu juba öeldud, on mähisel takistus 200Ω ja see on ette nähtud umbes 1, 5 V (üks AA patarei) jaoks. Odavaimad protsessorid töötavad tavaliselt pisut suurema pingega, kuid kahe patareiga (3V) töötavad need kõik. Üks odavamaid protsessoreid meie turul on Microchip PIC12F629 või väga populaarsed Arduino moodulid. Seejärel näitame, kuidas mõlemat platvormi kasutada.

10. samm: seinakella kasutamise näited PIC

Seinakella kasutamise näited PIC
Seinakella kasutamise näited PIC
Seinakella kasutamise näited PIC
Seinakella kasutamise näited PIC

Protsessori PIC12F629 tööpinge on 2,0–5,5 V. Piisab kahe "mignon -patarei" = AA -elemendi (cca 3V) või kahe AA -laetava AA -aku (cca 2, 4V) kasutamisest. Kuid kellamähise jaoks on see kaks korda rohkem kui kavandatud. See põhjustab minimaalselt soovimatut tarbimise suurenemist. Siis on hea lisada minimaalne seeria takisti, mis loob sobiva pingejaguri. Takisti väärtus peab akutoitel olema umbes 120Ω või akutoitel 200Ω puhta takistusega koormuse korral. Praktikas võib väärtus olla veidi väiksem, umbes 100Ω. Teoorias piisab ühest mähisega jadast. Mul on endiselt mingil põhjusel kalduvus näha mootorit sümmeetrilise seadmena ja panna seejärel pooli takistusega (47Ω või 51Ω) takisti iga mähise klemmi kõrvale. Mõned konstruktsioonid lisavad kaitsedioode, et vältida protsessori negatiivset pinget, kui mähis on lahti ühendatud. Teisest küljest piisab protsessori väljundvõimsusest, et ühendada mähis otse protsessoriga ilma võimendita. Protsessori PIC12F629 täielik skeem näeb välja selline, nagu on kirjeldatud joonisel 15. See skeem kehtib kellade kohta, millel pole täiendavaid juhtelemente. Meil on veel saadaval üks sisend-/väljundnõel GP0 ja üks ainult GP3 sisend.

Samm: seinakella kasutamise näited Arduino

Seinakella kasutamise näited Arduino
Seinakella kasutamise näited Arduino
Seinakella kasutamise näited Arduino
Seinakella kasutamise näited Arduino
Seinakella kasutamise näited Arduino
Seinakella kasutamise näited Arduino

Kui soovime kasutada Arduinot, võime vaadata protsessori ATmega328 andmelehte. Selle protsessori tööpinge on määratletud kui 1,8 V - 5,5 V sagedusel kuni 4 MHz ja 2,7 V - 5, 5 V sagedusel kuni 10 MHz. Peame olema ettevaatlikud ühe Arduino tahvlite puudusega. See puudus on pingeregulaatori olemasolu pardal. Suurel hulgal pingeregulaatoreid on probleeme vastupidise pingega. Seda probleemi kirjeldatakse laialdaselt ja kõige paremini regulaatori 7805 puhul. Oma vajaduste jaoks peame kasutama plaati, mis on tähistatud kui 3V3 (mõeldud 3,3 V toiteks), eriti seetõttu, et see plaat sisaldab 8MHz kristalli ja seda saab toita alates 2,7V (see tähendab kahte AA patareid). Siis ei kasutata stabilisaatorit 7805, vaid selle 3,3 V ekvivalenti. Kui tahame plaati toita ilma stabilisaatorit kasutamata, on meil kaks võimalust. Esimene võimalus on ühendada pinge tihvtidega "RAW" (või "Vin") ja +3V3 (või Vcc) koos ning arvata, et teie plaadil kasutatav stabilisaator ei ole alapingekaitsega. Teine võimalus on stabilisaatori eemaldamine. Selleks on hea kasutada Arduino Pro Mini, järgides viiteskeemi. See skeem sisaldab hüppajat SJ1 (joonisel 16 punase ringiga), mis on ette nähtud sisemise stabilisaatori lahtiühendamiseks. Kahjuks ei sisalda enamik kloone seda hüppajat.

Arduino Pro Mini teine eelis on see, et see ei sisalda täiendavaid muundureid, mis võivad normaalse töötamise ajal elektrit tarbida (see on programmeerimisel väike komplikatsioon). Arduino tahvlid on varustatud üha mugavamate protsessoritega, millel pole ühe väljundi jaoks piisavalt energiat. Siis on hea lisada vähemalt väike väljundvõimendi, kasutades paari transistore. Aku toitmise põhiskeem näeb välja nagu joonisel näidatud.

Kuna Arduino keskkonnas (juhtmestiku keeles) on kaasaegsete operatsioonisüsteemide atribuudid (siis on probleeme täpse ajastusega), on hea mõelda välise kellaallika kasutamisele Timer0 või Timer1 jaoks. See tähendab sisendeid T0 ja T1, need on tähistatud kui 4 (T0) ja 4 (T1). Lihtsa ostsillaatori, mis kasutab seinakella kristalle, saab ühendada mis tahes nende sisenditega. See sõltub sellest, kui täpset kella soovite toota. Joonis 18 näitab kolme põhilist võimalust. Esimene skeem on kasutatud komponentide mõttes väga ökonoomne. See pakub vähem kolmnurkset väljundit, kuid täielikus pingevahemikus, siis sobib see hästi CMOS -sisendite toiteks. Teine skeem, kasutades invertereid, võivad need olla CMOS 4096 või TTL 74HC04. Skeemid on üksteisega vähem sarnased, need on põhivormis. Kolmas skeem, kasutades kiipi CMOS 4060, mis võimaldab kristalli otseühendamist (samaväärne 74HC4060, kasutades sama skemaatilist, kuid erineva väärtusega takistit). Selle vooluahela eeliseks on see, et see sisaldab 14 -bitist jagajat, siis on võimalik otsustada, millist sagedust kasutatakse taimerisisendina.

Selle vooluahela väljundit saab kasutada sisendi T0 jaoks (tihvt 4 Arduino märgistusega) ja seejärel kasutada välise sisendiga taimerit 0. See pole nii praktiline, sest taimerit 0 kasutatakse selliste funktsioonide jaoks nagu delay (), milis () või micros (). Teine võimalus on ühendada see sisendiga T1 (tihvt 5 Arduino märgistusega) ja kasutada täiendava sisendiga taimerit 1. Järgmine võimalus on ühendada see katkestussisendiga INT0 (tihvt 2 Arduino märgistuses) või INT1 (tihvt 3) ning kasutada funktsiooni attachInterrupt () ja registreerimisfunktsiooni, mida nimetatakse perioodiliselt. Siin on kasulik jagaja, mida pakuvad kiibid 4060, siis ei tohi helistada nii tihti.

12. samm: mudelraudteede riistvara kiire kell

Kiire kell mudelraudteede riistvara jaoks
Kiire kell mudelraudteede riistvara jaoks
Kiire kell mudelraudteede riistvara jaoks
Kiire kell mudelraudteede riistvara jaoks
Kiire kell mudelraudteede riistvara jaoks
Kiire kell mudelraudteede riistvara jaoks

Huvi huvides esitan ühe kasuliku skeemi. Pean ühendama rohkem seinakellasid ühise juhtimisega. Seinakellad asuvad üksteisest kaugel ja selle peal on keskkonnaomadused tööstuslikumad ja suurema elektromagnetilise müraga. Siis naasin tagasi vanade bussisüsteemide juurde, kasutades sidepidamiseks suuremat pinget. Loomulikult ei lahendanud ma akuga töötamist, kuid kasutasin stabiliseeritud toiteallikat 12V. Võimendasin protsessori signaali draiveri TC4427 abil (sellel on hea kättesaadavus ja hea hind). Siis kannan signaali 12V võimaliku koormusega kuni 0,5A. Lisasin alamkelladele lihtsad takisti jagajad (joonisel 18 on märgitud R101 ja R102; Jällegi mõistan mootorit kui sümmeetrilist, see pole vajalik). Tahaksin suurendada müra vähendamist, kandes rohkem voolu, siis kasutasin kahte takistit 100Ω. Pinge piiramiseks mootori mähisel on ühendatud silla alaldi B101 paralleelselt mähisega. Sillal on alalisvoolu pool lühistatud, siis kujutab see endast kahte paari paralleelset dioodi. Kaks dioodi tähendavad pingelangust umbes 1,4 V, mis on mootori normaalsele tööpingele väga lähedal. Vajame paralleelivastast, sest toide vaheldub ühes ja vastupidises polaarsuses. Ühe orja seinakella kogu vool on (12V - 1,5V) / (100Ω + 100Ω) = 53mA. See on müra vältimiseks vastuvõetav väärtus.

Siin on skemaatiliselt kaks lülitit, need on mõeldud seinakella lisafunktsioonide juhtimiseks (kiirraudkordaja mudelrööbaste puhul). Tütrekellal on veel üks huvitav omadus. Need ühendatakse kahe 4 mm banaanipistiku abil. Nad hoiavad seinal seinakella. See on eriti kasulik, kui soovite enne kasutamise alustamist teatud aja määrata, saate need lihtsalt vooluvõrgust lahti ühendada ja seejärel uuesti ühendada (puuplokk on seina külge kinnitatud). Kui soovite luua "Big Beni", vajate nelja paari pistikupesaga puidust kasti. Seda kasti saab kasutada kellade hoiukohana, kui neid ei kasutata.

Samm 13: Tarkvara

Tarkvara seisukohast on olukord suhteliselt lihtne. Kirjeldame teostust kiibil PIC12F629, kasutades kristalli 32768Hz (taaskasutatud originaalkellast). Protsessoril on üks käsutsükkel, nelja ostsillaatoritsükli pikkune. Kui kasutame mis tahes taimeri jaoks sisemist kellaallikat, tähendab see käsutsükleid (nimetatakse fosc/4). Meil on saadaval näiteks Timer0. Taimeri sisendsagedus on 32768 /4 = 8192Hz. Taimer on kaheksa bitine (256 sammu) ja me hoiame selle ülevoolu ilma tõketeta. Keskendume ainult taimeri ületäitmise sündmusele. Sündmus toimub sagedusega 8192 /256 = 32Hz. Siis, kui soovime saada impulsse üks sekund, peame looma impulsi iga 32 Timer0 ülevoolu korral. Tahaksime, et kell töötaks näiteks neli korda kiiremini, siis vajame impulsi jaoks 32 /4 = 8 ülevoolu. Juhtudel, kui oleme huvitatud ebakorrapärase, kuid täpse kella kavandamisest, peab meil olema impulsside ülevoolude summa, mis on sama suur kui 32 × impulsside arv. Siis võime otsida ebaregulaarsete kellade maatriksit järgmiselt: [20, 40, 30, 38]. Siis on summa 128, see on sama kui 32 × 4. Siinuskella jaoks näiteks [37, 42, 47, 51, 55, 58, 60, 61, 62, 61, 60, 58, 55, 51, 47, 42, 37, 32, 27, 22, 17, 13, 9, 6, 4, 3, 2, 3, 4, 6, 9, 13, 17, 22, 27, 32] = 1152 = 36*32). Kella jaoks kasutame kiireks töötamiseks jagaja määratluseks kahte tasuta sisendit. Kiiruste tabelijagajad jagatakse EEPROM -i mällu. Programmi põhiosa võib välja näha selline:

MainLoop:

btfss INTCON, T0IF goto MainLoop; oodake Taimer0 bcf INTCON, T0IF sh CLKCNT, f btfss SW_STOP; kui STOP -lüliti on aktiivne, klõpsa CLKCNT; tühjendage loendur iga kord btfsc SW_FAST; kui kiirnuppu ei vajutata, minge NormalTime; arvuta ainult normaalaeg movf FCLK, w xorwf CLKCNT, w btfsc STATUS, Z; kui FCLK ja CLKCNT on samad goto SendPulse NormalTime: movf CLKCNT, w andlw 0xE0; bitid 7, 6, 5 btfsc STATUS, Z; kui CLKCNT> = 32 goto MainLoop läks SendPulse'i

Programm, mis kasutab funktsiooni SendPulse, loob selle funktsiooni abil ise mootori impulsi. Funktsioonide arv paaritu/paaritu impulss ja selle põhjal luuakse impulss ühel või teisel väljundil. Funktsioon, kasutades pidevat ENERGISE_TIME. See pidev määratlemisaeg selle ajal on mootori mähisel pingestatud. Seega on sellel tarbimisele suur mõju. Kui see on nii väike, ei suuda mootor sammu lõpetada ja mõnikord juhtub, et see sekund kaob (tavaliselt siis, kui kasutatud käsi liigub numbri 9 ümber, kui see liigub ülespoole).

SendPulse:

incf POLARITY, f clrf CLKCNT btfss POLARITY, 0 goto SendPulseB SendPulseA: bsf OUT_A goto SendPulseE SendPulseB: bsf OUT_B; goto SendPulseE SendPulseE: movlw 0x50 movwf ECNT SendPulse b bffc

Täielikud lähtekoodid saate alla laadida lehe lõpus www.fucik.name. Olukord Arduinoga on pisut keeruline, kuna Arduino, kes kasutab kõrgemat programmeerimiskeelt ja kasutab oma 8MHz kristalli, peame olema ettevaatlikud, milliseid funktsioone me kasutame. Klassikalise viivituse () kasutamine on vähe riskantne (see arvutab aega funktsiooni algusest). Paremate tulemuste saavutamiseks kasutatakse selliseid teeke nagu Timer1. Paljud Arduino projektid arvestavad väliste RTC -seadmetega, nagu PCF8563, DS1302 jne.

14. samm: uudishimud

See seinakella mootorite kasutamise süsteem on väga lihtne. Sellel on palju parandusi. Näiteks tuginedes tagasi EMF -i mõõtmisele (rootormagneti liikumisel tekkiv elektrienergia). Siis on elektrooniline võimeline ära tundma, kui käed on liikunud ja kui mitte, siis korrake pulssi kiiresti või värskendage väärtust "ENERGISE_TIME". kasulikum uudishimu on "tagurpidi samm". Kirjelduse põhjal tundub, et see mootor on ette nähtud ainult üheks pöörlemissuunaks ja seda ei saa muuta. Kuid nagu on lisatud lisatud videotes, on suunda võimalik muuta. Põhimõte on lihtne. Tuleme tagasi mootoripõhimõtte juurde. Kujutage ette, et mootor on teise astme stabiilses olekus (joonis 3). Kui ühendame pinge, nagu on näidatud esimeses etapis (joonis 2), hakkab mootor loogiliselt pöörlema vastupidises suunas. Kui impulss on piisavalt lühike ja jõuab veidi enne mootori stabiilse oleku tõusu, vilgub see loogiliselt veidi üle. Kui see värelus jõuab järgmise pingeimpulsini, nagu on kirjeldatud kolmandas olekus (joonis 4), jätkab mootor suunda, nagu ta alustas, see tähendab vastupidises suunas. Väike probleem on see, kuidas määrata esimese impulsi kestus ja üks kord, et luua vahemaa esimese ja teise impulsi vahel. Ja kõige hullem on see, et need konstandid varieeruvad iga kellaliigutuse korral ja mõnikord ka juhtumite puhul, et käed "langevad" (umbes number 3) või üles (umbes number 9) ja samuti neutraalsetes asendites (umbes numbrid 12 ja 6). Videol esitatud juhtumi puhul kasutasin järgmises koodis esitatud väärtusi ja algoritmi:

#define OUT_A_SET 0x02; config for a set out b selge

#define OUT_B_SET 0x04; config for out b välja panema selge #define ENERGISE_TIME 0x30 #define REVERT_TIME 0x06 SendPulse: incf POLARITY, f clrf CLKCNT btfss POLARITY, 0 goto SendPulseB SendPulseA: movlw REVERT_TIME movwf ECNT movw alustage impulsiga B movwf GPIO RevPulseLoopA:; lühike ooteaeg decfsz ECNT, f goto RevPulseLoopA movlw OUT_A_SET; seejärel pulss A movwf GPIO läks SendPulseE SendPulseB: movlw REVERT_TIME movwf ECNT movlw OUT_A_SET; alusta impulsiga A movwf GPIO RevPulseLoopB:; lühike ooteaeg decfsz ECNT, f goto RevPulseLoopB movlw OUT_B_SET; seejärel pulss B movwf GPIO; goto SendPulseE SendPulseE: movlw ENERGISE_TIME movwf ECNT SendPulseLoop: decfsz ECNT, f goto SendPulseLoop bcf OUT_A bcf OUT_B goto MainLoop

Vastupidiste sammude kasutamine suurendab seinakellaga mängimise võimalust. Mõnikord võime leida seinakella, millel on sujuv liikumine. Me ei karda neid kella, nad kasutavad lihtsat trikki. Mootor ise on sama, mis siin kirjeldatud mootor, ainult ülekandearv on suurem (tavaliselt 8: 1 rohkem) ja mootor pöörleb kiiremini (tavaliselt 8 korda kiiremini), mis tagab sujuva liikumise. Kui olete otsustanud neid seinakella muuta, ärge unustage arvutada soovitud kordajat.

Soovitan: