Teade

Collapse

Foorumi reeglid.

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

Võhiku küsimus PIC-i progemise kohta

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

    Võhiku küsimus PIC-i progemise kohta

    Tere,

    tekkis sportlik huvi servo signaali laiendamise kohta. Võtame nt. 16f84-ja.
    Kuidas teha sellele elukale selgeks minu alljärgnev huvi.
    RC vastuvõtjast tueb välja signaal 1ms kuni 2ms mis siis servosi liigutab 0-90 kraadi. Isu on seda signaali laiendada 0.6 ms pealt kuni 2.5 ms peale ehk servo liigutamine 0-180 kraadi.
    Ideelilset asi nii, et pic loeb sisse signaali ja annab parralleelselt välja laiendatud signaali ehk loeb sisse selle 1ms siis annab välja 0.5 ms ning kui 2ms sisendis sis PIC-il väljundis 2,5 ms.

    Kuidas võiks seda pici sedaviisi kamandada? Mingi valem talle sisse sööta muutujaga näiteks või kuidas? Ei plaani progema hakata aga nagu mainisin sportlik huvi.

    Lihtsam on servo signaali lainedada sekkumist jootekolviga servosse endasse aga kui nt, vaja mitu servot kiiresti ja korraga laiemalt käima panna siis võiks prosekasutamine mõeldav olla.
    See selline ülesanne rohkem asjaarmastajatele
    MSN- taneltreima182@hotmail.com
    telefon katki.

    #2
    Vs: Võhiku küsimus PIC-i progemise kohta.

    Esmalt postitatud ttr poolt Vaata postitust
    huvi servo signaali laiendamise kohta. Võtame nt. 16f84-ja.
    Selleks et PIC või mõni teine mikroprotsessor töötaks peab ta olema programmeeritud.
    16f84 saab programmeerida aga selleks tuleb ta iga kord panna programmaatorisse.
    Minusugune laisk inimene valiks natuke suurema kivi mis lubab soovi korral USB kaablit pidi kivisse
    uus tööjuhend kirjutada.
    Kuidas teha sellele elukale selgeks minu alljärgnev huvi.
    On võimalik kirjutada selline programm et kui "ütled" kivile:
    "N" siis läheb ta algseisu
    kui "37k" siis keerab ta 37 kraadi.
    kui "180k" siis keerab 180 kraadi.
    Ja kui "12p" siis teeb 12 pööret.
    Nii saab teha. Kuidas seda ütled tuleb lahendada vastavalt vajadusele.

    Tallinna poisil oleks vast mõistlik seda asja uurida sellise mehe nagu felch käest.
    Tean et ta töötab TTÜs (TPI oli see kunagi???) ja on igati sõbralik ja nutikas sell.
    Kahjuks siin foorumis teda enam näha pole aga teda võib leida
    http://elektroonikafoorum.com/ all.
    Kirjuta, ta vastab ja oskab kindlasti aidata.
    Lihtsam on servo signaali lainedada sekkumist jootekolviga servosse endasse
    aga kui nt, vaja mitu servot kiiresti ja korraga laiemalt käima panna
    siis võiks prosekasutamine mõeldav olla.
    See selline ülesanne rohkem asjaarmastajatele
    Olen siiani olnud rohkem sammmootori kasutaja
    aga olen kohtunud ka nende poistega kes "mannekeene" ehitavad.
    Neil olid seal ca 15 cm vindid, mida väike servo keerutas.
    Ja juhtis seda mikromasin. Programmi kirjutaja endaga ei kohtunud. Juhtus nii.

    Pealegi on ju huvitav ISE proovida et kuidas siis ikkagi saab.
    Paistab et seda tead Sa juba ka omast käest.

    Comment


      #3
      Vs: Võhiku küsimus PIC-i progemise kohta.

      Esmalt postitatud ttr poolt Vaata postitust
      Ideelilset asi nii, et pic loeb sisse signaali ja annab parralleelselt välja laiendatud signaali ehk loeb sisse selle 1ms siis annab välja 0.5 ms ning kui 2ms sisendis sis PIC-il väljundis 2,5 ms.
      Täiesti paralleelselt ei saa, teatava viitega saab.
      Pulsi pikkus pole teada enne, kui ta läbi saab (kui pole tegemist ennustamisel põhineva süsteemiga).
      Seega, et teha 1ms pulsist 0.5ms tuleb alustuseks oodata 0.5ms.

      algoritm oleks suht lihtne:
      jälgid sisendit, kui sinna miskit tekib, siis 0.5ms pärast lülitad väljundit
      ootad, kuni sisendis asi kaob, nüüd on teada kui pikk pulss oli
      korrutad pulsi pikkuse kahega((2.5-0.5)/(2-1)=2), lahutad 0.5ms ja ongi teada palju veel oodata, et väljund maha võtta

      Vastavalt maitsele võib lisada igasugu kontrolle juurde (min/max pulsi pikkus, mis juhtub, kui 2ms pulsid tulevad vähem kui 0.5ms intervalliga, jne)

      Comment


        #4
        Vs: Võhiku küsimus PIC-i progemise kohta.

        Hakkab looma juba, tänud Teile, algo tahab veel täiendamist aga see ei tahenda lõpptulemust.
        Kes suudab lõpptulemuse töötava välja pakkuda siis kukkur kitsi pole , Raud on minu poolt.

        A.R

        tallinna poiss ja härra felch ei käi kokku, mõlemad on paraku ühe pisikuga nakatatud. Kes rauaga kes softiga.
        MSN- taneltreima182@hotmail.com
        telefon katki.

        Comment


          #5
          Vs: Võhiku küsimus PIC-i progemise kohta.

          Kas see PIC tegeleb ainult selle servoga?
          Kui jah siis äkki on abi kvartsi poole aeglasemaks vahetamisest?
          Kas mehaanikat ei anna ümber teha?
          kas PIC on lukust lahti - kas programmi maha lugeda annab?
          MINULE EI MEELDI KUI MÕNINGAD ISIKUD MINU POSTITUSI MUUDAVAD,
          KUI POSTITUS EI SOBI SIIS PALUKS SEE KUSTUTADA !

          Comment


            #6
            Vs: Võhiku küsimus PIC-i progemise kohta.

            Esmalt postitatud ttr poolt Vaata postitust
            Kes suudab lõpptulemuse töötava välja pakkuda
            Sellise jutu peale oli lootust et tegu on millegi huvitavaga aga Google pakkus selle 84 jaoks
            hulgi lahendusi. ASM source. Ajadiagrammid kaasas ja puha.

            A.R
            tallinna poiss ja härra felch ei käi kokku, mõlemad on paraku ühe pisikuga nakatatud.
            Kes rauaga kes softiga.
            Pole teda kordagi näind aga olnud nö kirjatuttavad. Aitas ka paari jupiga.
            Väga kahju et teda siin foorimis enam näha pole.

            Comment


              #7
              Vs: Võhiku küsimus PIC-i progemise kohta

              Mhh, mina olen suutnud leida 1 softijupi netist 84 jaoks või ei olen ma otsimises laisk?
              MSN- taneltreima182@hotmail.com
              telefon katki.

              Comment


                #8
                Vs: Võhiku küsimus PIC-i progemise kohta

                Neid vaatasin:



                Otsing
                16f84 "source code"
                Umbes 109,000 tulemust (0,16 sekundit)

                16f84 "servo source code" 44 tulemust

                Vajadusel peaks hakkama saama.
                viimati muutis kasutaja A.R.; 25 m 2012, 08:23.

                Comment


                  #9
                  Vs: Võhiku küsimus PIC-i progemise kohta

                  Ka ise on saanud PIC ile koode kirjutada, üks servo kood on siin:
                  Kood:
                  ;
                  ;
                  ;
                  ;V@LJUNDITEKS ON B-PORT, SISEND A-PORT MILLE KAUDU
                  ;SAAB VALIDA REZIIME
                  ;
                          LIST            P=16C84
                          ERRORLEVEL      -302    ;SUPPRESS BANK SELECTION MESSAGES
                          __CONFIG        3FF0H   ;LP OSC, WATCHDOG_off oli 3FF3H RC OSC, WATCHDOG_off
                  
                  
                  ;    
                  
                  ALGUS
                  
                      PORTB   EQU     6    ;PORDI B ASUKOHT
                      TRISB   EQU     86H    ;PORDI B OLEK
                      PORTA    EQU    5    ;PORDI A ASUKOHT
                      TRISA    EQU    85H    ;PORDI A OLEK
                      OPTREG  EQU     81H
                      STATUS  EQU     3
                      CARRY   EQU     0
                      RP0     EQU     5
                      NP1    EQU    2    ;NUPP 1 - TÖÖREZIIM TÖÖTAMINE/TAGASIKERIMINE
                      NP2    EQU    1    ;NUPP 2 - ALGUSE PIIRAJA
                      NP3    EQU    0    ;NUKK 3 - LÕPPU PIIRAJA
                      DELAY1  EQU     0C    ; VIITE1 MÄLUPESA AADRESS ON 0C 
                      DELAY2  EQU     0D    ; VIITE2 MÄLUPESA AADRESS ON 0D
                  ;    DELAY3  EQU    0E    ; -//-
                  
                  
                  
                  
                  
                  ;
                          CLRF    PORTB           ; V@LJUNDID PUHTAKS
                          BSF     STATUS,RP0      ;SELECT REGISTER BANK 1   
                          CLRF    TRISB           ;SET PORTB TO ALL OUTPUTS
                      CLRF    PORTA        ;PORTA 0-3 SISENDITEKS 
                      BSF    STATUS,RP0
                      MOVLW    0x0F
                      MOVWF    TRISA
                          MOVLW   0FH        ;0DH - 1:16 ; 08H - 1:1 ;0FH - 1:128
                          MOVWF   OPTREG          ;ASSIGN PRESCALER (1:16) TO WDT
                          BCF     STATUS,RP0      ;SELECT REGISTER BANK 0
                          INCF    PORTB,F         ;KIRJUTAME PORTI B
                          BCF     STATUS,CARRY    ;CLEAR CARRY
                  
                  
                  KERI                ;KEERAME ALG ASENDISSE
                  
                      CALL VIIDE2
                      MOVLW    B'00000001'    ;
                      MOVWF    PORTB
                  
                       CALL VIIDE2
                       MOVLW    B'00000011'    ;
                       MOVWF    PORTB
                  
                      CALL VIIDE2
                      MOVLW    B'00000010'    ;
                      MOVWF    PORTB
                  
                       CALL VIIDE2
                       MOVLW    B'00000110'    ;
                       MOVWF    PORTB
                  
                      CALL VIIDE2
                      MOVLW    B'00000100'    ;4
                      MOVWF    PORTB
                  
                       CALL VIIDE2
                       MOVLW    B'00001100'    ;3
                       MOVWF    PORTB
                  
                      CALL VIIDE2
                      MOVLW    B'00001000'
                      MOVWF    PORTB
                  
                       CALL VIIDE2
                       MOVLW    B'00001001'
                       MOVWF    PORTB
                  
                      GOTO    KERI
                  
                  
                  
                  ATYY            ;
                      
                      CALL    VIIDE1
                      MOVLW    B'00001000'    ; 8
                      MOVWF    PORTB
                  
                      CALL    VIIDE
                      MOVLW    B'00001100'    ; 7
                      MOVWF    PORTB
                  
                      CALL    VIIDE1
                      MOVLW    B'00000100'    ; 6
                      MOVWF    PORTB
                  
                      CALL    VIIDE
                      MOVLW    B'00000110'    ; 5
                      MOVWF    PORTB
                  
                      CALL    VIIDE1
                      MOVLW    B'00000010'    ; 4
                      MOVWF    PORTB
                  
                      CALL    VIIDE
                      MOVLW    B'00000011'    ; 3
                      MOVWF    PORTB
                  
                      CALL    VIIDE1
                      MOVLW    B'00000001'    ; 2
                      MOVWF    PORTB
                  
                      CALL    VIIDE
                      MOVLW    B'00001001'    ; 1
                      MOVWF    PORTB
                  
                      GOTO    ATYY
                  
                  
                  VIIDE    
                  
                  
                          MOVLW   .10          ; ?? mSec per step
                          MOVWF   DELAY1
                                     ; ?? millisecond delay
                         
                  DEL_0   
                  
                          DECFSZ  DELAY1, F
                          GOTO    DEL_0
                                  
                          RETURN
                  
                  
                  VIIDE1
                  
                          MOVLW   .11          ; ?? mSec per step
                          MOVWF   DELAY2
                                     ; ?? millisecond delay
                         
                  DEL_1   
                  
                          DECFSZ  DELAY2, F
                          GOTO    DEL_1
                                  
                          RETURN
                  
                  
                  VIIDE2            ; TAGASIKERIMIS VIIDE
                  
                      ;NOP
                  
                      BTFSS    PORTA,NP1    ; kas edasi v tagasi
                      GOTO ATYY
                  
                      ;NOP
                      ;NOP
                  
                      RETURN   
                  
                  
                          DE      "klm servomootor 0.57LP"
                          END
                  MINULE EI MEELDI KUI MÕNINGAD ISIKUD MINU POSTITUSI MUUDAVAD,
                  KUI POSTITUS EI SOBI SIIS PALUKS SEE KUSTUTADA !

                  Comment


                    #10
                    Vs: Võhiku küsimus PIC-i progemise kohta

                    16f84 äkki on lihtsam kasutada mõnda uuemat, millel on pwm sees olemas, no tegelikkult saab ka 16f84 pealt täiesti edukalt selle asja ära teha kindel see. aga njah teoreetiliselt on raske, skeem, ja kuidas see servo on ühendatud jne.

                    Comment


                      #11
                      Vs: Võhiku küsimus PIC-i progemise kohta

                      stepper on ühendatud nii:

                      et siis lülituselemendiks on liittransistor TIP122
                      MINULE EI MEELDI KUI MÕNINGAD ISIKUD MINU POSTITUSI MUUDAVAD,
                      KUI POSTITUS EI SOBI SIIS PALUKS SEE KUSTUTADA !

                      Comment


                        #12
                        Vs: Võhiku küsimus PIC-i progemise kohta

                        Programmist kah veidi:
                        kerib kiirelt mootorit, kuni vajutatakse nuppu, siis hakkab aeglaselt tagasi liikuma.
                        Selles versioonis on kasutuses ainult üks nupp
                        Sujuvamaks liikumiseks on üks samm kaheksaks jaotatud.
                        ABCD
                        1000
                        1100
                        0100
                        0110
                        0010
                        0011
                        0001
                        1001
                        MINULE EI MEELDI KUI MÕNINGAD ISIKUD MINU POSTITUSI MUUDAVAD,
                        KUI POSTITUS EI SOBI SIIS PALUKS SEE KUSTUTADA !

                        Comment

                        Working...
                        X