lauantai 5. helmikuuta 2011

Nopeusrajoitin


Rakentelin ajankulukseni moposkootteriin sähköisen nopeusrajoittimen. Idea syntyi, kun mielestäni alkuperäinen nopeusrajoitin ei ollut hyvä. Alun perin rajoitus toimi muutamalla sorvatulla prikalla variaattorissa. Kun mopolla ajettiin täydellä nopeudella, eli 40km/h tuntinopeudella variaattori ei päässyt sulkeutumaan kokonaan ja kierrokset nousivat tavallista korkeammaksi. Tästä sitten seurasi suurempi bensiinin kulutus ja luultavasti myös moottorin lyhyempi käyttöikä.
No kaupalliset rajoittimethan kaiketi toimivat kierroslukua rajoittamalla. Joten tämä lienee oikea tapa toteuttaa sähköinen nopeusrajoitin. Sähköisellä sytytyksellä toteutetussa mopon moottorissa on hall- anturi, jolla tutkitaan moottorin asentoa. Tämä tieto välitetään sytytysyksikköön, joka generoi sitten kipinän oikealla hetkellä. Loogisesti nopeusrajoitin voitaisiin rakentaa tähän väliin. Eli kun moottorilta tulee asentopulssi, niin nopeudenrajoitin tekee vastaavan näköisen pulssin sytytysyksikölle, vain mikäli nopeus on alle 40km/h. Nopeuden kasvaessa yli sallitun, moottorin ottamaa kierroslukua ryhdytään rajoittamaan, rajoittamalla sen kipinää. Esimerkiksi niin että nopeuden ollessa 41km/h, generoidaan vain joka toinen kipinä. Nopeuden ollessa 42km/h voitaisiin generoida vain joka kolmas, joka neljäs tai vaikka joka kymmenes pulssi. Tässäpä siis on perusidea nopeusrajoittimesta. Tässä vielä oskilloskooppi kuva hall-anturin signaalista tyhjänkäynnillä










Nopeusanturiksi laitoin induktiivisen anturin. Asensin anturin etuhaarukkaan tunnistamaan jarrulevyn kiinnityspultteja, joita oli kolme. Eli toisinsanoen pulsseja tulee siis kolme yhdellä kierroksella. Tämä pulssianturi oli sinällään vähän huono, koska sen käyttöjännitealue oli 9-30V, joten käytännössä pulssianturin lähtöön, tai rajoittimen tuloon piti rakentaa jännitteen pudotus. Käyännössä katsoin helpoimmaksi rakentaa tämän rajoittimen levylle kahdella jännitteenjakovastuksella.
Sitten vaan protolevyn rakennukseen. No taas pitää jotakin myöntää. Rakensin tämän laitteen jo viimekesänä ja en silloin ottanut levystä kuvaa ollenkaan, joten kuvia ei siis ole. Sen sijaan kytkentäkaavio on.









Laitoin ensin levyn virtajohdot suoraan akkuun, että saa testailla. Sitten piti miettiä ohjelmistoa. Aluksi merkitsin mopon renkaaseen ja asfalttiin liidulla viivan. Työnsin mopoa niin, että rengas meni tasan yhden kierroksen, ja piirsin liidulla uuden viivan. Viivojen väli 142cm ja yhdellä kierroksella 3 pulssia. Tästä syntyi sitten seuraava taulukko. (Josta nyt en ota mitään vastuuta, se on ehkä oikein :) ) Eli, 24 pulssia sekunnissa vastaa 40,89 kilometrin tuntinopeutta, joka tarkoittaa, että tulevien nopeuspulssien väli on 42 millisekuntia.

24 p/s = 40,89 km/h -> 42ms/väli
25 p/s = 42,60 km/h -> 40ms/väli
26 p/s = 44,30 km/h -> 38ms/väli
27 p/s = 46,00 km/h -> 37ms/väli
28 p/s = 47,71 km/h -> 36ms/väli

Näillä eväillä suunnittelin ohjelmistoa rajoittimeen. Kokeilin ensin niin, että 24:llä pulssilla sekunnissa luodaan 3/4 kipinöistä, 25:llä 2/4 kipinöistä, 26:lla 1/4 kipinöistä ja 27:llä kone sammutetaan kokonaan. Mietin mielessäni, että 25 pulssia tarkoittaa tehon puoliintumista, koska puolet kipinöistä on pois. Käytännön testit osoittivat, että yksi kipinä neljästä riittää kasvattamaan mopon nopeuden niin suureksi, että rajoitin sammutti mopon kokonaan. Yritin kasvattaa ja muuttaa sytytysrajoitus sääntöjä eritavoin, mutta en saanut rajoitinta toimimaan haluamallani tavalla. Joten muutin ajatuksen toisin päin.

Uusi versio toimi sitten niin, että lisäsin muuttujan arvoa 1ms:n välein yhdellä. Kun nopeuspulssi tulee, tutkin muuttujan arvoa. Jos nopeuspulssien väli on vähemmän kuin 40ms kipinää ei luoda, muissa tapauksissa se luodaan normaalisti. Koska tämä tehtiin jokaisella nopeusanturin antamalla pulssilla, oli nopeuden rajoitus valtavan nopea. Tämä sovellus on sittemmin jäänyt käyttöön. Tosin pulssien väli muutettiin 40ms:sta 34ms:n. Koska todellinen nopeus tarkistettiin. Virhe syntyy todennäköisesti siitä, että prosessorissa on käytössä sisäinen kello, jossa voi olla suurikin virhe. Lisäksi aikojen mittauksessa on käytössä delay -funktio, joka on hyvinkin epätarkka. Tässäpä olisi siis jo parannusehdotus: Sisäinen kello käyttöön ja keskeytysaliohjelmaan pyörimään ajan mittaus. Muita parannusehdotuksia tulee tähän samaan. Jos nopeusanturin irroittaa, tai se ei jostakin syystä mittaa mopon nopeutta enää, on rajoitin mitätön, koska se ei enää rajoita ajonopeutta.


Tässä vielä rajoittimen Tinyn lähdekoodit: rajoitin.c


Ainiin, koodissa on vielä ohitus nopeusrajoittimelle. Tätä en ottanut itsellenikään käyttöön vaan tämä oli ainoastaan testivaiheessa mukana, että näin prosessorin kerkeävän mukana suuremmissakin nopeuksissa.


Asennuksessa ei kai mitään sen kummallisempaa ollut. Hauska kommellus kuitenkin kävi. Mittasin johtosarjasta sellaista johtoa, jossa olisi sähkö kun virrat ovat päällä ja sähkötön, kun virrat ovat pois. Tällainen johto löytyikin ja asensin rajoittimen saamaan käyttöjännitteensä tästä johdosta. Kaikki toimi odotetulla tavalla, kunnes olin menossa huoltoasemalle tankille ja bensiinin loppumisesta ilmoittava valo yllättäen syttyi. Yhtäaikaa valon syttyessä mittaamastani käyttöjännitejohdosta katosikin sähkö. Rajoitin ei saanut enää käyttöjännitettä ja mopo sammui. Viimeinen kilometri tankille mentiin sitten hieman toisessa reunassa istuen, mopo kun kulki kallellaan, merkkivalo ei syttynyt joten rajoitin sai virtansa. Takaisin kotiin, ja etsimään johtosarjasta parempaa johtoa.




4 kommenttia:

  1. Kiitos hyvästä ideasta ja ohjeesta. Koitin tehdä tuollaisen mutta en saa omassa mopossani toimimaan. Rajoitin kyllä antaa ulos signaalin kun anturijohtoon tulee pulssi, mutta kipinää ei tulpalle asti tule eli jostain syystä rajoittimen antama signaali ei kelpaa cdi boksille. Ilmeisesti se haluaa koko tuon pulssin, kun kokeilin laittaa anturijohdon ja cdi boksin väliin diodin niin että cdi:lle menee vain positiivinen pulssi, kipinää ei tule, eikä myöskään jos käännän diodin toisinpäin jolloin sinne menee vain negatiivinen pulssi. Ilmeisesti mulla on ns. vaihtovirta-cdi kun taas sulla taitaa olla tasavirta-cdi, tai sitten teen jotain väärin. Millähän tuon sais toimimaan?

    VastaaPoista
  2. Moi, juu vaikuttaisi tuon tekemäsi dioditestin perusteella, että cdi-purkki vaatisi tosiaan sekä negatiivisen, että positiivisen pulssin voidakseen luoda kipinän. Periaatteessahan diodiin myös jää jännitehäviötä ~0,7V, mutta se on kuitenkin verrattaen pieni jännite, joten en usko sen oireilevan näin.

    Periaatteessa kikkailemalla 7805 ja 7905 regulaattoreilla voisi saada aikaiseksi, sekä positiivisen että negatiivisen jännitteen. Sitte transistoriohjuas noille molemmille ja Atmel ohjaamaan molempia päälle ja pois peräkkäin.

    Tietenkin järjestelmällisin tapa olisi aloittaa homma mittaamalla millaista pulssia johdossa todellisuudessa menee? Onko sinulla mahdollisuutta mitata oskilloskoopilla mitä johdossa kulkee kun mopo käy? Mikäli skooppi näyttää pulssin olevan vastaavan typpinen kuin minulla, eikä mopo kuitenkaan käy ja jos hall-anturin ja cdi-purkin välillä on vain diodi kummin päin hyvänsä (ei siis rajoitintakaan), cdi-purkki selkeästi tarvitsee molemmat puolet hall-anturin pulssista.

    Näiden jälkeen voisi hyvinkin askarrella tinyn pulssittamaan molemman puolen pulsseja ja vieläpä oikeassa järjestyksessä. Tätä askarrellessa kannattaa pitää vielä skooppi lähellä, niin voi olla varma, että tiny potkii sitten pulssit oikein ulos. Sisäänhän tinyn ei tarvi lukea kuin ensimmäinen pulssi (olkoon se sitten negatiivinen vai positiivinen) ja sen perusteella voidaan "sokeana" luoda molemmat pulssit.

    Toivottavasti kommentistani oli apua.

    VastaaPoista
  3. Juu no AVRfreaks foorumin ja Googlen avulla onnistuin saamaan värkin jotenkin toimimaan. Piti rakentaa jännitteenjakokytkentä jolla onnistui saamaan tiettyyn väliin negatiivisen jännitteen kun mikropiiri ei anna signaalia ulos, ja kun signaalia tulee, niin välin jännite muuttuukin positiiviseksi ja tämä näytti kelpaavan cdi:lle kun alkoi antamaan kipinää. Sain mopon jopa käyntiinkin mutta kävi erittäin huonosti. Säätelin koodista viiveitä ym. ilman tulosta monta tuntia ja olin jo aikeissa luovuttaa kunnes rupesin ihan puolivitsillä näpelöimään piirilevyn kuparipuolelta sormilla jos siellä olisikin jokin huono juotos tai jos se alkaisikin toimia jos sormilla sattuisi tekemään oikosulun sopivaan paikkaan (olen aiemminkin saanut juttuja toimimaan näin :-D ) ja kas ihmettä, mopo ottaa heti kierroksia normaalisti kun laitoin peukun tuon mikropiirille tulevan sisääntulosignaalin ensimmäisen diodin napojen väliin :D. Yritin sitten ohittaa diodin, ei toiminut, tai kytkeä diodin kanssa rinnakkain erilaisia vastuksia mutta ei toiminut. Pitäisikö siihen laittaa jokin häiriönsuoto konkka, toinen pää maahan ja toinen tuohon sisääntuloon? Vai 1 megaohmin vastus diodin kanssa rinnakkain, koska mittasin peukalon resistanssin ja se oli 1 megaohmi :D

    VastaaPoista
  4. Hei, vastus tuskin helpottaa tilannetta tässätapauksessa, mutta kuten itsekin ehdottelit, suotokonkat voisivat olla järkeviä. Koknkkien mitoituksessa kannattaa käyttää vähän aikaa, ettei konkat muotoile pulssia liikaa. Vastaavasti kuitenkin niin, että se suodattaisi häiriöitä pois. Samoin sisääntulojännite, siis käyttöjännite kannattaa suodattaa. Sisääntuloon kannattaa itseasiassa laittaa aika runsaastikin kapasitanssia.

    Tuo sormella korjattu vika voisi vaikuttaa myös kylmäjuotokselta tai sitä että prosarin käyttämättömät nastat kelluu ja ovat antenneita. Käyttämmättömät nastat voisi periaatteessa kytkeä vaikka 10kOhm:n vastuksella maahan.

    VastaaPoista