Teade

Collapse

Foorumi reeglid.

Foorumi reeglistik on uuendatud. Palume tutvuda ja arvesse võtta.
See more
See less

kood PICiga tahhomeetri tegemiseks

Collapse
X
 
  • Filter
  • Kellaaeg
  • Show
Clear All
new posts

    kood PICiga tahhomeetri tegemiseks

    tahaks siis teada kuidas saaks panna lugema p88rdeid minutis...ytleme kasv6i herkoniga...mismoodi peaks olema kood...kuidas panna ajayhikus loendama?mitu korda sekundis v6i kuidas?

    #2
    Loe nt. mingi ajavahemiku vältel tahho anduri impulsse ja korruta tulemus sobiva konstandiga.
    - Vend Hieronymus tunneb Motorola toodete nimekirja kõige paremini, las tema ütleb.
    - Motorola poolt loodud kiipide hulgas ei ole teda üles tähendatud. - Tähendab: ta on Intelist!

    Comment


      #3
      Loe nt. mingi ajavahemiku vältel tahho anduri impulsse ja korruta tulemus sobiva konstandiga.
      Nii võib ainult siis hakkama saada kui igalt pöördelt tuleb mitte üks, vaid palju impulsse. Olen teinud näiteks 60 servaavaga ketta ja siis 1 sekundi vältel tulnud impulssidest (optoandur) saab sobiva näidu...
      Kui aga igalt pöördelt tuleks üks impulss, tuleks hoopis mõõta ühele pöördele kuluv aeg ja sellest arvutada pöörlemiskiirus...
      Elektroonika töötab suitsu baasil.
      Tähendab - igasse detaili on doseeritud täpne kogus suitsu.
      Kui mõnest suits välja lasta, siis värk enam ei käi.

      Comment


        #4
        Oli kord endalgi midagi sellist vaja, see kood peaks ehk veidi aitama kui tahad asja siiski teha asmis (vähemalt ära see kompileerus), Muidugi on sellel koodil omad puudused ja piirangud aga head nokitsemist.

        PS foorum ei lase panna üle ühe tühiku, seetõttu näeb allpool olev kood kah välja selline nagu ta on




        #include <p16f628.inc>

        ;PICi confimine: powerup timer on, watchdog timer off, high speed osc

        __CONFIG _PWRTE_ON & _WDT_OFF & _HS_OSC

        ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
        ;Antud programm on mõeldud pic16f628 -le, mis töötab 20MHz- ise taktiga ;
        ;Herkoni või mingi muu anduri võib ühendada portb.0 -ga ;
        ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

        ;Muutujad

        sekund Equ 0x20 ;Timeri sekundi väärtus
        kymnendiksekund Equ 0x20 ;Timeri kümnendiksekundi väärtus
        turn_time_sec Equ 0x20 ;Ühe pöörde tegemise aeg (sekundid)
        turn_time_sec_komakoht Equ 0x20 ;Ühe pöörde tegemise aeg (kümnendik)


        org 0x000 ;Põhiprogrammi paiknemisaadress
        goto init

        org 0x4 ;Interruptrutiini paiknemisaadress
        goto clock

        ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;
        ;Üldine initsialiseerimine ;
        ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;

        init

        ;Interrupt init

        BSF STATUS,RP0 ; Bank1
        movlw b&#39;00000001&#39;
        movwf PIE1 ; Enable timer1 overflow interrupt
        movwf TRISB ; Portb.0 input
        BCF STATUS,RP0 ; Bank 0
        clrf PIR1 ; Clear all interruptflags
        movlw b&#39;11000000

        ; Interruptid lubatud, Interruptid perifeeriasedametes lubatud
        movwf INTCON
        movlw b&#39;00110001&#39;
        ;Timer1 prescale 1:8,timer1 internal clock,timer1 start
        movwf T1CON

        ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;
        ;Mainloop ;
        ;Programmi põhiosas oodatakse et portb.0 -ile pinge rakendataks ;
        ;Kui portb.0 tuleb impulss, omistatakse mõõdetud aeg sekunites ;
        ;ja kümnendiksekundites muutujatele, mis näitavad ühe pöörde ;
        ;tegemiseks kulutatud aega ;
        ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;


        mainloop

        btfss PORTB,0 ;Kas portb.0 on high
        goto mainloop movfw sekund ;Ei ole, tagasi mainloopi movwf turn_time_sec ;Jah on
        movfw kymnendiksekund
        movwf turn_time_sec_komakoht

        waitforfallingedge

        btfsc PORTB,0 ;Kas portb.0 on LOW goto waitforfallingedge ;Ei ole veel goto mainloop ;Jah on

        ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;
        ;Clock ;
        ;Kutsutakse välja kui timer1 register täis saab ;
        ;Timer1 registrisse antakse sellised väärtused et register ;
        ;täituks 20 MHz clocki juures täpselt 0,1 sekundiga ;
        ;Iga 10 täitumise järel liidetakse sekundi muutujale 1 ;
        ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;


        clock

        movlw d&#39;220&#39;
        movwf TMR1L
        movlw d&#39;11&#39;
        movwf TMR1H



        ;Liida kümnendiksekundi lugejale 1 juurde
        incf kymnendiksekund, 1
        ;Lisatakse tööregistrisse väärtus 10
        movlw d&#39;10&#39;
        ;Lahutatakse kümnendiksekundi väärtusest 10
        subwf kymnendiksekund,0
        ;Juhul kui eelmine tehe andis vastuseks 0, siis tagasi main loopi
        btfss STATUS,2
        return
        clrf kymnendiksekund ;Nulli kümnendiksekund
        incf sekund, 1 ;Liida sekundi lugejale 1 juurde
        return


        end

        Comment


          #5
          mingis Radio ajakirjas kunagi oli sellise tahomeetri skeem, kus impulsid saadi sedasi, et ümber selle juhtme, mis läheb süüte poolist jagajasse, oli keeratud mingi arv keerde, umes 10-20 keerdu vist oli. Aga see oli muidugi analoog, väljundiks oli voltmeeter.

          Comment


            #6
            Sealt küünla juhtme ümbert (või siis pooli juhtme ümbert isegi) saad ka väga hästi digisse impulsse. Pmst lahendus isegi lihtsam, ei ole vaja integreerida nagu analoogil. Tuleks ainult kõrged piigid välja korjata.

            Comment


              #7
              Proovisin golf-3 peal, ei toimi. Nimelt ühe süüte asemel käis 3 süüdet ja elektroonika oli segaduses, näitas totaalselt valesid numbreid. Otse pöörete anduri pealt võetud impulss pani asja õigesti käima.

              Kellel huvi, siis mul numbriline tahomeeter täitsa olemas, tegin kunagi, ise ei kasuta. PIC prose baasil, numbreid vahetab 5 korda sekundis, nii et näit peaks olema piisavalt kiire.

              Comment


                #8
                Originally posted by urmas78@Nov 10 2004, 12:25

                Kellel huvi, siis mul numbriline tahomeeter täitsa olemas, tegin kunagi, ise ei kasuta. PIC prose baasil, numbreid vahetab 5 korda sekundis, nii et näit peaks olema piisavalt kiire.
                Mul isegi oleks huvi, täpsusta veidi asja: kas LCD või LED numbrid, kui suur ja mis mootorile (4 silindrit?) ja mis anduriks ?
                Head susserdamist !

                Comment


                  #9
                  led, 2 numbrimärki, 1000p/m näitab 10, 6500p/m näitab 65, 10000p/m nihutab näitu= 10, maks 30000p/m = 30 siis. mingi ledi pani vist kah põlema, kui üle 10000 p/min oli. Anduriks võtsin signaali süüteandurilt, seal oli 2 impulssi/1-he pöörde jooksul.
                  Möödud kõrgus 25, laius 55, sügavus 25, korpust pole. Numbri kõrgus 12,7mm, roheline. Skeem-soft olemas, võin alati uue teha, vastavalt mõõtudele.

                  Comment


                    #10
                    Või jagaks õppe esmärkidel lahkesti lähtekoodi ?näljase kala püüdma?

                    Comment


                      #11
                      LED-iga tahhomeetri lähtekood:
                      http://www.hot.ee/urmas78/Taho.html

                      Projeks ASM-is.

                      Õppeesmärgil siis.

                      Comment


                        #12
                        Ehk on selline link abiks.
                        http://www.eelkevisser.nl/anytacho.htm
                        Toimib päris normaalselt, see tahhokas.

                        Comment


                          #13
                          Originally posted by eixx@Nov 18 2004, 02:59
                          Ehk on selline link abiks.
                          http://www.eelkevisser.nl/anytacho.htm
                          Toimib päris normaalselt, see tahhokas.
                          Kas see varjant ka ühe pütase mootoriga tööle hakkab?

                          Oskab keegi öelda, kus kohast tale impulsid sisse lastakse?

                          Comment


                            #14
                            Originally posted by Andres75@Sep 25 2005, 17:50
                            Oskab keegi öelda, kus kohast tale impulsid sisse lastakse?
                            eks ikka j2 pesast.

                            Comment


                              #15
                              tänud digital.

                              Kas keegi on ka selle tahhomeetri valmis ehitanud?

                              Comment

                              Working...
                              X