Σελίδα 2 από 3 ΠρώτηΠρώτη 1 2 3 ΤελευταίαΤελευταία
Εμφάνιση αποτελεσμάτων : 11 έως 20 από 24

Θέμα: PIC & SERVO

  1. #11
    Μέλος Το avatar του χρήστη billtech
    Όνομα
    Βασιλης
    Εγγραφή
    Mar 2006
    Περιοχή
    Χανια και Κυπρο
    Μηνύματα
    2.221

    Προεπιλογή

    αν μιλας φιλε μου για το παρακατω
    program Pwm_Test
    dim j as byte

    main:
    j = 0
    PORTC = $FF ' Initialize PORTC
    Pwm_Init(5000) ' Initialize PWM module, freq = 5kHz.
    Pwm_Start ' Start PWM

    while true
    for i = 0 to 20
    Delay_us(500)
    Inc(j)
    Pwm_Change_Duty(j) ' Change duty ratio
    wend
    end
    .το ειδα και εγω αλλα δεν μπορω να καταλαβω κατι.
    την πορτα C την δηλωνει σαν εισοδο σωστα? αφου την κανει ασσο.
    η συχνοτητα ειναι το μηκος του παλμου που θελουμε σωστα?
    η εξοδος για τον σερβο που ειναι?
    αυτες μονο ειναι οι ερωτησεις μου.

    0 Not allowed! Not allowed!
    Η γυναίκα και τα ηλεκτρονικά θέλουν γείωση!!!

  2. #12
    Μέλος Το avatar του χρήστη DT200
    Όνομα
    Ιωάννης
    Εγγραφή
    Nov 2005
    Περιοχή
    ΜΕΓΑΡΑ
    Μηνύματα
    1.245

    Προεπιλογή

    Παράθεση Αρχικό μήνυμα από billtech Εμφάνιση μηνυμάτων
    την πορτα C την δηλωνει σαν εισοδο σωστα? αφου την κανει ασσο.
    όχι, δεν την κάνει είσοδό. για να την έκανε είσοδο θα έγραφε TRISC=$FF.
    Παράθεση Αρχικό μήνυμα από billtech Εμφάνιση μηνυμάτων
    η συχνοτητα ειναι το μηκος του παλμου που θελουμε σωστα?
    όχι , η συχνότητα γνωρίζεις τι είναι. και μάλιστα είναι σταθερή 5KHz.
    αυτό που εννοείς είναι duty ratio , δηλαδή το μήκος του θετικού παλμού ή
    αλλιώς για πόσο % θα είναι θετικός ο παλμός της συχνότητας.
    Παράθεση Αρχικό μήνυμα από billtech Εμφάνιση μηνυμάτων
    η εξοδος για τον σερβο που ειναι?
    η έξοδος του παλμού είναι στο πιν του μ/ε που λέει PWM (RC2)

    0 Not allowed! Not allowed!

  3. #13
    Μέλος Το avatar του χρήστη kopla
    Όνομα
    Κλεομένης
    Εγγραφή
    Jul 2006
    Περιοχή
    Ελλάδα, Αθήνα
    Μηνύματα
    1.064

    Προεπιλογή

    Ωραίος ο DT200

    Το μόνο που εχω να πω έτσι εγκυκλωπαιδικά:
    Όταν ο PIC τροφοδοτείται -powerup reset- τότε οι RAM καταχωρητές του παίρνουν τυχαίες τιμές (ναι και οι PORTx). Το είδος τους (TRISx) είναι "είσοδος" κατα το powerup reset για λόγους ασφαλείας. Αν κάνεις την πόρτα έξοδο (TRISx=0), τότε τα "σκουπίδια" απο το powerup θα περάσουν στα pin που έκανες εξόδους. Επειδή δεν το θέλουμε αυτό, πρώτα γραφουμε την τιμή στους PORTx και μετα κανουμε έξοδο τα πιν (TRISx=0... ή καποια bit του).

    Δεν ξέρω αν με καταλαβαίνετε

    0 Not allowed! Not allowed!

  4. #14
    Μέλος Το avatar του χρήστη billtech
    Όνομα
    Βασιλης
    Εγγραφή
    Mar 2006
    Περιοχή
    Χανια και Κυπρο
    Μηνύματα
    2.221

    Προεπιλογή

    επειδη παιδια προσπαθησα αυτο που μου ειπατε με pwm αλλα δεν μου δουλεψε. προσπαθησα να κανω κατι αλλο.να το κανω με το παρακατω προγραμμα.αυτο δουλευει, αλλα δεν ειναι σωστο τελειως.

    program servo
    DIM BUTT,I,X AS BYTE
    main:
    TRISB=%11110000
    PORTB=0

    START:
    I=0
    DELAY_MS(50)
    BUTT=PORTB
    IF BUTT.7=0 THEN GOTO SERVO END IF
    IF BUTT.6=0 THEN GOTO SERVO1 END IF
    GOTO START

    SERVO:FOR I=0 TO 2
    SETBIT(PORTB,3)
    DELAY_MS(2)
    CLEARBIT(PORTB,3)
    DELAY_MS(20)
    NEXT I
    GOTO START

    SERVO1:FOR I=0 TO 2
    SETBIT(PORTB,3)
    DELAY_MS(1)
    CLEARBIT(PORTB,3)
    DELAY_MS(20)
    NEXT I
    GOTO START
    END.

    μπορω να βαζω μεσα στην delay_ms() χρονους με υποδιαστολη? γιατι το προσπαθησα και δεν γινεται.υπαρχει καποιος τροπος?
    ευχαριστω.

    0 Not allowed! Not allowed!
    Η γυναίκα και τα ηλεκτρονικά θέλουν γείωση!!!

  5. #15
    Μέλος Το avatar του χρήστη DT200
    Όνομα
    Ιωάννης
    Εγγραφή
    Nov 2005
    Περιοχή
    ΜΕΓΑΡΑ
    Μηνύματα
    1.245

    Προεπιλογή

    Παράθεση Αρχικό μήνυμα από billtech Εμφάνιση μηνυμάτων
    μπορω να βαζω μεσα στην delay_ms() χρονους με υποδιαστολη? γιατι το προσπαθησα και δεν γινεται.υπαρχει καποιος τροπος?
    ευχαριστω.
    delay_us(1000) δηλαδή 1mS.

    0 Not allowed! Not allowed!

  6. #16
    Μέλος Το avatar του χρήστη billtech
    Όνομα
    Βασιλης
    Εγγραφή
    Mar 2006
    Περιοχή
    Χανια και Κυπρο
    Μηνύματα
    2.221

    Προεπιλογή

    το εκανα και αυτο φιλε μου...αλλα μου δουλευει μονο σε 2 θεσεις...
    μου λελεψε για τις 1,50ms και 1,75ms.το αλλο που θελει 1,25ms δεν μου δουλευει.

    0 Not allowed! Not allowed!
    Η γυναίκα και τα ηλεκτρονικά θέλουν γείωση!!!

  7. #17
    Μέλος Το avatar του χρήστη DT200
    Όνομα
    Ιωάννης
    Εγγραφή
    Nov 2005
    Περιοχή
    ΜΕΓΑΡΑ
    Μηνύματα
    1.245

    Προεπιλογή

    για δείξε μας το πρόγραμμα.

    0 Not allowed! Not allowed!

  8. #18
    Μέλος
    Όνομα
    Στέλιος
    Εγγραφή
    Jul 2006
    Περιοχή
    Ραφήνα
    Μηνύματα
    74

    Προεπιλογή

    Αν δεν κάνω λάθος χρησιμοποιείς απλά αναλογικά servos. Υπάρχει λοιπόν περιορισμός στο εύρος των συχνοτήτων που μπορούν να δεχτούν +/- κάποιο ποσοστό. Δοκίμασε να πειραματιστείς με τις τιμές λιγάκι να δείς ποιες μπορεί να δεχτεί το servo σου.

    0 Not allowed! Not allowed!
    ~stelios

  9. #19
    Μέλος Το avatar του χρήστη billtech
    Όνομα
    Βασιλης
    Εγγραφή
    Mar 2006
    Περιοχή
    Χανια και Κυπρο
    Μηνύματα
    2.221

    Προεπιλογή

    program servo

    DIM BUTT,I,X AS BYTE

    main:
    TRISB=%11110000
    PORTB=0

    START:
    I=0
    DELAY_MS(50)
    BUTT=PORTB
    IF BUTT.7=0 THEN GOTO SERVO END IF
    IF BUTT.6=0 THEN GOTO SERVO1 END IF
    IF BUTT.5=0 THEN GOTO SERVO2 END IF
    GOTO START

    SERVO: FOR I=0 TO 20
    SETBIT(PORTB,3)
    DELAY_uS(1500)
    CLEARBIT(PORTB,3)
    DELAY_MS(20)
    NEXT I
    GOTO START

    SERVO1:FOR I=0 TO 20
    SETBIT(PORTB,3)
    DELAY_uS(1750)
    CLEARBIT(PORTB,3)
    DELAY_MS(20)
    NEXT I
    GOTO START

    SERVO2: FOR I=0 TO 20
    SETBIT(PORTB,3)
    DELAY_us(1250)
    CLEARBIT(PORTB,3)
    DELAY_MS(24)
    NEXT I
    GOTO START

    END.

    ισως εχει μεσα καποια περιττα κομματια στον κωδικα αλλα το θεμα ειναι οι χρονοι.

    0 Not allowed! Not allowed!
    Η γυναίκα και τα ηλεκτρονικά θέλουν γείωση!!!

  10. #20
    Μέλος Το avatar του χρήστη DT200
    Όνομα
    Ιωάννης
    Εγγραφή
    Nov 2005
    Περιοχή
    ΜΕΓΑΡΑ
    Μηνύματα
    1.245

    Προεπιλογή

    για δοκίμασε αυτό ...

    program servo

    DIM BUTT,I,X AS BYTE

    main:
    TRISB=%11110000
    PORTB=0

    START:
    I=0
    DELAY_MS(50)
    BUTT=PORTB
    IF BUTT.7=0 THEN GOTO SERVO END IF
    IF BUTT.5=0 THEN GOTO SERVO1 END IF
    IF BUTT.6=0 THEN GOTO SERVO2 END IF
    GOTO START

    SERVO: FOR I=0 TO 20
    SETBIT(PORTB,3)
    DELAY_uS(1500)
    CLEARBIT(PORTB,3)
    DELAY_MS(20)
    NEXT I
    GOTO START

    SERVO1:FOR I=0 TO 20
    SETBIT(PORTB,3)
    DELAY_uS(1750)
    CLEARBIT(PORTB,3)
    DELAY_MS(20)
    NEXT I
    GOTO START

    SERVO2: FOR I=0 TO 20
    SETBIT(PORTB,3)
    DELAY_us(1250)
    CLEARBIT(PORTB,3)
    DELAY_MS(24)
    NEXT I
    GOTO START

    END.

    0 Not allowed! Not allowed!

Σελίδα 2 από 3 ΠρώτηΠρώτη 1 2 3 ΤελευταίαΤελευταία

Παρόμοια Θέματα

  1. Ελεγχος Servo με PIC
    By billtech in forum Μικροελεγκτές
    Απαντήσεις: 12
    Τελευταίο Μήνυμα: 26-05-10, 13:21
  2. Οδήγηση servo μέσω PIC μικροελεγκτή κ MikroBasic.
    By Stergios_[.gr] in forum Μικροελεγκτές
    Απαντήσεις: 26
    Τελευταίο Μήνυμα: 25-02-10, 13:17
  3. PIC & RS232
    By pvol in forum Μικροελεγκτές
    Απαντήσεις: 8
    Τελευταίο Μήνυμα: 21-11-08, 00:25
  4. Programmer ATmeL & PIC
    By P@s@ris! in forum Όργανα & Εξοπλισμός
    Απαντήσεις: 3
    Τελευταίο Μήνυμα: 08-01-08, 11:44

Tags for this Thread

Δικαιώματα - Επιλογές

  • Δημιουργία θεμάτων: Όχι
  • Υποβολή μηνυμάτων: Όχι
  • Σύναψη αρχείων: Όχι
  • Επεξεργασία μηνυμάτων: Όχι
  •  
  • BB code: σε λειτουργία
  • Smilies: σε λειτουργία
  • [IMG]: σε λειτουργία
  • [VIDEO] code is σε λειτουργία
  • HTML: εκτός λειτουργίας