
Orodha ya maudhui:
- Hatua ya 1: Kanuni ya Kufanya kazi
- Hatua ya 2: Kanuni ya Kufanya Endelea
- Hatua ya 3: Kutenganisha kwa vitendo 1
- Hatua ya 4: Kutenganisha kwa vitendo 2
- Hatua ya 5: Kutenganisha kwa vitendo 3
- Hatua ya 6: Kutenganisha kwa vitendo 4
- Hatua ya 7: Kutenganisha kwa vitendo 5
- Hatua ya 8: Kutenganisha kwa vitendo 6
- Hatua ya 9: Mifano ya Matumizi ya Saa za Ukuta
- Hatua ya 10: Mifano ya Matumizi ya Saa za Ukuta PIC
- Hatua ya 11: Mifano ya Matumizi ya Saa za Ukuta Arduino
- Hatua ya 12: Saa ya Haraka ya Vifaa vya Reli ya Modeli
- Hatua ya 13: Programu
- Hatua ya 14: Udadisi
2025 Mwandishi: John Day | [email protected]. Mwisho uliobadilishwa: 2025-01-23 15:11



Saa ya ukuta wa mkono wa elektroniki (alama ya biashara ya quartz) siku hizi sio kitu maalum. Inaweza kununuliwa katika maduka mengi. Katika zingine ni rahisi sana; na bei karibu € 2 (50CZK). Bei hiyo ya chini inaweza kuwa motisha ya kuwaangalia zaidi. Kisha nikatambua, zinaweza kuwa toy ya kupendeza kwa watoto wachanga katika elektroniki, ambao hawana rasilimali nyingi na ambao wanapenda sana programu. Lakini ningependa kuwasilisha maendeleo kwa wengine. Kwa sababu saa ya ukuta wa bei rahisi huvumilia majaribio na majaribio ya Kompyuta, niliamua kuandika nakala hii, ambapo ningependa kuwasilisha maoni ya kimsingi.
Hatua ya 1: Kanuni ya Kufanya kazi


Ni rahisi kutambua, saa hiyo inayotumia harakati aina fulani ya motor ya stepper. Yule, ambaye tayari amevunja saa kadhaa alitambua, kwamba ni coil moja tu badala ya mbili kwa motor ya kawaida ya stepper. Katika kesi hii tunazungumza juu ya "awamu moja" au "pole moja" motor stepper. (Jina hili halitumiwi mara nyingi, ni asili inayofanana ya kuashiria kutumika kwa motors zingine kamili za stepper). Yule ambaye tayari anaanza kufikiria juu ya kanuni ya kufanya kazi lazima aulize swali, inawezekanaje, hiyo motor kila wakati huzunguka katika mwelekeo sahihi. Kwa maelezo ya kanuni ya kufanya kazi ni muhimu kufuata picha, ambayo inaonyesha aina za zamani za motors.
Kwenye picha ya kwanza inaonekana coil moja na vituo A na B, stator ya kijivu na rotor nyekundu-bluu. Rotor imetengenezwa kutoka kwa sumaku ya kudumu, ndiyo sababu, kwa nini imewekwa alama ya rangi, ili ionekane, kwa mwelekeo gani ina sumaku (sio muhimu sana, ni nini kaskazini na nini kusini). Kwenye stator unaweza kuona "grooves" mbili karibu na rotor. Ni muhimu sana kwa kanuni ya kufanya kazi. Motor hufanya kazi kwa hatua nne. Tutaelezea kila hatua kwa kutumia picha nne.
Wakati wa hatua ya kwanza (picha ya pili) imeimarishwa na motor, hiyo terminal A imeunganishwa na pole chanya na terminal B imeunganishwa na pole hasi. Inafanya flux magnetic, kwa mfano kwa mwelekeo wa mshale. Rotor itasimama katika msimamo, kwamba msimamo wake utalingana na mtiririko wa sumaku.
Hatua ya pili ifuatavyo baada ya kukatika kwa umeme. Kisha magnetic flux katika stator imesimamishwa, na sumaku ina tabia ya kuzunguka kwa nafasi, ni ubaguzi katika mwelekeo wa kiwango cha juu cha nyenzo laini laini ya stator. Na hapa kuna muhimu hizo grooves mbili. Wanaelekeza kwa kupotoka kidogo kwa kiwango cha juu. Kisha rotor huzunguka kidogo kwa mwelekeo wa saa. Kama inavyoonyeshwa kwenye picha 3.
Hatua inayofuata (picha ya nne) ni pamoja na voltage iliyounganishwa nyuma polarity (terminal A hadi pole hasi, terminal B kwa pole chanya). Inamaanisha, sumaku iliyo kwenye rotor itazunguka kwa uelekeo wa uwanja wa magnetic na coil. Rotor tumia mwelekeo mfupi zaidi, ambayo ni tena saa moja kwa moja.
Hatua ya mwisho (ya nne) (picha ya tano) ni sawa na ya pili. Motor haina voltage tena. Tofauti moja tu ni kwamba, nafasi ya kuanza kwa sumaku iko kinyume, lakini rotor itahamia tena kuelekea mwelekeo wa kiwango cha juu cha vifaa. Hiyo ni msimamo tena wa saa kidogo.
Hiyo ni mzunguko wote, hatua ya kwanza inafuata tena. Kwa harakati za magari ni hatua mbili na nne zinaelewa kuwa thabiti. Halafu inahamishiwa kwa sanduku la gia 1:30 kiwango cha uhamisho kwenda kwenye nafasi ya mkono wa pili wa saa.
Hatua ya 2: Kanuni ya Kufanya Endelea




Takwimu zinaonyesha muundo wa wimbi la voltage kwenye vituo vya magari. Nambari inamaanisha sekunde zote. Kwa kweli kunde ni ndogo sana kulinganisha na nafasi. Ziko juu ya milliseconds.
Hatua ya 3: Kutenganisha kwa vitendo 1

Nilitumia saa moja ya ukuta wa bei rahisi kwenye soko kwa kutenganisha kwa vitendo. Wana faida chache. Moja ni kwamba, bei hiyo ni ya chini, kwamba tunaweza kununua chache kwao kwa majaribio. Kwa sababu utengenezaji umeelekezwa sana kwa bei, hauna suluhisho zozote ngumu za ujanja na hakuna visu ngumu. Kwa kweli hazina visu yoyote, kufuli za plastiki tu. Tunahitaji zana za chini tu. Kwa mfano tunahitaji bisibisi tu kwa kuchomoa kufuli hizo.
Kwa kutenganisha saa ya ukuta tunahitaji bisibisi ya ncha ya gorofa (au fimbo nyingine yoyote), kigingi cha nguo na kitanda cha kufanya kazi na kingo zilizoinuliwa (hiyo sio lazima, lakini tafuta magurudumu na sehemu zingine ndogo iwe rahisi zaidi).
Hatua ya 4: Kutenganisha kwa vitendo 2




Kwenye upande wa nyuma wa saa ya ukuta unaweza kupatikana latches tatu. Juu mbili kwa nafasi ya nambari 2 na 10 zinaweza kufunguliwa na glasi ya kufunika inaweza kufunguliwa Wakati glasi iko wazi, inawezekana kuvuta mikono ya saa. Sio lazima kuashiria msimamo wao. Tutazirudisha kila wakati kwenye nafasi ya 12:00:00 Wakati mikono ya saa imezimwa, tunaweza kupunguza mwendo wa saa. Ina latches mbili (katika nafasi ya 6 na 12). Inashauriwa kuvuta harakati moja kwa moja iwezekanavyo, vinginevyo harakati zinaweza kukwama.
Hatua ya 5: Kutenganisha kwa vitendo 3



Basi inawezekana kufungua harakati. Ina latches tatu. mbili kwenye nafasi 3 na masaa 9 na kisha tatu kwa masaa 6. Ilipofunguliwa, inatosha kuondoa cogwheel ya uwazi kati ya motor na sanduku la gia na kisha pinion, ambayo imeunganishwa na rotor ya motor.
Hatua ya 6: Kutenganisha kwa vitendo 4


Coil ya gari na stator inashikilia latch moja tu (saa 12). Haishiki kwa reli yoyote ya nguvu, inatumika kwa reli za umeme tu na waandishi wa habari, kisha kuondoa sio ngumu. Coil imefungwa kwenye stator bila mmiliki yeyote. Inaweza kutolewa kwa urahisi.
Hatua ya 7: Kutenganisha kwa vitendo 5




Kwa upande wa chini wa coil kuna glued bodi ndogo ya mzunguko iliyochapishwa, ambayo ina CoB moja (Chip kwenye Bodi) na matokeo sita. Mbili ni ya nguvu na hukomeshwa kwa pedi kubwa za mraba kwenye bodi kwa kutumia reli za umeme. matokeo mawili yameunganishwa na kioo. Kwa njia, kioo ni 32768Hz na inaweza kuuzwa kwa matumizi ya baadaye. Matokeo mawili ya mwisho yameunganishwa na coil. Nilipata kama salama zaidi kukata athari kwenye bodi na waya za solder kwa pedi zilizopo kwenye bodi. Nilipojaribu kufunua coil na kuunganisha waya moja kwa moja kwa coil, mimi huvunja waya wa coil au kuharibu coil. Kuunganisha waya mpya kwa bodi ni moja ya uwezekano. Wacha tuseme, hiyo ni ya zamani zaidi. Njia zaidi ya ubunifu ni kuunganisha coil kwa pedi za kuwezesha na kuweka reli za kuwezesha unganisho na sanduku la betri. Kisha umeme unaweza kuwekwa ndani ya sanduku la betri.
Hatua ya 8: Kutenganisha kwa vitendo 6


Ubora wa kutengenezea unaweza kuchunguzwa kwa kutumia ohmmeter. Coil ina upungufu juu ya 200Ω. Mara tu kila kitu kitakapokuwa sawa, tunakusanya saa ya ukuta nyuma. Kawaida mimi hutupa reli za umeme nje, basi nina nafasi zaidi kwa waya zangu mpya. Picha zinachukuliwa kabla ya reli kutupwa. Ninasahau kuchukua picha inayofuata wakati zinaondolewa.
Ninapomaliza kumaliza harakati, ninaijaribu kwa kutumia mkono wa pili wa saa. Niliweka mkono kwenye mhimili wake na kuunganisha nguvu (nilitumia betri ya sarafu ya CR2032, lakini AA 1, 5V inaweza kutumika pia). Unganisha tu nguvu katika polarity moja na waya na kisha tena na polarity tofauti. Saa inapaswa kupe na mkono utasogea kwa sekunde moja. Mara tu unapokuwa na shida kumaliza harakati nyuma, kwa sababu waya huchukua nafasi zaidi, zungusha ant ya coil iweke upande wa pili. Mara moja hautumii reli za nguvu, haina athari kwa mwendo wa saa. Kama ilivyosemwa tayari, wakati wa kurudisha mikono nyuma, lazima uiweke kwa kuashiria saa 12:00:00. Ni kuwa na umbali sahihi kati ya saa na mkono wa dakika.
Hatua ya 9: Mifano ya Matumizi ya Saa za Ukuta
Wengi wa mifano rahisi inayolenga kuonyesha wakati, lakini na marekebisho anuwai. Maarufu sana ni muundo unaitwa "Saa ya Vetinari". Akiashiria kitabu cha Terry Pratchett, ambapo bwana Vetinari ana saa ya ukuta kwenye chumba chake cha kusubiri, hiyo inaashiria kawaida. Uvunjifu huo unasumbua watu wanaosubiri. Maombi ya pili maarufu ni "saa ya sinus". Inamaanisha saa, ambayo inaharakisha na kupunguza kasi kulingana na upinde wa sinus, basi watu wana hisia, wanatembea kwa mawimbi. moja ya ninayopenda ni "wakati wa chakula cha mchana". Marekebisho hayo yanamaanisha, saa hiyo huenda haraka kidogo kwa muda kati ya saa 11 hadi 12 (sekunde 0.8), kupata chakula cha mchana mapema; na polepole kidogo wakati wa chakula cha mchana kati ya saa 12 hadi 13 (sekunde 1, 2), kuwa na wakati kidogo zaidi wa chakula cha mchana na kulipia wakati uliopotea.
Kwa mengi ya marekebisho hayo yanatosha kutumia processor rahisi, kwa kutumia masafa ya kufanya kazi 32768Hz. Mzunguko huu ni maarufu sana kwa watunga saa, kwa sababu ni rahisi kutengeneza kioo na masafa haya, na ni marufuku kuwa binary rahisi kugawanywa kukamilisha sekunde. Inayo faida mbili kutumia masafa haya kwa processor: tunaweza kurudisha tena kioo kutoka saa; na wasindikaji kawaida huwa na matumizi kidogo kwenye masafa haya. Matumizi ni kitu tunachotatua mara nyingi wakati wa kucheza na saa ya ukuta. Hasa kuweza saa ya nguvu kutoka kwa betri ndogo, kwa muda mrefu iwezekanavyo. Kama ilivyosemwa tayari, coil ina resistivity 200Ω na imeundwa kwa cca 1, 5V (betri moja ya AA). Wasindikaji wa bei rahisi kawaida hufanya kazi na voltage kubwa kidogo, lakini na betri mbili (3V) zinafanya kazi zote. Moja ya processor ya bei rahisi kwenye soko letu ni Microchip PIC12F629, au moduli maarufu za Arduino. Kisha tutaonyesha jinsi ya kutumia majukwaa yote mawili.
Hatua ya 10: Mifano ya Matumizi ya Saa za Ukuta PIC


Prosesa PIC12F629 zina voltage ya uendeshaji 2.0V - 5.5V. Matumizi ya "betri za mignon" mbili = seli za AA (cca 3V) au mkusanyiko wa AA mbili zinazoweza kuchajiwa (cca 2, 4V) inatosha. Lakini kwa coil ya saa ni mara mbili zaidi ya iliyoundwa. Inasababisha kuongezeka kwa kiwango cha chini cha matumizi. Halafu ni vizuri kuongeza kontena la safu ya chini, ambayo itaunda msuluhishi wa voltage inayofaa. Thamani ya kinga inapaswa kuwa karibu 120Ω kwa nguvu ya mkusanyiko au 200Ω kwa nguvu ya betri iliyohesabiwa kwa mzigo safi wa kupinga. Katika mazoezi thamani inaweza kuwa ndogo kidogo kama 100Ω. Katika nadharia kipinzani kimoja katika safu na coil kinatosha. Bado nina tabia, kutoka kwa sababu fulani, kuona motor kama kifaa cha ulinganifu na kisha kuweka kontena na upinzani nusu (47Ω au 51Ω) karibu na kila terminal ya coil. Ujenzi mwingine unaongeza diode za ulinzi ili kuzuia voltage hasi kwa processor wakati coil imekatika. Kutoka kwa nguvu nyingine ya pato la mkono ya matokeo ya processor ni ya kutosha kuunganisha coil moja kwa moja na processor bila amplifier yoyote. Mpangilio kamili wa processor PIC12F629 itaonekana kama ilivyoelezwa kwenye takwimu 15. Mpangilio huu ni halali kwa saa bila vifaa vya ziada vya kudhibiti. Bado tuna pini moja ya kuingiza / pato GP0 na pembejeo moja tu GP3.
Hatua ya 11: Mifano ya Matumizi ya Saa za Ukuta Arduino



Mara tu tungependa kutumia Arduino, tunaweza kuangalia hati ya data ya processor ATmega328. Processor hiyo ina voltage ya kufanya kazi iliyoainishwa kama 1.8V - 5.5V kwa masafa hadi 4MHz na 2.7V - 5, 5V kwa masafa hadi 10MHz. Tunapaswa kuwa waangalifu na kasoro moja ya bodi za Arduino. Upungufu huo ni uwepo wa mdhibiti wa voltage kwenye bodi. Kiasi kikubwa cha wasimamizi wa voltage wana shida na voltage ya nyuma. Tatizo hili linaelezewa sana na bora kwa mdhibiti 7805. Kwa mahitaji yetu lazima tutumie bodi iliyowekwa alama kama 3V3 (iliyoundwa kwa kuwezesha 3.3V) haswa kwa sababu bodi hii ina kioo 8MHz na inaweza kuwezeshwa kuanzia 2, 7V (inamaanisha AA mbili betri). Kisha utulivu uliotumiwa hautakuwa 7805 lakini ni sawa na 3.3V sawa. Mara moja tungependa kuweka bodi bila kutumia kiimarishaji, tuna chaguzi mbili. Chaguo la kwanza ni, unganisha voltage kwenye pini "RAW" (au "Vin") na + 3V3 (au Vcc) pamoja na amini, kiimarishaji kinachotumiwa kwenye bodi yako hakina ulinzi wa chini ya voltage. Chaguo la pili ni kuondoa tu utulivu. Kwa hii ni vizuri kutumia Arduino Pro Mini, kufuatia skimu ya kumbukumbu. Skimu hizo zina jumper SJ1 (kwenye kielelezo cha 16 kwenye duara nyekundu) iliyoundwa kwa kukataza kiimarishaji cha ndani. Kwa bahati mbaya clones nyingi hazina jumper hii.
Faida nyingine ya Arduino Pro Mini ni kwamba haina vigeuzi vyovyote vya ziada, ambavyo vinaweza kutumia umeme wakati wa kukimbia kawaida (hiyo ni shida ndogo wakati wa programu). Bodi za Arduino zina vifaa vya wasindikaji zaidi na vizuri zaidi, ambazo hazina nguvu ya kutosha kwa pato moja. Halafu ni vizuri kuongeza kwa kiwango cha chini cha pato ndogo kwa kutumia jozi ya transistors. Mpangilio wa kimsingi wa nguvu ya betri utaonekana kama inavyoonyeshwa kwenye takwimu.
Kwa sababu mazingira ya Arduino (lugha ya "Wiring") yana sifa za mifumo ya kisasa ya operesheni (basi kuwa na shida na muda sahihi), ni vizuri kufikiria juu ya utumiaji wa chanzo cha nje cha saa kwa Timer0 au Timer1. Inamaanisha pembejeo T0 na T1, zimewekwa alama kama 4 (T0) na 4 (T1). Oscillator rahisi kutumia kioo kutoka saa ya ukuta inaweza kushikamana na pembejeo zozote zile. Inategemea, ni saa gani sahihi ungependa kutoa. Kielelezo 18 kinaonyesha uwezekano wa tatu. Skimu ya kwanza ni ya kiuchumi sana kwa maana ya vifaa vilivyotumiwa. Inatoa pato kidogo zaidi la pembetatu, lakini kwa upeo kamili wa voltage, basi ni vizuri kuwezesha pembejeo za CMOS. Skimu za pili kwa kutumia inverters, zinaweza kuwa CMOS 4096 au TTL 74HC04. Skematiki hazifanani zaidi kwa kila mmoja, ziko katika fomu ya msingi. Skimu ya tatu kwa kutumia chip CMOS 4060, ambayo inaruhusu unganisho la moja kwa moja la kioo (sawa na 74HC4060 ikitumia skimu moja, lakini maadili tofauti ya vipinga). Faida ya mzunguko huu ni kwamba ina mgawanyiko kidogo wa 14, basi inawezekana kuamua, ni mzunguko gani unatumiwa kama pembejeo ya kipima muda.
Pato la mzunguko huu linaweza kutumika kwa kuingiza T0 (pini 4 na alama ya Arduino) na kisha utumie Timer0 na uingizaji wa nje. Hiyo sio vitendo sana, kwa sababu Timer0 hutumiwa kwa kazi kama kuchelewesha (), milis () au micros (). Chaguo la pili ni unganisha kwa pembejeo T1 (pini 5 na kuashiria Arduino) na utumie Timer1 na pembejeo ya ziada. Chaguo linalofuata ni kuiunganisha ili kukatiza uingizaji wa INT0 (pini 2 kwa kuashiria Arduino) au INT1 (pini 3) na utumie kazi attachInterrupt () na usajili kazi, ambayo huitwa mara kwa mara. Hapa kuna mgawanyiko muhimu unaotolewa na chips 4060, basi simu haipaswi kuwa mara nyingi.
Hatua ya 12: Saa ya Haraka ya Vifaa vya Reli ya Modeli



Kwa maslahi nitawasilisha skimu moja muhimu. Ninahitaji kuunganisha saa zaidi za ukuta kwa udhibiti wa kawaida. Saa za ukuta ziko mbali kila mmoja na juu yake tabia ya mazingira ni ya viwandani zaidi na kelele kubwa ya umeme. Kisha nikarudi kwenye mifumo ya zamani ya mabasi kwa kutumia voltage kubwa kwa mawasiliano. Kwa kweli sikutatua kufanya kazi kwenye betri, lakini nilitumia usambazaji wa umeme uliotulia 12V. Niliongezea ishara kutoka kwa processor kutumia dereva TC4427 (ina upatikanaji mzuri na bei nzuri). Kisha ninabeba ishara 12V na mzigo unaowezekana hadi 0.5A. Niliongeza wagawanyaji rahisi wa vipinga kwa saa za watumwa (kwenye takwimu 18 iliyowekwa alama R101 na R102; Tena ninaelewa motor kama ulinganifu, hiyo sio lazima). Ningependa kuongeza upunguzaji wa kelele kwa kubeba sasa zaidi, kisha nikatumia vipinga mbili 100Ω. Kuzuia voltage kwenye coil ya gari imeunganishwa rectifier daraja B101 sambamba na coil. Daraja limepunguza upande wa DC, basi inawakilisha jozi mbili za diode za kupingana. Diode mbili zinamaanisha voltage kushuka karibu 1.4V, ambayo iko karibu sana na voltage ya kawaida ya kufanya kazi kwa motor. Tunahitaji kupambana na kulinganisha kwa sababu umeme unabadilishana kwa polarity moja na tofauti. Jumla ya sasa inayotumiwa na saa moja ya ukuta wa watumwa basi (12V - 1.5V) / (100Ω + 100Ω) = 53mA. Hiyo ni thamani inayokubalika ili kuepuka kelele.
Hapa kuna swichi mbili kwenye skimu, ni za kudhibiti kazi za ziada za saa ya ukuta (kuzidisha kasi ikiwa kuna mfano wa reli). Saa ya binti ina huduma moja ya kupendeza zaidi. Imeunganishwa kwa kutumia viunganisho viwili vya ndizi 4mm. Wameshikilia saa ya ukuta ukutani. Ni muhimu hasa mara moja ungependa kuweka wakati maalum kabla ya kuanza kutumia, unaweza kuziondoa tu na kisha kuziba tena (kizuizi cha mbao kimewekwa ukutani). Ikiwa ungependa kuunda "Big Ben", unahitaji sanduku la mbao na jozi nne za soketi. Sanduku hilo linaweza kutumika kama uhifadhi wa saa wakati hazitumiki.
Hatua ya 13: Programu
Kutoka kwa mtazamo wa programu ni hali rahisi. Wacha tueleze utambuzi juu ya chip PIC12F629 kwa kutumia kioo 32768Hz (iliyosindikwa kutoka saa asili). Wasindikaji wana mzunguko mmoja wa maagizo mizunguko minne ya oscillator. Mara tu tutakapotumia chanzo cha saa cha ndani kwa Timer yoyote, inamaanisha mizunguko ya maagizo (inayoitwa fosc / 4). Tunapatikana kwa mfano Timer0. Mzunguko wa pembejeo ya muda utakuwa 32768/4 = 8192Hz. Kipima muda ni kidogo (hatua 256) na tunaendelea kufurika bila vizuizi vyovyote. Tutazingatia tu tukio la kufurika kwa saa. Tukio hilo litatokea na masafa 8192/256 = 32Hz. Halafu wakati tungependa kuwa na kunde kwa sekunde moja, lazima tuunde mapigo kila kufurika 32 kwa Timer0. Moja tunataka kuwa na saa inayoendesha kwa mfano mara nne kwa kasi, basi tunahitaji 32/4 = 8 kufurika kwa mapigo. Kwa kesi tunavutiwa kubuni saa na isiyo ya kawaida lakini sahihi, lazima tuwe na jumla ya mafuriko kwa kunde chache sawa na idadi ya kunde 32 ×. Basi basi tunaweza kuzunguka katika tumbo la saa zisizo za kawaida kama hii: [20, 40, 30, 38]. Halafu jumla ni 128, hiyo ni sawa na 32 × 4. Kwa saa ya sinus kwa mfano [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). Kwa saa yetu tutatumia pembejeo mbili za bure kama ufafanuzi wa mgawanyiko kwa kukimbia haraka. Wagawanyaji wa meza kwa kasi huhifadhiwa kwenye kumbukumbu ya EEPROM. Sehemu kuu ya programu inaweza kuonekana kama hii:
MainLoop:
btfss INTCON, T0IF goto MainLoop; subiri Timer0 bcf INTCON, T0IF incf CLKCNT, f btfss SW_STOP; ikiwa STOP switch inafanya kazi, clrf CLKCNT; kaunta wazi kila wakati btfsc SW_FAST; ikiwa kitufe cha haraka haikibonyeza goto NormalTime; mahesabu tu wakati wa kawaida movf FCLK, w xorwf CLKCNT, w btfsc STATUS, Z; ikiwa FCLK na CLKCNT ni sawa picha SendPulse NormalTime: movf CLKCNT, w andlw 0xE0; bits 7, 6, 5 btfsc STATUS, Z; ikiwa CLKCNT> = 32 picha MainLoop goto SendPulse
Programu ya kutumia SendPulse ya kazi, kazi hiyo huunda kunde yenyewe. Kazi ya kuhesabu isiyo ya kawaida / hata ya kunde na kulingana na hiyo huunda pigo kwenye pato moja au la pili. Kazi kwa kutumia ENERGISE_TIME ya kila wakati. Wakati huo wa kufafanua mara kwa mara wakati huo ni coil ya motor yenye nguvu. Kwa hivyo ina athari kubwa kwa matumizi. Mara tu ni ndogo, motor haiwezi kumaliza hatua na wakati mwingine hufanyika, hiyo ya pili hupotea (kawaida wakati mkono wa pili unazunguka nambari 9, wakati unaenda "juu").
TumaPulse:
incOL POLARITY, f clrf CLKCNT btfss POLARITY, 0 goto SendPulseB SendPulseA: bsf OUT_A goto SendPulseE SendPulseB: bsf OUT_B;
Nambari kamili za chanzo zinaweza kupakuliwa mwishoni mwa ukurasa www.fucik.name. Hali na Arduino ni ngumu sana, kwa sababu Arduino kutumia lugha ya programu ya juu na kutumia kioo 8MHz mwenyewe, lazima tuwe waangalifu ni kazi zipi tunazotumia. Matumizi ya ucheleweshaji wa zamani () ni hatari kidogo (ni mahesabu ya wakati kutoka kwa kuanza kwa kazi). Matokeo bora yatakuwa na matumizi ya maktaba kama Timer1. Miradi mingi ya Arduino inahesabu vifaa vya nje vya RTC kama PCF8563, DS1302, nk.
Hatua ya 14: Udadisi

Mfumo huu wa matumizi ya saa za ukutani unaeleweka kama msingi sana. Kuna maboresho mengi. Kwa mfano kulingana na kupima Nyuma EMF (nishati ya umeme inayozalishwa na harakati ya sumaku ya rotor). Kisha elektroniki ina uwezo wa kutambua, mara tu mkono unasonga na ikiwa sivyo, basi kurudia haraka mapigo au usasishe thamani ya "ENERGISE_TIME". udadisi muhimu zaidi ni "hatua ya kurudi nyuma". Kulingana na maelezo inaonekana, hiyo motor imeundwa kwa mwelekeo mmoja wa mzunguko tu na haiwezi kubadilishwa. Lakini kama inavyowasilishwa kwenye video zilizoambatanishwa, mabadiliko ya mwelekeo yanawezekana. Kanuni ni rahisi. Wacha turudi kwenye kanuni ya gari. Fikiria, hiyo motor iko katika hali thabiti ya hatua ya pili (Kielelezo 3). Mara tu tutaunganisha voltage kama inavyowasilishwa katika hatua ya kwanza (Kielelezo 2), motor itaanza kuzunguka kwa mwelekeo unaobadilika. Mara tu mapigo yatakuwa mafupi ya kutosha na yatamalizika kidogo kabla motor kuongeza hali thabiti, itakuwa inazunguka kidogo. Mara moja kwa wakati wa taa hiyo itafika pigo linalofuata la voltage kama ilivyoelezewa kwenye hali ya tatu (Kielelezo 4), basi gari itaendelea na mwelekeo kama ilivyoanza, inamaanisha kwa mwelekeo wa kugeuza. Shida kidogo ni, jinsi ya kuamua muda wa kunde ya kwanza na mara moja kuunda umbali kati ya kunde ya kwanza na ya pili. Na mbaya zaidi ni kwamba, mara kwa mara hizo hutofautiana kwa kila mwendo wa saa na wakati mwingine hutofautiana kwa visa, mikono hiyo huenda "chini" (karibu nambari 3) au juu (karibu nambari 9) na vile vile katika nafasi za upande wowote (karibu nambari 12 na 6). Kwa kesi iliyowasilishwa kwenye video nilitumia maadili na algorithm kama inavyowasilishwa kwa nambari ifuatayo:
#fafanua OUT_A_SET 0x02; sanidi kwa kuweka wazi b wazi
#fafanua OUT_B_SET 0x04; kusanidi kwa nje b kuweka wazi #fafanua ENERGISE_TIME 0x30 #fasili REVERT_TIME 0x06 SendPulse: incf POLARITY, f clrf CLKCNT btfss POLARITY, 0 goto SendPulseB SendPulseA: movlw REVERT_TIME movwf ECNT movlw OUT_ anza na kunde B movwf GPIO RevPulseLoopA:; muda mfupi subiri decfsz ECNT, f goto RevPulseLoopA movlw OUT_A_SET; kisha piga A movwf GPIO picha SendPulseE SendPulseB: movlw REVERT_TIME movwf ECNT movlw OUT_A_SET; anza na kunde A movw GPIO RevPulseLoopB:; muda mfupi subiri decfsz ECNT, f goto RevPulseLoopB movlw OUT_B_SET; kisha piga B movwf GPIO; goto SendPulseE SendPulseE: movlw ENERGISE_TIME movwf ECNT SendPulseLoop: decfsz ECNT, f picha SendPulseLoop bcf OUT_A bcf OUT_B picha MainLoop
Matumizi ya hatua za nyuma huongeza uwezekano wa kucheza na saa ya ukuta. Tunaweza kupata wakati mwingine saa ya ukuta, ambayo ina harakati laini ya mkono wa pili. Hatuna hofu juu ya saa hizo, wanatumia ujanja rahisi. Pikipiki yenyewe ni sawa na motor iliyoelezewa hapa, uwiano wa gia tu ndio mkubwa (kawaida 8: 1 zaidi) na motor inazunguka kwa kasi (kawaida 8x haraka) ambayo hufanya athari ya harakati laini. Mara tu unapoamua kurekebisha saa hizo za ukuta, usisahau kuhesabu kiongezaji kilichoombwa.
Ilipendekeza:
Utunzaji wa saa - Jinsi ya Kuunda Saa Iliyotengenezwa Kutoka kwa Saa !: Hatua 14 (na Picha)

Utunzaji wa saa - Jinsi ya Kuunda Saa Iliyotengenezwa Kutoka kwa Saa !: Halo wote! Huu ni maoni yangu kwa Mashindano ya Mwandishi wa Mara ya Kwanza ya 2020! Ikiwa unapenda mradi huu, ningethamini sana kura yako :) Asante! Hii inayoweza kufundishwa itakuongoza kupitia mchakato wa kujenga saa iliyotengenezwa na saa! Nimeita kwa ujanja
Kuweka DS3231 RTC (Saa Saa Saa) Sahihi, Haraka na Kujiendesha Kutumia Java (+ -1s): Hatua 3

Kuweka DS3231 RTC (Saa Saa Saa) Sahihi, Haraka na Kujiendesha Moja kwa Moja Kutumia Java (+ -1s): Hii inayoweza kufundishwa itaonyesha jinsi ya kuweka wakati kwenye Saa Saa ya DS3231 kwa kutumia Arduino na programu ndogo ya Java inayotumia uhusiano wa serial wa Arduino. Mantiki ya kimsingi ya programu hii: 1. Arduino hutuma ombi la mfululizo
Kutengeneza Saa na M5stick C Kutumia Arduino IDE - RTC Saa Saa Saa Na M5stack M5stick-C: Hatua 4

Kutengeneza Saa na M5stick C Kutumia Arduino IDE | RTC Saa Saa Saa Na M5stack M5stick-C: Halo jamani katika mafundisho haya tutajifunza jinsi ya kutengeneza saa na bodi ya maendeleo ya m5stick-C ya m5stack kutumia Arduino IDE.So m5stick itaonyesha tarehe, saa & wiki ya mwezi kwenye maonyesho
Vigae vya piano kucheza mkono wa Robot: Hatua 5

Vigae vya piano vinavyocheza mkono wa Robot: Kikundi hiki kinaundwa na Wahandisi 2 wa Utengenezaji kutoka UCN, ambao walikuja na wazo nzuri ambalo tunachochewa kufanya na kukuza. Wazo linategemea bodi ya Arduino inayodhibiti mkono wa roboti. Bodi ya Arduino ni akili ya operesheni na
Jinsi ya Kutoa Saa ya Ukuta Mikono Nyepesi na Alama za Muda: Saa 14 (na Picha)

Jinsi ya Kutoa Saa ya Ukuta Mikono ya Nuru na Alama za Muda: Tulitaka saa ya ukuta wa chumba cha kulala na mikono nyepesi na onyesho la vipindi vya dakika tano na robo. Ilibidi isome kwa bidii kutoka kitandani na mwangaza ulibidi udumu usiku wote. Rangi nyepesi inayotumika kwenye saa za kisasa inaelekea