pulssilaskuri

Olisi tarkoitus rakentaa pulssilaskuri, jota ohjataan pulssipyörältä josta signaalit pulse up ja pulse down.
Toteutus BCD up/down laskurilla.
Ongelmana on 0-kohta, alaspäin laskettaessa laskurihan siirtyy 9 tilaan 0 jälkeen.

Kuinkahan olisi toteutettavissa, jotta laskuri
laskisi esim -1,-2, jne 0-jälkeen ja tietenkin ylöspäin laskettaessa 1,2, jne 0-jälkeen ???
232276
Äänestä

Muut lukivat myös

Vastaukset 23

Vanhimmat

Muistaakseni niissä BCD up/down laskureissa on "carry" pulssin lisäksi "borrow" jota voi käyttää - merkin ohjaukseen.

Äänestä
  • Onhan niissä, mutta ongelma on, laskuri 0:n jälkeen näyttää 9:ä, näin olen ymmärtänyt.
    Eli alaslaskiessa esim 5432109876 kun tavoitteena
    olisi 5432101234. Kuinka toteuttaa ??
    On jokin jota en hahmota jeten vihjatkaas.

    Äänestä

  • jjj kirjoitti:

    Onhan niissä, mutta ongelma on, laskuri 0:n jälkeen näyttää 9:ä, näin olen ymmärtänyt.
    Eli alaslaskiessa esim 5432109876 kun tavoitteena
    olisi 5432101234. Kuinka toteuttaa ??
    On jokin jota en hahmota jeten vihjatkaas.

    Ymmärsinkö oikein, että pulssipyörän pyöriessä toiseen suuntaan, lukema nousee ja vastakkaiseen suuntaan pyöriessä lukema vähenee. Saavuttaessa nollakohtaan alkaa lukema kasvamaan, vaikka pyörimissuunta ei vaihdu. Eli asteikko on niinkuin lämpömittarissa.
    Löytyyhän piiri esim.7106 jota voi käyttää lämpömittarina tai jännitteen mittaukseen. Se laskee myös negatiivisia arvoja. Pulssilaskurina sitä ei helposti voi käyttää, mutta jos pulssit voisi muuttaa jänniteviestiksi, niin sitten homma onnistuu.
    Tai sitten on olemassa työstökoneissa olevia digitaalisia mittalaitteita joilla mitataan liikematkoja. Nekin mittaavat etäisyyksiä nollakohdan molemmin puolin.
    Et kai rakentele jotakin tällaista?

    Äänestä

  • Näkökulma kirjoitti:

    Ymmärsinkö oikein, että pulssipyörän pyöriessä toiseen suuntaan, lukema nousee ja vastakkaiseen suuntaan pyöriessä lukema vähenee. Saavuttaessa nollakohtaan alkaa lukema kasvamaan, vaikka pyörimissuunta ei vaihdu. Eli asteikko on niinkuin lämpömittarissa.
    Löytyyhän piiri esim.7106 jota voi käyttää lämpömittarina tai jännitteen mittaukseen. Se laskee myös negatiivisia arvoja. Pulssilaskurina sitä ei helposti voi käyttää, mutta jos pulssit voisi muuttaa jänniteviestiksi, niin sitten homma onnistuu.
    Tai sitten on olemassa työstökoneissa olevia digitaalisia mittalaitteita joilla mitataan liikematkoja. Nekin mittaavat etäisyyksiä nollakohdan molemmin puolin.
    Et kai rakentele jotakin tällaista?

    Aivan eli toiseen suuntaa kasvaa ja toiseen vähenee ja nollan jälkeen taas tulisi kasvaa eli
    näyttö näyttäisi esim -180 ast, mutta nuo bcd laskurit laskevatkin 0 jälkeen esim (3 digit)
    000, 999, 998 jne , näin olen asian datalehdistä ymmärtänyt.
    Tosiaan mittalaitetta joka mittaa pituuksia 0 kohdan molemminpuolin, mutta minun tapauksessa asteita.

    Äänestä

  • jjj kirjoitti:

    Onhan niissä, mutta ongelma on, laskuri 0:n jälkeen näyttää 9:ä, näin olen ymmärtänyt.
    Eli alaslaskiessa esim 5432109876 kun tavoitteena
    olisi 5432101234. Kuinka toteuttaa ??
    On jokin jota en hahmota jeten vihjatkaas.

    Olinpas huolimaton.Homma ei ollutkaan niin yksinkertainen,kuin miltä näytti.Olisi hyvä tietää paljonko niitä pulsseja lasketaan.Toisaalla selvisi,että pulssit saadaan tyypilliseltä optohaarukalta kahtena eri vaiheisena signaalina.

    Taitaa olla liian hankalaa koodata 9=1,8=2 jne...Eikö näyttö voisi olla esim.0-10-20? On laskureita mihin voi ladata haluamansa lukema nollauksen sijaan.Miten BCD/DECIMAL laskuri ja ledirivi perään eikä numeroita.Nyt on aika kortilla mutta voin tuumia asiaa.

    Äänestä

Olet valinnut /- asteikon laskurille.
Itse kyhäsin joskus ISA väyläisen kortin PC.hen
vastaavaa hommaa tekemään,käytin 74HC192 U/D laskureita.
Laitteen käynnistyksen jälkeen härdellin piti etsiä paikkatieto eli ajaa jompaankumpaan laitaan
jossa mikrokytkin ja siinä nollata laskuri,sitten
toiseen laitaan josta vastaavasti saatiin toisen
suunnan rajatieto.
Nollakohta (keskikohta) oli sitten laskurin lukema/2.
Nykypäivänä kyhäisin ko. laskurin mikrokontrollerilla.

Äänestä
  • Tarkoitus olisi käyttää optista anturia, joka antaa kahden kanavan vaihe-erolla pyörimissuunnan.
    Nolla kohta voitaisiin asetaa mihin kohtaan tahansa nollaamalla laskuri.

    Ajattelin itsekin noita esim PIC. controllereita,
    googlella yritin löytää vihjeitä, mutta niiden ohjelmointi onkin sitten jo oma tarinansa.

    tarkoituksena olisi kustanustenja osien minimoiminen, esim cd 40110 on up/down laskin ja ohjaa vielä 7seg näyttöäkin.

    Ideana olis kaiketi tuon 0-kohdan havaitseminen ja
    sen ohjaama "kytkin", jolla vaihdetaan nuo up ja down karvat ristiin.

    Äänestä

  • Tarkoitus olisi käyttää optista anturia, joka antaa kahden kanavan vaihe-erolla pyörimissuunnan.
    Nolla kohta voitaisiin asetaa mihin kohtaan tahansa nollaamalla laskuri.

    Ajattelin itsekin noita esim PIC. controllereita,
    googlella yritin löytää vihjeitä, mutta niiden ohjelmointi onkin sitten jo oma tarinansa.

    tarkoituksena olisi kustanustenja osien minimoiminen, esim cd 40110 on up/down laskin ja ohjaa vielä 7seg näyttöäkin.

    Ideana olis kaiketi tuon 0-kohdan havaitseminen ja
    sen ohjaama "kytkin", jolla vaihdetaan nuo up ja down karvat ristiin.

    Äänestä

  • lisää kirjoitti:

    Tarkoitus olisi käyttää optista anturia, joka antaa kahden kanavan vaihe-erolla pyörimissuunnan.
    Nolla kohta voitaisiin asetaa mihin kohtaan tahansa nollaamalla laskuri.

    Ajattelin itsekin noita esim PIC. controllereita,
    googlella yritin löytää vihjeitä, mutta niiden ohjelmointi onkin sitten jo oma tarinansa.

    tarkoituksena olisi kustanustenja osien minimoiminen, esim cd 40110 on up/down laskin ja ohjaa vielä 7seg näyttöäkin.

    Ideana olis kaiketi tuon 0-kohdan havaitseminen ja
    sen ohjaama "kytkin", jolla vaihdetaan nuo up ja down karvat ristiin.

    Kustannusten minimointi...Pic:llä se tosiaan minimoituu. Jos et itse osaa kirjoittaa sopivaa koodia, kysy josko joku tekisi sen edullisesti puolestasi ja vaikkapa toimittaa valmiin piirin sinulle. Itselläni jäi tuo ohjelmoinnin opettelu vaiheeseen muiden töitten takia. Ei tuommoisen ohjelmointi pitäisi vaikeaa olla.

    Äänestä

  • lisää kirjoitti:

    Tarkoitus olisi käyttää optista anturia, joka antaa kahden kanavan vaihe-erolla pyörimissuunnan.
    Nolla kohta voitaisiin asetaa mihin kohtaan tahansa nollaamalla laskuri.

    Ajattelin itsekin noita esim PIC. controllereita,
    googlella yritin löytää vihjeitä, mutta niiden ohjelmointi onkin sitten jo oma tarinansa.

    tarkoituksena olisi kustanustenja osien minimoiminen, esim cd 40110 on up/down laskin ja ohjaa vielä 7seg näyttöäkin.

    Ideana olis kaiketi tuon 0-kohdan havaitseminen ja
    sen ohjaama "kytkin", jolla vaihdetaan nuo up ja down karvat ristiin.

    Ei jummarra tuota "vaihtaa UP/DN kanavat ristiin"
    Tekemässäni sätöksessä oli vastaava optinen anturi,siltä tulevat pulssit olivat langoitetut
    UP ja DOWN piikkeihin (Scmitt triggerin kautta)
    jolloin ko. signaalien vaiheet sattuivat siten että pyörimissuunta tuli laskurille huomioduksi.
    Vielä ihmetyttää miksi valita nollakohta jostain
    "keskeltä" ?

    Minulla oli kylläkin kyseessä DC minimoottori kierukkavaihde ,syntynyt liikerata oli about 10cm
    laidasta laitaan (kummassakin laidassa oli mikrokytkin).

    Mikrokontrollerilla homma onnistuisi (esim Atmel)
    käyttämällä jotain sen sisäisestä laskurista
    ja sen arvon saisi muunnettua halamaasi /- skaalaan ohjelmallisesti.
    Ohjelmoinnin taas oppii tekemällä sitä.

    Äänestä

  • Entä jos kontrollerissa ei riitä laskukapasiteetti,jos tarvii laskea vaikka 50000 pulssia niin miten silloin kannattaisi toimia?
    kiitos jo vastauksesta etukäteen...itselläni ei laskurin tekemisestä vielä tarpeeksi tietoa

    Äänestä

  • Tekijämies kirjoitti:

    Entä jos kontrollerissa ei riitä laskukapasiteetti,jos tarvii laskea vaikka 50000 pulssia niin miten silloin kannattaisi toimia?
    kiitos jo vastauksesta etukäteen...itselläni ei laskurin tekemisestä vielä tarpeeksi tietoa

    Itse olen käyttänyt linkissä olevaa controlleria.
    Siinä on kaksi laskuria 8 ja 16 bit.
    16bit=65536

    Lienee sama kumpi sopisi,niissä on "overflow" bit joita laskemalla voi laajentaa laskenta-aluetta mielin määrin.
    Toisaalta voi myös "kytkeä" laskurit sarjaan
    jolloin ei jää vapaata laskuria muuhun käyttöön.
    Lieneekö tarpeetonta sanoa jotta tämmöisellä piirillä voi kontrolloida aikamoista härdelliä.

    Itse suosittelisin Atmelia,siihen saa myös apuja
    netistä hyvin.

    http://www.atmel.com/dyn/resources/prod_documents/doc0841.pdf

    Äänestä

  • Tekijämies kirjoitti:

    Entä jos kontrollerissa ei riitä laskukapasiteetti,jos tarvii laskea vaikka 50000 pulssia niin miten silloin kannattaisi toimia?
    kiitos jo vastauksesta etukäteen...itselläni ei laskurin tekemisestä vielä tarpeeksi tietoa

    Jos pitää laskea hyvin suurella nopeudella,niin ongelmia voi olla tiedossa.Ajatellaan vaikka sähkömoottoria joka pyörii 2000 r/min ja perässä on encoderi,joka antaa vaikka 1000 pulssia ringille.PIC 16F84 laskuritulo nielee sen kakistelematta,jos sitä voi muutoin käyttää.Mekaaninen suunnanmuutos ei voi tolkuttoman nopeasti tapahtua,joten aikaa laskenta suunnan muuttamiseen lienee ihan riittävästi.Jos ohjataan näyttöä,niin ei sitä ihmissilmälle nopeasti tarvitse päivittää,kunhan laskenta pysyy hallinnassa.Pitää muistaa,että kysymyksessä oli encoderi jonka kahdesta erivaiheisesta signaalista piti päätellä pyörimissuunta ja askelten määrä.

    Jotta voisi tehdä ohjelman parhaalla tavalla pitäisi olla tarkasti määriteltynä vaatimukset.

    Ohessa eräs linkki
    http://koti.mbnet.fi/catapult/projekti/opas/opas.htm

    Äänestä

  • Gemini kirjoitti:

    Jos pitää laskea hyvin suurella nopeudella,niin ongelmia voi olla tiedossa.Ajatellaan vaikka sähkömoottoria joka pyörii 2000 r/min ja perässä on encoderi,joka antaa vaikka 1000 pulssia ringille.PIC 16F84 laskuritulo nielee sen kakistelematta,jos sitä voi muutoin käyttää.Mekaaninen suunnanmuutos ei voi tolkuttoman nopeasti tapahtua,joten aikaa laskenta suunnan muuttamiseen lienee ihan riittävästi.Jos ohjataan näyttöä,niin ei sitä ihmissilmälle nopeasti tarvitse päivittää,kunhan laskenta pysyy hallinnassa.Pitää muistaa,että kysymyksessä oli encoderi jonka kahdesta erivaiheisesta signaalista piti päätellä pyörimissuunta ja askelten määrä.

    Jotta voisi tehdä ohjelman parhaalla tavalla pitäisi olla tarkasti määriteltynä vaatimukset.

    Ohessa eräs linkki
    http://koti.mbnet.fi/catapult/projekti/opas/opas.htm

    http://www.mcmanis.com/chuck/robotics/projects/lab-x3/quadratrak.html

    http://www.sprut.de/electronic/pic/programm/rotary/rotary.html

    Äänestä

  • Gemini kirjoitti:

    Jos pitää laskea hyvin suurella nopeudella,niin ongelmia voi olla tiedossa.Ajatellaan vaikka sähkömoottoria joka pyörii 2000 r/min ja perässä on encoderi,joka antaa vaikka 1000 pulssia ringille.PIC 16F84 laskuritulo nielee sen kakistelematta,jos sitä voi muutoin käyttää.Mekaaninen suunnanmuutos ei voi tolkuttoman nopeasti tapahtua,joten aikaa laskenta suunnan muuttamiseen lienee ihan riittävästi.Jos ohjataan näyttöä,niin ei sitä ihmissilmälle nopeasti tarvitse päivittää,kunhan laskenta pysyy hallinnassa.Pitää muistaa,että kysymyksessä oli encoderi jonka kahdesta erivaiheisesta signaalista piti päätellä pyörimissuunta ja askelten määrä.

    Jotta voisi tehdä ohjelman parhaalla tavalla pitäisi olla tarkasti määriteltynä vaatimukset.

    Ohessa eräs linkki
    http://koti.mbnet.fi/catapult/projekti/opas/opas.htm

    kokemuksesta voin sanoa että laskurilta vaaditaan noin 10 kertaa suurempi laskentanopeus kuin mitä laskennallinen nopeus on. Entenkin suunnanvaihdossa vaaditaan nopeutta.Tämä johtuu värinästä jota aina on, kun kysymyksessä on todellinen mekaaninen laite. Eli jos anturista joka antaa 100pls/kier ja pyörimisnopeus on 10 kier/sek on laskenta nopeus 1000pls/sek niin käytännössä laskurin pitää pystyä laskemaan noin 10000 pls/sek jotta se toimisi. Varsinkin suunnan vaihdossa.

    Äänestä

harkita myöskin ihan valmista absoluuttianturia, joka antaa binäärikoodina (tavuna) paikkatiedon akselin kiertokulmasta. Noita antureita pitäisi löytyä 5VDC jännitteellekkin ja eri tarkkuuksina.. Tarkkuudella meinaan, et miten monta asemointi-tietoa anturi antaa millekkin matkalle..

Äänestä

pista dc moottori pyorimaan harveliisi ja amppeeri mittari rinnalle viisari nayttaa suunnan ja pulssit lineaarisesti.

Äänestä

Ohjelmalliset ratkaisut ovat ongelmallisia - suunnanmuutoksen yhteydessä SAATTAA yksittäinen pulssi hävitä. Etenkin jos tapahtuu edestakaista jauhamista. Kokeiltu on 15 vuotta CPU'n sisäisillä laskureilla ohjelmallisesti ja päädyin erilliseen rautaan. Ellei sitten ole jossain prossussa rakennettu todellista U/D-laskuria? Pullsianturina oli muutaman tuhat pulssia kierroksella antavia tarkkuusantureita.

Äänestä
  • Tämä meni poskelleen: "Kokeiltu on 15 vuotta CPU'n sisäisillä laskureilla"

    Pitää olla: "Kokeiltu on 15 vuotta SITTEN CPU'n sisäisillä laskureilla"

    Äänestä

  • http://www.doctronics.co.uk/4510.htm

    Kellonastaan pulssilaskurin toinen vaihe ja U/D-nastaan toinen ... tietty lisäkilkettä mukaan minkä taasen tarve määrittää. Siihen voi sitten MYÖS ladata halutun tilan mistä laskin jatkaa ..

    Sillä omani olen toteuttanut 20 bittisen laskimen - lisäkilkkeitä 74373, 74245 kytkee PC'n ISA väylään että osoitteen valintaa 74138 ja 74688 parilla ja peruskilke 7432 ja pulssit siivosin '1489' piirillä joka monasti nähdään RS232-yhteydessä.

    Äänestä

.. jos tietäisi mitä olet kyhäämässä.
Siis voithan laskea "montako kierrosta" ja
kulmatiedon vaikka edellämainitulla kulma-anturilla jne.

Äänestä

Jos oikeasti haluaa ohjata jotain ko. värkillä, niin helpoimmalla siitä pääsee ottamalla pieni ohjelmoitava logiikka joissa ko. toiminto on vakiona.
Lisäksi ohjauksessa tulevat vertailut sisältyvät myös ominaisuuksiin sekä tietysti digitaalilähdöt laiteohjauksiin.
Tällöin tuo nollakohtakan ei ole ongelma.
Nopeutta vaihepulssitulolla voi olla muutamia kHZ.
Referenssipisteen haussa voi lisäksi käyttää Z-pulssia noiden A ja B lisäksi.
Laskurit ovat yleensä 32 bittisiä.

Äänestä

jos käytät laskurin ylintä bittiä
miinus merkkinä asia on helppo.
eli jos ylin bitti on 1 niin kaikki bitit käännetään toisinpäin ja lukuun lisätään 1.

Äänestä

Kommentoi aloitusta


jjj kirjoitti:

Olisi tarkoitus rakentaa pulssilaskuri, jota ohjataan pulssipyörältä josta signaalit pulse up ja pulse down.
Toteutus BCD up/down laskurilla.
Ongelmana on 0-kohta, alaspäin laskettaessa laskurihan siirtyy 9 tilaan 0 jälkeen.

Kuinkahan olisi toteutettavissa, jotta laskuri
laskisi esim -1,-2, jne 0-jälkeen ja tietenkin ylöspäin laskettaessa 1,2, jne 0-jälkeen ???

Anonyymi
5000

Ilmoita asiaton sisältö

  • Sisältää materiaalia, joka on loukkaavaa, herjaavaa, rasistista, uhkailevaa tai ahdistelevaa.

  • Materiaali sisältää nimiä, yhteystietoja tai muita henkilökohtaisia tietoja. Julkisuuden henkilöistä, julkisissa viroissa toimivista ihmisistä sekä yritysten vastuuhenkilöistä saa keskustella työhön liittyen. Myös yksityiselämään liittyvistä asioista voi keskustella siltä osin, kuin niistä on julkisesti kerrottu.

  • Sisältää lapsille haitallista tai heiltä kiellettyä materiaalia. Seksuaalinen sisältö on sallittua aiheeseen tarkoitetuilla palstoilla, joiden ikäraja on 18 vuotta.

  • Lainvastaista sisältöä voi olla mm. yksityiselämää loukkaavan tiedon levitys, kiihottaminen kansanryhmää vastaan, laiton uhkaaminen, alaikäisiin liittyvä seksuaalinen sisältö/grooming, petokset, identiteettivarkaudet, kunnianloukkaukset ja tekijänoikeusrikkomukset.

  • Sisältö ei liity palstan tai keskusteluketjun aiheeseen.

  • Viesti ei ole suomea tai ruotsia (pl. International Forums), se sisältää mainontaa, se sisältää tekijänoikeuksin suojattua materiaalia, se on massapostitus tai jokin muu syy.

Jaa keskustelu