Turinys:
- 1 žingsnis: darbo principas
- 2 žingsnis: Darbo principas Tęsinys
- 3 žingsnis: praktinis išardymas 1
- 4 žingsnis: praktinis išardymas 2
- 5 žingsnis: praktinis išardymas 3
- 6 žingsnis: praktinis išardymas 4
- 7 žingsnis: praktinis išardymas 5
- 8 žingsnis: praktinis išardymas 6
- 9 veiksmas: sieninio laikrodžio naudojimo pavyzdžiai
- 10 veiksmas: sieninio laikrodžio naudojimo pavyzdžiai PIC
- 11 veiksmas: sieninio laikrodžio naudojimo pavyzdžiai „Arduino“
- 12 veiksmas: greitas laikrodis geležinkelių modelių aparatinei įrangai
- 13 žingsnis: programinė įranga
- 14 žingsnis: įdomybės
Video: Žaidimas su rankiniu sieniniu laikrodžiu: 14 žingsnių
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:45
Elektroninis rankinis sieninis laikrodis (komercinis žymėjimo kvarcas) šiais laikais nėra nieko ypatingo. Jį galima nusipirkti daugelyje parduotuvių. Kai kuriuose iš jų jie yra labai pigūs; su kaina apie 2 € (50CZK). Ši žema kaina gali būti motyvacija atidžiau pažvelgti į juos. Tada supratau, kad jie gali būti įdomus žaislas naujokams elektroninėje erdvėje, neturintiems tiek daug išteklių ir kuriems labiausiai rūpi programavimas. Tačiau norėtų kitiems pristatyti savo vystymąsi. Kadangi pigus sieninis laikrodis labai toleruoja eksperimentus ir pradedančiųjų bandymus, nusprendžiau parašyti šį straipsnį, kuriame norėčiau pateikti pagrindines idėjas.
1 žingsnis: darbo principas
Nesunku atpažinti tą laikrodį, naudojantį judesiui kokį nors žingsninį variklį. Tas, kuris jau suskaldė kai kuriuos laikrodžius, pripažino, kad tai tik viena ritė, o ne dvi įprastu žingsniniu varikliu. Šiuo atveju mes kalbame apie „vieno fazės“arba „vieno poliaus“žingsninį variklį. (Šis pavadinimas nenaudojamas taip dažnai, dažniausiai tai yra analoginis žymėjimo vedinys, naudojamas kitiems pilno kamino žingsniniams varikliams). Tas, kuris jau pradeda galvoti apie darbo principą, turi užduoti klausimą, kaip tai įmanoma, kad variklis visada suktųsi teisinga kryptimi. Darbo principo aprašymas yra naudingas žemiau esančiame paveikslėlyje, kuriame pavaizduoti senesnių tipų varikliai.
Pirmame paveikslėlyje matoma viena ritė su gnybtais A ir B, pilkas statorius ir raudonai mėlynas rotorius. Rotorius pagamintas iš nuolatinio magneto, todėl jis pažymėtas spalva, būti matomas, kokia kryptimi magnetizuojamas (ne taip svarbu, koks polius yra šiaurėje ir kas yra pietuose). Ant statoriaus galite pamatyti du „griovelius“šalia rotoriaus. Jie yra labai svarbūs darbo principui. Variklis veikia keturiais etapais. Mes aprašysime kiekvieną žingsnį naudodami keturis vaizdus.
Per pirmąjį žingsnį (antrasis vaizdas) variklis įjungiamas, kad gnybtas A prijungtas prie teigiamo poliaus, o gnybtas B - prie neigiamo poliaus. Jis sukuria magnetinį srautą, pavyzdžiui, rodyklės kryptimi. Rotorius sustos tokioje padėtyje, kad jo padėtis atitiks magnetinį srautą.
Antras žingsnis atliekamas atjungus maitinimą. Tada magnetinis srautas statoriuje sustoja, o magnetas linkęs suktis į padėtį, jo poliarizacija yra didžiausio statoriaus magnetinės minkštosios medžiagos kryptimi. Ir čia yra labai svarbūs tie du grioveliai. Jie nurodo nedidelį maksimalaus tūrio nuokrypį. Tada rotorius šiek tiek pasukamas pagal laikrodžio rodyklę. Kaip parodyta 3 paveiksle.
Kitas žingsnis (ketvirtas vaizdas) yra su įtampa prijungtas atvirkštinis poliškumas (gnybtas A į neigiamą polių, gnybtas B į teigiamą polių). Tai reiškia, kad rotoriaus magnetas sukasi ritės magnetinio lauko kryptimi. Rotorius naudoja trumpiausią kryptį, tai vėl pagal laikrodžio rodyklę.
Paskutinis (ketvirtas) žingsnis (penktas vaizdas) yra toks pat kaip antras. Variklis vėl neturi įtampos. Tik vienas skirtumas yra tas, kad magneto pradinė padėtis yra priešinga, tačiau rotorius vėl judės didžiausio medžiagos tūrio kryptimi. Tai vėl šiek tiek pasukama pagal laikrodžio rodyklę.
Tai visas ciklas, po to vėl eina pirmas žingsnis. Variklio judėjimas yra antras ir ketvirtas žingsniai, kurie yra stabilūs. Tada jis su mechanine pavarų dėže 1:30 perduodamas į laikrodžio rodyklės padėtį.
2 žingsnis: Darbo principas Tęsinys
Skaičiai rodo variklio gnybtų įtampos bangos formą. Skaičiai reiškia visas sekundes. Iš tikrųjų impulsai yra daug mažesni, palyginti su erdvėmis. Jie yra apie milisekundes.
3 žingsnis: praktinis išardymas 1
Praktiniam išardymui naudojau vieną pigiausių rinkoje esantį sieninį laikrodį. Jie turi mažai privalumų. Viena yra ta, kad kaina yra tokia maža, kad galime jų nusipirkti nedaug eksperimentams. Kadangi gamyba yra labai orientuota į kainą, juose nėra jokių sudėtingų sumanių sprendimų ir sudėtingų varžtų. Tiesą sakant, juose nėra varžtų, tik plastikinės spynos. Mums reikia tik minimalių įrankių. Pavyzdžiui, mums reikia atsuktuvo tik tiems spynoms ištraukti.
Norėdami išardyti sieninį laikrodį, mums reikia plokščio atsuktuvo (arba bet kurio kito kaiščio), drabužių kaiščio ir kilimėlio su pakeltais kraštais (tai nėra privaloma, tačiau palengvinkite ratų ir kitų smulkių dalių paiešką).
4 žingsnis: praktinis išardymas 2
Galinėje sieninio laikrodžio pusėje yra trys skląsčiai. Dvi viršutinės, esančios skaičių 2 ir 10 padėtyje, gali būti atrakinamos, o dangtelis gali būti atidarytas Atidarius stiklą, galima nuimti laikrodžio rodykles. Nebūtina pažymėti jų padėties. Mes visada grąžinsime juos į padėtį 12:00:00 Kai laikrodžio rodyklės yra išjungtos, galime atjungti laikrodžio judėjimą. Jame yra du fiksatoriai (6 ir 12 padėtyse). Rekomenduojama judėti kuo tiesiau, kitaip judesys gali įstrigti.
5 žingsnis: praktinis išardymas 3
Tada galima atidaryti judėjimą. Jame yra trys skląsčiai. du - 3 ir 9 valandas, trečias - 6 valandas. Atidarius pakanka nuimti skaidrų krumpliaratį tarp variklio ir pavarų dėžės, o po to krumpliaratį, kuris yra prijungtas prie variklio rotoriaus.
6 žingsnis: praktinis išardymas 4
Variklio ritė ir statorius laikomi tik viename skląstyje (12 valandų). Jis netinka jokiems jėgos bėgiams, galios bėgiams taikomas tik paspaudus, tada nuimti nėra sunku. Ritė sriegiama ant statoriaus be jokio laikiklio. Jį galima lengvai nuimti.
7 žingsnis: praktinis išardymas 5
Apatinėje ritės pusėje yra klijuota maža spausdintinė plokštė, kurioje yra vienas CoB (mikroschema plokštėje) su šešiais išėjimais. Dvi yra skirtos maitinimui, o jos baigiamos ant didesnių kvadratinių trinkelių, esančių laive. du išėjimai yra prijungti prie kristalo. Beje, kristalas yra 32768 Hz ir gali būti išlydytas ateityje. Paskutiniai du išėjimai yra prijungti prie ritės. Man pasirodė saugiau nupjauti pėdsakus laive ir lituoti laidus prie esamų trinkelių. Kai bandžiau atsukti ritę ir prijungti laidą tiesiai prie ritės, aš visada nuplėšiau ritės laidą arba sugadinau ritę. Viena iš galimybių yra lituoti naujus laidus prie plokštės. Tarkime, primityviau. Kūrybiškesnis metodas yra prijungti ritę prie maitinimo blokų ir išlaikyti maitinimo bėgelius, kad būtų galima prijungti prie akumuliatoriaus dėžės. Tada elektronika gali būti įdėta į akumuliatoriaus dėžutę.
8 žingsnis: praktinis išardymas 6
Litavimo kokybę galima patikrinti naudojant ommetrą. Ritės atsparumas yra apie 200Ω. Kai viskas bus gerai, mes surenkame sieninį laikrodį atgal. Paprastai išmetu maitinimo bėgelius, tada turiu daugiau vietos naujiems laidams. Nuotraukos daromos prieš metant elektros bėgius. Pamiršau nufotografuoti kitą nuotrauką.
Kai baigsiu judesį, aš jį išbandysiu naudodamas antrą laikrodžio rodyklę. Pridedu ranką prie ašies ir prijungiu maitinimą (naudojau CR2032 monetos bateriją, bet galima naudoti ir AA 1, 5V). Tiesiog prijunkite maitinimą vienu poliškumu prie laidų, o tada vėl priešingu poliškumu. Laikrodis turi spustelėti, o rodyklė turi judėti vieną sekundę. Kai turėsite problemų užbaigti judėjimą atgal, nes laidai užima daugiau vietos, tiesiog pasukite ritės skruzdėlę ir padėkite ją į priešingą pusę. Nenaudojant maitinimo bėgių, jis neturi įtakos laikrodžio judėjimui. Kaip jau buvo minėta, grąžindami rankas atgal, turite jas nukreipti į 12:00 val. Tai turi būti teisingas atstumas tarp valandos ir minutės rodyklės.
9 veiksmas: sieninio laikrodžio naudojimo pavyzdžiai
Dauguma paprastų pavyzdžių, skirtų rodyti laiką, tačiau su įvairiais pakeitimais. Labai populiari modifikacija vadinama „Vetinari Clock“. Nurodydamas Terry Pratchett knygą, kurioje lordas Vetinari laukiamajame turi sieninį laikrodį, kuris tiksi nereguliariai. Tas netvarkingumas sujaudina laukiančius žmones. Antra populiari programa yra „sinusinis laikrodis“. Tai reiškia laikrodį, kuris pagreitėja ir lėtėja pagal sinuso kreivę, tada žmonės jaučia, kad jie plaukioja bangomis. vienas iš mano mėgstamiausių yra „pietų metas“. Šis pakeitimas reiškia, kad laikrodis eina šiek tiek greičiau (nuo 11 iki 12 valandų (0,8 sek.)), Kad būtų galima pietauti anksčiau; ir šiek tiek lėčiau pietų metu nuo 12 iki 13 valandų (1, 2 sek.), kad turėtumėme šiek tiek daugiau laiko pietums ir kompensuotumėte prarastą laiką.
Daugeliui šių modifikacijų pakanka paprasčiausio procesoriaus, kurio darbinis dažnis yra 32768 Hz. Šis dažnis yra labai populiarus tarp laikrodžių gamintojų, nes tokiu dažniu nesunku pasigaminti kristalų ir uždrausta būti lengvai dvejetainis, padalintas iki kelių sekundžių. Šio dažnio naudojimas procesoriui turi du privalumus: mes galime lengvai pakartoti kristalą iš laikrodžio; ir procesoriai paprastai sunaudoja minimaliai šiuo dažniu. Vartojimas yra tai, ką mes taip dažnai sprendžiame žaisdami su sieniniu laikrodžiu. Ypač, kad būtų galima kuo ilgiau maitinti laikrodį iš mažiausios baterijos. Kaip jau buvo minėta, ritės varža yra 200 Ω ir skirta maždaug 1, 5 V (viena AA baterija). Pigiausi procesoriai paprastai dirba su šiek tiek didesne įtampa, tačiau su dviem baterijomis (3 V) veikia visos. Vienas pigiausių procesorių mūsų rinkoje yra „Microchip PIC12F629“arba labai populiarūs „Arduino“moduliai. Tada parodysime, kaip naudotis abiem platformomis.
10 veiksmas: sieninio laikrodžio naudojimo pavyzdžiai PIC
Procesoriaus PIC12F629 darbinė įtampa yra 2,0–5,5 V. Pakanka naudoti dvi „mignon“baterijas = AA elementus (apie 3 V) arba du AA įkraunamus AA akumuliatorius (apie 2, 4 V). Tačiau laikrodžio ritė yra dvigubai didesnė nei suprojektuota. Tai sukelia mažiausiai nepageidaujamą vartojimo padidėjimą. Tada gerai pridėti minimalų serijos rezistorių, kuris sukurs tinkamą įtampos daliklį. Rezistoriaus vertė turi būti apie 120 Ω akumuliatoriaus galiai arba 200 Ω akumuliatoriaus galiai, apskaičiuota grynai varžinei apkrovai. Praktiškai vertė gali būti šiek tiek mažesnė, apie 100Ω. Teoriškai pakanka vieno rezistoriaus su ritėmis. Aš vis dar turiu tendenciją dėl kažkokių priežasčių matyti variklį kaip simetrišką įtaisą ir tada šalia kiekvieno ritės gnybto uždėti rezistorių su puse varžos (47Ω arba 51Ω). Kai kurios konstrukcijos prideda apsauginius diodus, kad būtų išvengta neigiamos įtampos procesoriui, kai ritė yra atjungta. Kita vertus, procesoriaus išėjimų galios pakanka, kad ritė būtų tiesiogiai prijungta prie procesoriaus be jokio stiprintuvo. Pilna procesoriaus PIC12F629 schema atrodys taip, kaip aprašyta 15 paveiksle. Ši schema galioja laikrodžiams be papildomų valdymo elementų. Vis dar turime vieną įvesties/išvesties kaištį GP0 ir vieną įvestį tik GP3.
11 veiksmas: sieninio laikrodžio naudojimo pavyzdžiai „Arduino“
Kai norėtume naudoti „Arduino“, galime pažvelgti į procesoriaus ATmega328 duomenų lapą. Šio procesoriaus darbinė įtampa yra 1,8–5,5 V, kai dažnis yra iki 4 MHz, ir 2,7–5, 5 V, kai dažnis yra iki 10 MHz. Turime būti atsargūs su vienu „Arduino“plokščių trūkumu. Šis trūkumas yra įtampos reguliatoriaus buvimas laive. Didelis įtampos reguliatorių kiekis turi problemų su atvirkštine įtampa. Ši problema plačiai ir geriausiai aprašyta 7805. reguliatoriui. Savo reikmėms turime naudoti plokštę, pažymėtą kaip 3V3 (skirta 3,3 V maitinimo šaltiniui), ypač todėl, kad šioje plokštėje yra 8MHz kristalų ir ji gali būti maitinama pradedant nuo 2, 7V (tai reiškia du AA baterijos). Tada naudojamas stabilizatorius bus ne 7805, o jo 3,3 V ekvivalentas. Kai norėtume maitinti plokštę nenaudodami stabilizatoriaus, turime dvi galimybes. Pirmasis variantas yra prijungti įtampą prie kaiščių „RAW“(arba „Vin“) ir +3V3 (arba Vcc) kartu ir manyti, kad jūsų plokštėje naudojamas stabilizatorius neturi apsaugos nuo įtampos. Antrasis variantas yra tiesiog pašalinti stabilizatorių. Tam gerai naudoti „Arduino Pro Mini“, laikantis nuorodos schemos. Toje schemoje yra trumpiklis SJ1 (16 paveiksle raudonu apskritimu), skirtas vidiniam stabilizatoriui atjungti. Deja, daugelyje klonų nėra šio trumpiklio.
Kitas „Arduino Pro Mini“pranašumas yra tas, kad jame nėra jokių papildomų keitiklių, kurie įprasto veikimo metu gali sunaudoti elektros energiją (tai yra nedidelė programavimo komplikacija). „Arduino“plokštės aprūpintos vis patogesniais procesoriais, kuriems nepakanka galios vienam išėjimui. Tada gerai pridėti bent mažą išvesties stiprintuvą naudojant porą tranzistorių. Pagrindinė akumuliatoriaus energijos schema atrodys taip, kaip parodyta paveikslėlyje.
Kadangi „Arduino“aplinka („laidų“kalba) turi šiuolaikinių operacinių sistemų atributų (tada kyla problemų dėl tikslaus laiko nustatymo), verta pagalvoti apie išorinio laikrodžio šaltinio naudojimą „Timer0“arba „Timer1“. Tai reiškia įėjimus T0 ir T1, jie pažymėti kaip 4 (T0) ir 4 (T1). Prie bet kurio iš šių įėjimų galima prijungti paprastą osciliatorių, naudojant sieninio laikrodžio kristalą. Tai priklauso nuo to, kokį tikslų laikrodį norėtumėte pagaminti. 18 paveiksle parodyta trys pagrindinės galimybės. Pirmoji schema yra labai ekonomiška naudotų komponentų prasme. Jis suteikia daugiau mažiau trikampio išėjimo, bet visu įtampos diapazonu, tada jis yra tinkamas maitinti CMOS įėjimus. Antroji schema, naudojant keitiklius, gali būti CMOS 4096 arba TTL 74HC04. Schemos yra mažiau panašios viena į kitą, jos yra pagrindinės formos. Trečioji schema, naudojant mikroschemą CMOS 4060, leidžiančią tiesiogiai prijungti kristalą (lygiavertis 74HC4060, naudojant tą pačią schemą, tačiau skirtingas rezistorių vertes). Šios grandinės pranašumas yra tas, kad joje yra 14 bitų daliklis, tada galima nuspręsti, koks dažnis naudojamas kaip laikmačio įvestis.
Šios grandinės išėjimą galima naudoti įėjimui T0 (4 kaištis su „Arduino“žymėjimu), o tada naudoti „Timer0“su išoriniu įėjimu. Tai nėra taip praktiška, nes „Timer0“naudojamas tokioms funkcijoms kaip delay (), milis () arba micros (). Antrasis variantas yra prijungti jį prie įvesties T1 (5 kaištis su „Arduino“žymėjimu) ir naudoti „Timer1“su papildoma įvestimi. Kitas variantas yra prijungti jį prie pertraukimo įvesties INT0 (2 kontaktas „Arduino“žymėjime) arba INT1 (3 kaištis) ir naudoti funkciją „attachInterrupt“() ir registro funkciją, kuri periodiškai vadinama. Čia yra naudingas dalytuvas, kurį siūlo 4060 lustai, tada skambinti negalima taip dažnai.
12 veiksmas: greitas laikrodis geležinkelių modelių aparatinei įrangai
Įdomumo dėlei pateiksiu vieną naudingą schemą. Turiu prijungti daugiau sieninių laikrodžių prie bendro valdymo. Sieniniai laikrodžiai yra toli vienas nuo kito, o aplinkos charakteristika yra labiau pramoninė su didesniu elektromagnetiniu triukšmu. Tada grįžau prie senų autobusų sistemų, naudojančių didesnę įtampą ryšiui. Žinoma, aš neišsprendžiau darbo su baterija, bet naudojau stabilizuotą 12 V maitinimo šaltinį. Aš sustiprinau signalą iš procesoriaus, naudodamas tvarkyklę TC4427 (jis turi gerą prieinamumą ir gerą kainą). Tada nešioju signalą 12V su galima apkrova iki 0,5A. Prie pavaldžių laikrodžių pridėjau paprastus rezistorių skirstytuvus (18 paveiksle pažymėta kaip R101 ir R102; vėlgi aš suprantu variklį kaip simetrišką, tai nėra būtina). Norėčiau padidinti triukšmo mažinimą, nešdamas daugiau srovės, tada naudoju du 100Ω rezistorius. Norėdami apriboti įtampą variklio ritėje, lygiagrečiai su ritine prijungtas tilto lygintuvas B101. Tiltas turi sutrumpintą nuolatinės srovės pusę, tada jis atspindi dvi poras lygiagrečių diodų. Du diodai reiškia, kad įtampa sumažėja apie 1,4 V, tai yra labai artima normaliai variklio darbinei įtampai. Mums reikia anti-lygiagretumo, nes maitinimas kinta vienu ir priešingu poliškumu. Bendra vieno vergo sieninio laikrodžio naudojama srovė yra (12V - 1,5V) / (100Ω + 100Ω) = 53mA. Tai yra priimtina vertė, kad būtų išvengta triukšmo.
Čia yra du jungikliai schemose, jie skirti papildomoms sieninio laikrodžio funkcijoms valdyti (greičio daugiklis modelinių geležinkelio bėgių atveju). Dukros laikrodis turi dar vieną įdomią savybę. Jie prijungiami naudojant dvi 4 mm bananų jungtis. Jie laiko sieninį laikrodį ant sienos. Tai ypač naudinga, kai prieš naudojimą norite nustatyti tam tikrą laiką, galite juos tiesiog atjungti ir vėl prijungti (medinis blokas pritvirtintas prie sienos). Jei norite sukurti „Big Ben“, jums reikia medinės dėžutės su keturiomis lizdų poromis. Ši dėžutė gali būti naudojama kaip laikrodžių saugykla, kai jie nenaudojami.
13 žingsnis: programinė įranga
Programinės įrangos požiūriu situacija yra gana paprasta. Aprašykime realizavimą mikroschemoje PIC12F629, naudojant 32768 Hz kristalą (perdirbtą iš originalaus laikrodžio). Procesorius turi vieną keturių osciliatorių ciklų instrukcijų ciklą. Kai bet kuriam laikmačiui naudosime vidinį laikrodžio šaltinį, tai reiškia instrukcijų ciklus (vadinamus fosc/4). Turime, pavyzdžiui, „Timer0“. Laikmačio įvesties dažnis bus 32768 /4 = 8192Hz. Laikmatis yra aštuonių bitų (256 žingsniai), ir mes jį perpildome be jokių kliūčių. Mes sutelksime dėmesį tik į laikmačio perpildymo įvykį. Įvykis įvyks 8192/256 = 32Hz dažniu. Tada, kai norėtume vieną sekundę gauti impulsus, turime sukurti impulsą kas 32 „Timer0“perpildymą. Mes norėtume, kad laikrodis veiktų, pavyzdžiui, keturis kartus greičiau, tada mums reikia 32 /4 = 8 pulso perpildymo. Tais atvejais, kai norime suprojektuoti laikrodį netaisyklingu, bet tiksliu, turime turėti kelių impulsų perpildymų sumą, tokią pat kaip 32 × impulsų skaičius. Tada mes galime ieškoti tokių netaisyklingų laikrodžių matricos: [20, 40, 30, 38]. Tada suma yra 128, tai yra 32 × 4. Pavyzdžiui, sinusiniam laikrodžiui [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). Savo laikrodžiui greito veikimo metu skirstytuvo apibrėžimu naudosime du nemokamus įėjimus. Greičio lentelės dalikliai yra saugomi EEPROM atmintyje. Pagrindinė programos dalis gali atrodyti taip:
„MainLoop“:
btfss INTCON, T0IF goto MainLoop; palaukite Timer0 bcf INTCON, T0IF incf CLKCNT, f btfss SW_STOP; jei STOP jungiklis yra aktyvus, clrf CLKCNT; išvalyti skaitiklį kiekvieną kartą btfsc SW_FAST; jei nepaspaudžiamas greitas mygtukas, eikite į „NormalTime“; apskaičiuoti tik normalų laiką movf FCLK, w xorwf CLKCNT, w btfsc STATUS, Z; jei FCLK ir CLKCNT yra tas pats goto SendPulse NormalTime: movf CLKCNT, w andlw 0xE0; bitai 7, 6, 5 btfsc STATUS, Z; jei CLKCNT> = 32 goto MainLoop goto SendPulse
Programa, naudojant funkciją „SendPulse“, ta funkcija pati sukuria variklio impulsą. Funkcijų skaičius nelyginis/lyginis impulsas ir pagal tai sukuria impulsą vienoje ar antroje išvestyje. Funkcija naudojant pastovų ENERGISE_TIME. Tas pastovus apibrėžimo laikas per tą laiką yra įjungtas variklio ritė. Taigi tai daro didelę įtaką vartojimui. Kai variklis yra toks mažas, jis nesugeba užbaigti žingsnio ir kartais nutinka, kad sekundė pasimeta (dažniausiai, kai antra ranka aplenkiamas skaičius 9, kai jis eina „aukštyn“).
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 Sendfulg bn
Visus šaltinio kodus galite atsisiųsti puslapio pabaigoje www.fucik.name. Situacija su „Arduino“yra šiek tiek sudėtinga, nes „Arduino“naudoja aukštesnę programavimo kalbą ir naudoja savo 8MHz kristalą, todėl turime būti atsargūs, kokias funkcijas naudojame. Klasikinio uždelsimo () naudojimas yra mažai rizikingas (jis skaičiuoja laiką nuo funkcijos pradžios). Geresni rezultatai bus naudojami tokiose bibliotekose kaip „Timer1“. Daugelis „Arduino“projektų priklauso nuo išorinių RTC įrenginių, tokių kaip PCF8563, DS1302 ir kt.
14 žingsnis: įdomybės
Ši sieninio laikrodžio variklio naudojimo sistema suprantama kaip labai paprasta. Yra daug patobulinimų. Pavyzdžiui, remiantis atgalinio EMF matavimu (elektros energija, pagaminta sukant rotoriaus magnetą). Tada elektroninė gali atpažinti, kai ranka juda, o jei ne, tada greitai pakartokite impulsą arba atnaujinkite „ENERGISE_TIME“vertę. naudingesnis smalsumas yra „atvirkštinis žingsnis“. Remiantis aprašymu, atrodo, kad variklis skirtas tik vienai sukimosi krypčiai ir jo negalima keisti. Tačiau, kaip parodyta pridedamuose vaizdo įrašuose, galima pakeisti kryptį. Principas paprastas. Grįžkime prie variklio principo. Įsivaizduokite, kad antrojo žingsnio variklis yra stabilioje būsenoje (3 pav.). Kai prijungsime įtampą, kaip parodyta pirmame žingsnyje (2 pav.), Variklis logiškai pradės suktis priešinga kryptimi. Kai impulsas bus pakankamai trumpas ir šiek tiek pasibaigs, kol variklis pakels stabilią būseną, jis logiškai šiek tiek mirksės. Kai tik tas mirgėjimas pasieks kitą įtampos impulsą, kaip aprašyta trečiojoje būsenoje (4 pav.), Tada variklis ir toliau važiuos tokia kryptimi, kokia buvo pradėta, tai reiškia atvirkštine kryptimi. Nedidelė problema yra tai, kaip nustatyti pirmojo impulso trukmę ir vieną kartą sukurti tam tikrą atstumą tarp pirmojo ir antrojo impulsų. Ir blogiausia yra tai, kad tos konstantos skiriasi kiekvienam laikrodžio judesiui ir kartais skiriasi kiekvienu atveju, kad rankos „nusileidžia“(maždaug 3 skaičius) arba aukštyn (maždaug 9 skaičius), taip pat neutralioje padėtyje (maždaug 12 ir 6). Vaizdo įraše pateiktam atvejui naudoju vertes ir algoritmą, pateiktą šiame kode:
#define OUT_A_SET 0x02; config out out a set out aišku
#define OUT_B_SET 0x04; config for out b nustatykite aiškų #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 movwf ECNT movl pradėkite nuo impulso B movwf GPIO RevPulseLoopA:; trumpas laukimas decfsz ECNT, f goto RevPulseLoopA movlw OUT_A_SET; tada pulsas A movwf GPIO goto SendPulseE SendPulseB: movlw REVERT_TIME movwf ECNT movlw OUT_A_SET; pradėkite nuo impulso A movwf GPIO RevPulseLoopB:; trumpas laukimas decfsz ECNT, f goto RevPulseLoopB movlw OUT_B_SET; tada pulsas 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
Naudojant atvirkštinius žingsnius, padidėja galimybė žaisti su sieniniu laikrodžiu. Kartais galime rasti sieninį laikrodį, kuris sklandžiai naudoja antrą ranką. Mes nebijome tų laikrodžių, jie naudoja paprastą triuką. Pats variklis yra toks pat, kaip ir čia aprašytas variklis, tik pavarų santykis yra didesnis (paprastai 8: 1 daugiau), o variklis sukasi greičiau (paprastai 8 kartus greičiau), o tai užtikrina sklandų judėjimą. Nusprendę pakeisti šiuos sieninius laikrodžius, nepamirškite apskaičiuoti prašomo daugiklio.
Rekomenduojamas:
Nuo „Quarts“laikrodžių iki LED lempučių: 13 žingsnių
Nuo „Quarts“laikrodžių iki LED žibintų: laikrodžių mechanizmas šiuose ketvirčio laikrodžiuose tikrai nėra pats geriausias, tačiau kvartų grandinė veikia ilgai po to, kai sugenda likęs laikrodis. Taigi čia yra keletas įdomių blykstės grandinių, kurias galite padaryti iš šių grandinių. PASTABA: NENAUDOKITE CHIP šviesos diodų. Patikrinkite
Laikrodis - kaip sukurti laikrodį, pagamintą iš laikrodžių!: 14 žingsnių (su nuotraukomis)
Laikrodis - kaip sukurti laikrodį, pagamintą iš laikrodžių !: Sveiki visi! Tai mano pasiūlymas 2020 -ųjų pirmojo autoriaus konkursui! Jei jums patinka šis projektas, būčiau labai dėkingas už jūsų balsą :) Ačiū! Ši instrukcija padės jums sukurti laikrodį, pagamintą iš laikrodžių! Sumaniai pavadinau
Simono žaidimas - įdomus žaidimas!: 5 žingsniai
Simono žaidimas - įdomus žaidimas!: Nuoroda: čia Laikas mums treniruoti smegenis, ar ne? Be tų nuobodžių ir beprasmių žaidimų, yra žaidimas „Simono žaidimas“
Nuostabus projektas su sieniniu laikrodžiu: 11 žingsnių
Nuostabus projektas su sieniniu laikrodžiu: Sveikas draugas, šis tinklaraštis bus nuostabus, nes šiame tinklaraštyje aš padarysiu nuostabią LED efektų grandinę, naudodamas seną sieninį laikrodį. Pradėkime
„Pasidaryk pats“rankiniu būdu nešiojamas „BOOMBOX“: 20 žingsnių (su paveikslėliais)
„Pasidaryk pats“RANKINIO PANEŠAMASIS BOOMBOX: Sveiki visi, todėl šioje pamokoje aš jums parodysiu, kaip aš sukūriau šią paprastą „boombox“iš faneros naudodami kelis rankinius elektrinius įrankius. diena iš dienos