Sisällysluettelo:

Leikkiminen käsiseinäkellolla: 14 vaihetta
Leikkiminen käsiseinäkellolla: 14 vaihetta

Video: Leikkiminen käsiseinäkellolla: 14 vaihetta

Video: Leikkiminen käsiseinäkellolla: 14 vaihetta
Video: Koiranpennun kanssa leikkiminen 2024, Marraskuu
Anonim
Image
Image
Toimintaperiaate
Toimintaperiaate

Elektroninen käsiseinäkello (kaupallinen merkintäkvartsi) ei ole nykyään mitään erikoista. Sitä voi ostaa monista kaupoista. Joissakin niistä ne ovat erittäin halpoja; Hinta noin 2 € (50 CZK). Tämä alhainen hinta voi olla motivaatio katsoa niitä tarkemmin. Sitten huomasin, että ne voivat olla mielenkiintoisia leluja elektroniikan aloittelijoille, joilla ei ole niin paljon resursseja ja jotka ovat pääasiassa kiinnostuneita ohjelmoinnista. Mutta haluaisin esitellä omaa kehitystä muille. Koska halvat seinäkellot kestävät hyvin kokeiluja ja aloittelijoiden kokeiluja, päätin kirjoittaa tämän artikkelin, jossa haluaisin esitellä perusideoita.

Vaihe 1: Toimintaperiaate

Toimintaperiaate
Toimintaperiaate
Toimintaperiaate
Toimintaperiaate

On helppo tunnistaa, että kello käyttää liikkeessä jonkinlaista askelmoottoria. Se, joka jo rikkoi eräät kellot, huomasi, että se on vain yksi kela tavallisen askelmoottorin kahden sijasta. Tässä tapauksessa puhumme "yksivaiheisesta" tai "yksinapaisesta" askelmoottorista. (Tätä nimeä ei käytetä niin usein, se on enimmäkseen analoginen johdannainen muille täyspinoisille askelmoottoreille). Sen, joka jo alkaa ajatella toimintaperiaatetta, on kysyttävä, miten on mahdollista, että moottori pyörii aina oikeaan suuntaan. Toimintaperiaatteesta kuvaus on hyödyllinen seuraavassa kuvassa, joka näyttää vanhempia moottoreita.

Ensimmäisessä kuvassa näkyy yksi kela, jossa on liittimet A ja B, harmaa staattori ja puna-sininen roottori. Roottori on valmistettu kestomagneetista, minkä vuoksi se on värimerkitty, näkyvä, mihin suuntaan magnetoidaan (ei ole niin ratkaisevaa, mikä napa on pohjoinen ja mikä etelä). Staattorissa näkyy kaksi "uraa" roottorin lähellä. Ne ovat erittäin tärkeitä toimintaperiaatteen kannalta. Moottori toimii neljässä vaiheessa. Kuvailemme jokaisen vaiheen käyttämällä neljää kuvaa.

Ensimmäisessä vaiheessa (toinen kuva) moottori saa jännitteen, että liitin A on kytketty positiiviseen napaan ja liitin B negatiiviseen napaan. Se tuottaa magneettivuon, esimerkiksi nuolen suuntaan. Roottori pysähtyy asentoon, jolloin sen asento vastaa magneettivirtaa.

Toinen vaihe seuraa virran katkaisun jälkeen. Sitten staattorin magneettivirta pysäytetään ja magneetilla on taipumus pyöriä asentoon, sen polarisaatio on staattorin magneettisen pehmeän materiaalin suurimman tilavuuden suuntaan. Ja tässä on kaksi ratkaisevaa. Ne osoittavat pienen poikkeaman enimmäistilavuudesta. Sitten roottoria pyöritetään hieman myötäpäivään. Kuten kuvassa 3.

Seuraava vaihe (neljäs kuva) on jännitteeseen kytketty käänteinen napaisuus (liitin A negatiiviseen napaan, liitin B positiiviseen napaan). Se tarkoittaa, että roottorin magneetti pyörii magneettikentän suuntaan kelalla. Roottori käyttää lyhintä suuntaa eli myötäpäivään.

Viimeinen (neljäs) vaihe (viides kuva) on sama kuin toinen. Moottori on jälleen ilman jännitettä. Vain yksi ero on, että magneetin aloitusasento on vastapäätä, mutta roottori siirtyy jälleen materiaalin suurimman tilavuuden suuntaan. Tämä on jälleen hieman myötäpäivään.

Tämä on koko sykli, ensimmäinen vaihe seuraa jälleen. Moottorin liike on vaiheet kaksi ja neljä ymmärrettävä vakaana. Sitten se siirretään mekaanisesti vaihteella 1:30 siirtonopeudella kellon toisen käden asentoon.

Vaihe 2: Toimintaperiaate Jatkuu

Toimintaperiaate Jatkuu
Toimintaperiaate Jatkuu
Toimintaperiaate Jatkuu
Toimintaperiaate Jatkuu
Toimintaperiaate Jatkuu
Toimintaperiaate Jatkuu
Toimintaperiaate Jatkuu
Toimintaperiaate Jatkuu

Kuvissa esitetään jännitteen aaltomuoto moottorin liittimissä. Numerot tarkoittavat kaikkia sekunteja. Todellisuudessa pulssit ovat paljon pienempiä verrattuna tiloihin. Ne ovat noin millisekuntia.

Vaihe 3: Käytännöllinen purkaminen 1

Käytännön purkaminen 1
Käytännön purkaminen 1

Käytin yhtä markkinoiden halvinta seinäkelloa käytännön purkamiseen. Heillä on vähän etuja. Yksi on, että hinta on niin alhainen, että voimme ostaa muutamia niistä kokeita varten. Koska valmistus on vahvasti hintaorientoitunut, ne eivät sisällä monimutkaisia älykkäitä ratkaisuja eivätkä monimutkaisia ruuveja. Todellisuudessa ne eivät sisällä ruuveja, vain muovisia lukituslukkoja. Tarvitsemme vain minimityökaluja. Tarvitsemme esimerkiksi ruuvimeisseliä vain näiden lukkojen poistamiseksi.

Seinäkellon purkamiseen tarvitsemme litteäkärkisen ruuvimeisselin (tai minkä tahansa muun tikun), pyykkitapin ja työmaton, jonka reunat ovat korotetut (tämä ei ole pakollista, mutta helpottavat pyörien ja muiden pienten osien etsimistä).

Vaihe 4: Käytännöllinen purkaminen 2

Käytännön purkaminen 2
Käytännön purkaminen 2
Käytännön purkaminen 2
Käytännön purkaminen 2
Käytännön purkaminen 2
Käytännön purkaminen 2
Käytännön purkaminen 2
Käytännön purkaminen 2

Seinäkellon takana on kolme salpaa. Kaksi yläosaa numeroiden 2 ja 10 kohdalla voidaan avata ja kansilasi avata Kun lasi on auki, on mahdollista vetää kellon osoittimet pois. Niiden sijaintia ei tarvitse merkitä. Palautamme ne aina asentoon 12:00:00 Kun kellon osoittimet ovat pois päältä, voimme irrottaa kellon liikkeen. Siinä on kaksi salpaa (asennossa 6 ja 12). On suositeltavaa vetää liike mahdollisimman suoraan, muuten liike voi jäädä jumiin.

Vaihe 5: Käytännöllinen purkaminen 3

Käytännön purkaminen 3
Käytännön purkaminen 3
Käytännön purkaminen 3
Käytännön purkaminen 3
Käytännön purkaminen 3
Käytännön purkaminen 3

Sitten on mahdollista avata liike. Siinä on kolme salpaa. kaksi asennossa 3 ja 9 tuntia ja sitten kolmas 6 tunnin kuluttua. Avattaessa riittää, että irrotat läpinäkyvän hammaspyörän moottorin ja vaihteiston välistä ja sen jälkeen hammaspyörän, joka on kytketty moottorin roottoriin.

Vaihe 6: Käytännöllinen purkaminen 4

Käytännön purkaminen 4
Käytännön purkaminen 4
Käytännön purkaminen 4
Käytännön purkaminen 4

Moottorikäämi ja staattori tukevat vain yhtä salpaa (12 tunnin kohdalla). Se ei kestä mitään sähkökiskoja, se koskee sähkökiskoja vain puristimella, jolloin irrotus ei ole monimutkaista. Kela on kierretty staattoriin ilman pidikettä. Se voidaan helposti ottaa pois.

Vaihe 7: Käytännöllinen purkaminen 5

Käytännön purkaminen 5
Käytännön purkaminen 5
Käytännön purkaminen 5
Käytännön purkaminen 5
Käytännön purkaminen 5
Käytännön purkaminen 5
Käytännön purkaminen 5
Käytännön purkaminen 5

Kelan alapuolelle on liimattu pieni painettu piirilevy, joka sisältää yhden CoB: n (Chip on Board) ja kuusi lähtöä. Kaksi on tarkoitettu virtaa varten ja ne päätetään suuremmilla neliönmuotoisilla tyynyillä aluksella sähkökiskojen kiinnittämiseksi. kaksi lähtöä on kytketty kristalliin. Muuten, kide on 32768 Hz ja se voidaan juottaa tulevaa käyttöä varten. Kaksi viimeistä lähtöä on kytketty kelaan. Pidin turvallisempana katkaista jälkiä aluksella ja juottaa johdot jo olemassa oleviin tyynyihin. Kun yritin irrottaa kelan ja liittää johdon suoraan kelaan, repin aina kelalangan irti tai vaurioitin kelaa. Uusien johtojen juottaminen kortille on yksi mahdollisuus. Sanotaan, että primitiivisempi. Luovampi tapa on liittää kela virtalähteisiin ja pitää virtakiskot akkukoteloon liittämistä varten. Sitten elektroniikka voidaan laittaa akkukotelon sisään.

Vaihe 8: Käytännöllinen purkaminen 6

Käytännön purkaminen 6
Käytännön purkaminen 6
Käytännön purkaminen 6
Käytännön purkaminen 6

Juotoksen laatu voidaan tarkistaa ohmimittarilla. Kelan resistanssi on noin 200Ω. Kun kaikki on kunnossa, asennamme seinäkellon takaisin. Yleensä heitän sähkökiskot pois, ja sitten minulla on enemmän tilaa uusille johdoilleni. Valokuvat otetaan ennen sähkökiskojen heittämistä. Unohdan ottaa seuraavan kuvan, kun ne poistetaan.

Kun olen suorittanut liikkeen loppuun, testaan sitä käyttämällä toisen kellon osoitinta. Laitan käden sen akselille ja kytken virran (käytin CR2032 -kolikkoakkua, mutta AA 1, 5V voidaan myös käyttää). Liitä vain virta yhdellä napaisuudella johtoihin ja sitten vastakkaiseen napaisuuteen. Kellon täytyy tikittää ja käden liikkua yhden sekunnin. Kun sinulla on vaikeuksia siirtää liike loppuun, koska johdot ovat enemmän paikallaan, yksinkertaisesti kierrä kelamuurahaista ja aseta se vastakkaiselle puolelle. Kun se ei käytä sähkökiskoja, sillä ei ole vaikutusta kellon liikkeeseen. Kuten jo todettiin, kädet takaisin laitettaessa ne on asetettava osoittamaan klo 12.00. On oltava oikea etäisyys tunnin ja minuutin osoittimen välillä.

Vaihe 9: Esimerkkejä seinäkellon käytöstä

Suurin osa yksinkertaisista esimerkeistä näyttää aikaa, mutta erilaisilla muutoksilla. Erittäin suosittu muutos on nimeltään "Vetinari Clock". Osoittaa Terry Pratchettin kirjaa, jossa herra Vetinarilla on odotushuoneessa seinäkello, joka tikittää epäsäännöllisesti. Tuo epäsäännöllisyys häiritsee odottavia ihmisiä. Toinen suosittu sovellus on "sinikello". Se tarkoittaa kelloa, joka kiihdyttää ja hidastaa sinuskäyrän perusteella, sitten ihmisillä on tunne, he purjehtivat aalloilla. yksi suosikeistani on "lounasaika". Tämä muutos tarkoittaa, että kello kulkee hieman nopeammin ajassa 11-12 tunnin (0,8 sekuntia) välillä lounaalle aikaisemmin; ja hieman hitaammin lounasaikaan 12-13 tunnin (1, 2 sekuntia) välillä, jotta sinulla on hieman enemmän aikaa lounaalle ja korvata menetetty aika.

Suurimmalle osalle näistä muutoksista riittää yksinkertaisimman suorittimen käyttäminen, jonka toimintataajuus on 32768 Hz. Tämä taajuus on erittäin suosittu kellonvalmistajien keskuudessa, koska tällä taajuudella on helppo valmistaa kristalli, ja sen kieltäminen on helppoa binaarijakoa sekunneiksi. Tällä taajuudella on kaksi hyötyä prosessorille: voimme helposti kierrättää kristallin uudelleen kellosta; ja prosessoreilla on yleensä minimaalinen kulutus tällä taajuudella. Kulutus on asia, jota ratkaisemme niin usein, kun pelaamme seinäkellolla. Erityisesti voidakseen käyttää kelloa pienimmästä akusta mahdollisimman pitkään. Kuten jo todettiin, kelan resistanssi on 200 Ω ja se on suunniteltu noin 1, 5 V: lle (yksi AA -paristo). Halvimmat prosessorit toimivat yleensä hieman suuremmalla jännitteellä, mutta kahdella paristolla (3 V), jotka toimivat kaikilla. Yksi markkinoiden halvimmista suorittimista on Microchip PIC12F629 tai erittäin suosittu Arduino -moduuli. Sitten näytämme, miten molempia alustoja käytetään.

Vaihe 10: Esimerkkejä seinäkellon käytöstä PIC

Esimerkkejä seinäkellon käytöstä PIC
Esimerkkejä seinäkellon käytöstä PIC
Esimerkkejä seinäkellon käytöstä PIC
Esimerkkejä seinäkellon käytöstä PIC

Prosessorin PIC12F629 käyttöjännite on 2,0 V - 5,5 V. Kahden "mignon -akun" = AA -kennojen (noin 3 V) tai kahden AA -ladattavan AA -akun (noin 2, 4 V) käyttö riittää. Mutta kellokelalle se on kaksi kertaa enemmän kuin suunniteltu. Se aiheuttaa vähintään ei -toivottua kulutuksen kasvua. Sitten on hyvä lisätä vähintään sarjavastus, joka luo sopivan jännitteenjakajan. Vastuksen arvon on oltava noin 120 Ω akun teholle tai 200 Ω akun teholle laskettuna puhtaalle resistiiviselle kuormalle. Käytännössä arvo voi olla hieman pienempi, noin 100Ω. Teoriassa yksi vastus sarjassa, jossa on kela, riittää. Minulla on edelleen taipumus jostain syystä nähdä moottori symmetrisenä laitteena ja laittaa sitten vastus, jonka vastus on puolet (47 Ω tai 51 Ω), jokaisen kelaliittimen viereen. Jotkut rakenteet lisäävät suojadiodit, jotta vältetään negatiivinen jännite prosessorille, kun kela irrotetaan. Toisaalta prosessorin lähtöteho riittää kytkemään kelan suoraan prosessoriin ilman vahvistinta. Prosessorin PIC12F629 täydellinen kaavio näyttää kuvassa 15 kuvatulta. Tämä kaavio pätee kelloihin, joissa ei ole muita ohjauselementtejä. Meillä on edelleen käytettävissä yksi tulo/lähtö nasta GP0 ja yksi tulo vain GP3.

Vaihe 11: Esimerkkejä seinäkellon käytöstä Arduino

Esimerkkejä seinäkellon käytöstä Arduino
Esimerkkejä seinäkellon käytöstä Arduino
Esimerkkejä seinäkellon käytöstä Arduino
Esimerkkejä seinäkellon käytöstä Arduino
Esimerkkejä seinäkellon käytöstä Arduino
Esimerkkejä seinäkellon käytöstä Arduino

Kun haluamme käyttää Arduinoa, voimme katsoa ATmega328 -prosessorin tietolomaketta. Tämän prosessorin käyttöjännite on määritelty 1,8 V - 5,5 V taajuuteen 4 MHz asti ja 2,7 V - 5,5 V taajuuteen 10 MHz asti. Meidän on oltava varovaisia yhden Arduino -levyjen puutteen kanssa. Tämä puute on jännitesäätimen läsnäolo aluksella. Suurella määrällä jännitesäätimiä on ongelmia käänteisjännitteen kanssa. Tämä ongelma on laajasti ja parhaiten kuvattu säätimelle 7805. Meidän on käytettävä tarpeisiimme 3V3 -korttia (suunniteltu 3,3 V: n jännitteelle) erityisesti siksi, että tämä levy sisältää 8 MHz: n kristallia ja se voi saada virtaa alkaen 2, 7 V (se tarkoittaa kahta AA: ta) paristot). Tällöin käytetty vakaaja ei ole 7805, vaan sen 3,3 V: n ekvivalentti. Kun haluamme kytkeä levyn ilman stabilointiainetta, meillä on kaksi vaihtoehtoa. Ensimmäinen vaihtoehto on kytkeä jännite nastoihin "RAW" (tai "Vin") ja +3V3 (tai Vcc) yhteen ja uskoa, että piirilevyssäsi käytetty stabilisaattori ei ole alijännitesuojattu. Toinen vaihtoehto on yksinkertaisesti poistaa stabilisaattori. Tätä varten on hyvä käyttää Arduino Pro Miniä viittauskaavion mukaisesti. Kaaviossa on hyppyjohdin SJ1 (kuvassa 16 punaisella ympyrällä), joka on suunniteltu sisäisen vakaimen irrottamiseen. Valitettavasti suurin osa klooneista ei sisällä tätä hyppääjää.

Toinen Arduino Pro Minin etu on, että se ei sisällä muita muuntimia, jotka voivat kuluttaa sähköä normaalikäytön aikana (mikä on pieni komplikaatio ohjelmoinnin aikana). Arduino -levyt on varustettu yhä mukavammilla prosessoreilla, joilla ei ole tarpeeksi virtaa yhdelle lähdölle. Sitten on hyvä lisätä vähintään pieni lähtövahvistin käyttämällä transistoriparia. Akkuvirran peruskaavio näyttää kuvan mukaiselta.

Koska Arduino -ympäristössä ("johdotuskieli") on nykyaikaisten käyttöjärjestelmien ominaisuuksia (silloin on ongelmia tarkan ajoituksen kanssa), on hyvä ajatella ulkoisen kellolähteen käyttöä Timer0: lle tai Timer1: lle. Se tarkoittaa tuloja T0 ja T1, ne on merkitty 4 (T0) ja 4 (T1). Yksinkertainen oskillaattori, joka käyttää seinäkellon kristallia, voidaan liittää mihin tahansa näistä tuloista. Se riippuu siitä, kuinka tarkan kellon haluat tuottaa. Kuva 18 esittää kolme perusmahdollisuutta. Ensimmäinen kaavio on erittäin taloudellinen käytettyjen komponenttien kannalta. Se tarjoaa vähemmän kolmikulmaista lähtöä, mutta täydellä jännitealueella, joten se on hyvä CMOS -tulojen virransyöttöön. Toinen kaavio inverttereistä, ne voivat olla CMOS 4096 tai TTL 74HC04. Kaaviot ovat vähemmän samankaltaisia toistensa kanssa, ne ovat perusmuodossa. Kolmas kaavio käyttäen sirua CMOS 4060, joka mahdollistaa suoran liitännän kiteeseen (vastaava 74HC4060 käyttäen samaa kaaviota, mutta eri arvot vastuksia). Tämän piirin etuna on, että se sisältää 14 -bittisen jakajan, jolloin on mahdollista päättää, mitä taajuutta käytetään ajastintulona.

Tämän piirin lähtöä voidaan käyttää tuloon T0 (nasta 4 Arduino -merkinnällä) ja sitten käyttää ajastinta 0 ulkoisen tulon kanssa. Tämä ei ole niin käytännöllistä, koska ajastinta0 käytetään toimintoihin, kuten delay (), milis () tai micros (). Toinen vaihtoehto on liittää se tuloon T1 (nasta 5, jossa on Arduino -merkintä) ja käyttää ajastinta 1 ylimääräisellä tulolla. Seuraava vaihtoehto on kytkeä se keskeytystuloon INT0 (nasta 2 Arduino -merkinnässä) tai INT1 (nasta 3) ja käyttää toimintoa attachInterrupt () ja rekisteritoimintoa, jota kutsutaan säännöllisesti. Tässä on hyödyllinen jakaja, jonka tarjoavat sirut 4060, joten puhelu ei saa olla niin usein.

Vaihe 12: Nopea kello rautatiemalliin

Nopea kello rautateiden laitteille
Nopea kello rautateiden laitteille
Nopea kello rautateiden laitteille
Nopea kello rautateiden laitteille
Nopea kello rautateiden laitteille
Nopea kello rautateiden laitteille

Kiinnostuksen vuoksi esitän yhden hyödyllisen kaavion. Minun on kytkettävä enemmän seinäkelloja yhteiseen ohjaukseen. Seinäkellot ovat kaukana toisistaan, ja niiden ympäristön ominaisuus on teollisempi ja suurempi sähkömagneettinen melu. Sitten palasin takaisin vanhoihin väyläjärjestelmiin, jotka käyttivät suurempaa jännitettä viestintään. En tietenkään ratkaissut akulla työskentelyä, mutta käytin stabiloitua 12V virtalähdettä. Vahvistin signaalia prosessorista käyttämällä ohjainta TC4427 (sillä on hyvä saatavuus ja hyvä hinta). Sitten kannan signaalia 12V mahdollisella kuormalla jopa 0,5A. Lisäsin orjakelloihin yksinkertaisia vastusjakajia (kuvassa 18 merkinnät R101 ja R102; Jälleen ymmärrän moottorin symmetriseksi, se ei ole välttämätöntä). Haluaisin lisätä melun vähentämistä kuljettamalla enemmän virtaa, sitten käytin kahta vastusta 100Ω. Moottorikäämin jännitteen rajoittamiseksi kytketään sillan tasasuuntaaja B101 rinnakkain kelan kanssa. Sillalla on oikosulku DC-puolella, sitten se edustaa kahta paria rinnakkaisia diodeja. Kaksi diodia tarkoittaa jännitteen putoamista noin 1,4 V, mikä on hyvin lähellä moottorin normaalia käyttöjännitettä. Tarvitsemme rinnakkaisvastausta, koska virta kytketään vuorotellen yhteen ja vastakkaiseen napaisuuteen. Yhden orjaseinäkellon käyttämä kokonaisvirta on silloin (12V - 1,5V) / (100Ω + 100Ω) = 53mA. Tämä arvo on hyväksyttävä melun välttämiseksi.

Tässä on kaksi kytkentäkaaviota, ne on tarkoitettu seinäkellon lisätoimintojen ohjaamiseen (nopeuskerroin rautamallien tapauksessa). Tytärkellolla on vielä yksi mielenkiintoinen ominaisuus. Ne on kytketty kahdella 4 mm banaaniliittimellä. He pitävät seinäkelloa seinällä. Siitä on hyötyä erityisesti silloin, kun haluat asettaa tietyn ajan ennen käytön aloittamista, voit yksinkertaisesti irrottaa ne pistorasiasta ja kytkeä sitten takaisin (puupalikka kiinnitetään seinään). Jos haluat luoda "Big Benin", tarvitset puulaatikon, jossa on neljä paria pistorasioita. Tätä laatikkoa voidaan käyttää kellojen säilytyksenä, kun niitä ei käytetä.

Vaihe 13: Ohjelmisto

Ohjelmiston kannalta tilanne on suhteellisen yksinkertainen. Kuvataan toteutusta sirulla PIC12F629 käyttäen kristallia 32768Hz (kierrätetty alkuperäisestä kellosta). Prosessorilla on yksi käskysykli, joka on neljä oskillaattorisykliä pitkä. Kun käytämme sisäistä kellolähdettä mille tahansa ajastimelle, se tarkoittaa ohjejaksoja (nimeltään fosc/4). Meillä on saatavilla esimerkiksi Timer0. Ajastimen tulotaajuus on 32768 /4 = 8192 Hz. Ajastin on kahdeksan bittinen (256 askelta) ja pidämme sen ylivuotona ilman esteitä. Keskitymme vain ajastimen ylivuototapahtumaan. Tapahtuma tapahtuu taajuudella 8192 /256 = 32 Hz. Sitten kun haluamme pulsseja yhden sekunnin, meidän on luotava pulssi Aimer0: n jokaisen 32 ylivuoton jälkeen. Haluaisimme kellon käyvän esimerkiksi neljä kertaa nopeammin, sitten tarvitsemme pulssin 32 /4 = 8 ylivuotoa. Tapauksissa, joissa olemme kiinnostuneita suunnittelemaan kellon epäsäännöllisellä mutta tarkalla tavalla, meillä on oltava ylivuotojen summa muutamille pulsseille sama kuin 32 × pulssien lukumäärä. Sitten voimme etsiä epäsäännöllisiä kellomatriiseja seuraavasti: [20, 40, 30, 38]. Sitten summa on 128, eli sama kuin 32 × 4. Esimerkiksi sinikello [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). Kellossamme käytämme kahta ilmaista tuloa jakajan määritelmänä nopealle ajolle. Taulukon dith -jakajat nopeuksille tallennetaan EEPROM -muistiin. Ohjelman pääosa voi näyttää tältä:

MainLoop:

btfss INTCON, T0IF goto MainLoop; odota ajastinta0 bcf INTCON, T0IF incf CLKCNT, f btfss SW_STOP; jos STOP -kytkin on aktiivinen, clrf CLKCNT; tyhjennä laskuri joka kerta btfsc SW_FAST; jos pikanäppäintä ei paineta, siirry NormalTime; laske vain normaaliaika movf FCLK, w xorwf CLKCNT, w btfsc STATUS, Z; jos FCLK ja CLKCNT ovat samat SendPulse NormalTime: movf CLKCNT, w andlw 0xE0; bittiä 7, 6, 5 btfsc STATUS, Z; jos CLKCNT> = 32 goto MainLoop siirtyi SendPulseen

Ohjelmoi käyttämällä SendPulse -toimintoa, joka luo itse moottoripulssin. Toimintojen lukumäärä pariton/parillinen pulssi ja sen perusteella luo pulssin yhteen tai toiseen lähtöön. Toiminto, jossa käytetään jatkuvaa ENERGISE_TIME -aikaa. Tämä vakio määrittelyaika sen aikana on moottorikäämin jännitteinen. Sillä on siis suuri vaikutus kulutukseen. Kun se on niin pieni, moottori ei pysty lopettamaan askelta ja joskus tapahtuu, että sekunti eksyy (yleensä silloin, kun käytetty käsi kiertää numeron 9 ympäri, kun se menee "ylöspäin").

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 boop

Kaikki lähdekoodit voi ladata sivun lopusta www.fucik.name. Tilanne Arduinon kanssa on hieman monimutkainen, koska Arduino käyttää korkeampaa ohjelmointikieltä ja omaa 8MHz: n kristallia, joten meidän on oltava varovaisia mitä toimintoja käytämme. Klassisen viiveen () käyttö on vähän riskialtista (se laskee ajan toiminnon alkamisesta). Paremmat tulokset saadaan käyttämällä kirjastoja, kuten Timer1. Monet Arduino -projektit luottavat ulkoisiin RTC -laitteisiin, kuten PCF8563, DS1302 jne.

Vaihe 14: Uteliaisuuksia

Tämä seinäkellomoottorin käyttöjärjestelmä ymmärretään hyvin yksinkertaiseksi. Parannuksia on paljon. Esimerkiksi perustuen Back EMF: n mittaamiseen (roottorimagneetin liikkeen tuottama sähköenergia). Sitten elektroninen laite pystyy tunnistamaan, kun kädet ovat siirtyneet ja jos ei, niin toista pulssi nopeasti tai päivitä "ENERGISE_TIME" -arvo. hyödyllisempi uteliaisuus on "käänteinen askel". Kuvauksen perusteella näyttää siltä, että moottori on suunniteltu vain yhtä pyörimissuuntaa varten, eikä sitä voi muuttaa. Mutta kuten liitteenä olevissa videoissa esitetään, suunnan muuttaminen on mahdollista. Periaate on yksinkertainen. Palataan moottoriperiaatteeseen. Kuvittele, että moottori on toisessa vaiheessa vakaassa tilassa (kuva 3). Kun liitämme jännitteen ensimmäisen vaiheen mukaisesti (kuva 2), moottori aloittaa loogisesti pyörimisen vastakkaiseen suuntaan. Kun pulssi on tarpeeksi lyhyt ja päättyy hieman ennen kuin moottori nostaa vakaan tilan, se loogisesti välkkyy hieman. Välähdyksen aikana saapuu seuraava jännitepulssi, kuten on kuvattu kolmannessa tilassa (kuva 4), niin moottori jatkaa suunnallaan, kuten se alkoi, eli päinvastaiseen suuntaan. Pieni ongelma on, kuinka määritetään ensimmäisen pulssin kesto ja kerran luodaan etäisyys ensimmäisen ja toisen pulssin välille. Ja pahinta on, että nämä vakiot vaihtelevat kullekin kellon liikkeelle ja joskus vaihtelevat tapauksille, että kädet "laskevat" (noin numero 3) tai ylöspäin (noin numero 9) ja myös neutraalissa asennossa (noin numerot 12 ja 6). Videossa esitetyssä tapauksessa käytin arvoja ja algoritmia seuraavan koodin mukaisesti:

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

#define OUT_B_SET 0x04; config for out b määritä selkeä #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 aloita pulssilla B movwf GPIO RevPulseLoopA:; lyhyt odotus decfsz ECNT, f goto RevPulseLoopA movlw OUT_A_SET; sitten pulssi A movwf GPIO siirtyi SendPulseE SendPulseB: movlw REVERT_TIME movwf ECNT movlw OUT_A_SET; aloita pulssilla A movwf GPIO RevPulseLoopB:; lyhyt odotus decfsz ECNT, f goto RevPulseLoopB movlw OUT_B_SET; sitten pulssi 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

Käänteisten vaiheiden käyttö lisää mahdollisuutta pelata seinäkellolla. Voimme löytää joskus seinäkellon, jolla on sujuva toisen käden liike. Emme pelkää niitä kelloja, he käyttävät yksinkertaista temppua. Moottori itsessään on sama kuin tässä kuvattu moottori, vain välityssuhde on suurempi (yleensä 8: 1 enemmän) ja moottori pyörii nopeammin (yleensä 8x nopeammin), mikä saa aikaan tasaisen liikkeen. Kun olet päättänyt muuttaa näitä seinäkelloja, älä unohda laskea pyydettyä kerrointa.

Suositeltava: