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

Θέμα: ΕΛΕΓΧΟΣ RGB LED ΜΕ PWM

  1. #11
    Μέλος
    Όνομα
    Γιώργος
    Εγγραφή
    Sep 2005
    Περιοχή
    Αθήνα
    Μηνύματα
    36

    Προεπιλογή

    Μπορείς να κάνεις αυτό:
    - ξεκινάει χρονόμετρο το οποίο θα διαρκέσει πχ 10msec για να έχεις 100Hz
    - ανάβεις όλα τα λεντ
    - Ορίζεις το χρόνο που θα σβήσει το πρώτο το δεύτερο και το τρίτο led.
    - πχ όταν το χρονόμετρο δείξει 5msec σβήσε το πρώτο (αυτό θα σου δώσει duty cycle 50%), στα 6msec το δεύτερο (60%) κ.ο.κ
    - τρέξε μια ρουτίνα που θα θέτει καινούργιες τιμές d.c και ξαναξεκίνα το χρονόμετρο

    0 Not allowed! Not allowed!

  2. #12
    Μέλος Το avatar του χρήστη dalai
    Όνομα
    Νίκος
    Εγγραφή
    Mar 2004
    Περιοχή
    Ξανθη
    Μηνύματα
    1.309

    Προεπιλογή

    Γιωργο προτεινεις δηλαδη να το χωρισω σε ελαχιστα κομματια,και να τρεχω διαδοχικα το προγραμμα του καθε led (fade up/down) .Αυτο ελεγα και εγω σαν λυση. Δεν ειναι ομως multitasking εκτελεση...

    0 Not allowed! Not allowed!
    "Αν εισαι ηλεκτρονικος, μπορεις να κανεις τα παντα!!"

  3. #13
    Μέλος
    Όνομα
    Γιώργος
    Εγγραφή
    Sep 2005
    Περιοχή
    Αθήνα
    Μηνύματα
    36

    Προεπιλογή

    Μπορεί να γίνει multitasking αν για χρονόμετρο χρησιμοποιήσεις interrupt timer και όχι να βάλεις ένα απλό delay για αύξηση της τιμής του χρονομέτρου σου.

    Επίσης δεν τρέχεις διαδοχικά το προγραμμα των led αλλά ταυτόχρονα. Ένα χρονόμετρο για όλα τα led.
    Το χρονόμετρο μετράει συνέχεια (στο background αν είναι interrupt tmr) . Θες μια ρουτίνα που θα καλείς κάθε πχ 100nsec ή θα τρέχει αυτόματα λόγο του interrupt (ανάλογα με το τι διαβάθμιση θες στα led) και θα ελέγχεις
    1) Είναι η τιμή που έχεις ορίσει να μένει ανοικτό το led1 (έστω ότι είναι η μεταβλητη dc1) ίσση με τον mytmr ?
    -ναι : σβήσε to led1
    -όχι : τίποτα ,παρακάτω...
    2) dc2 = mytmr ?
    -ναι : σβήσε to led2
    -όχι : τίποτα ,παρακάτω...
    3) dc3 = mytmr ?
    -ναι : σβήσε to led3
    -όχι : τίποτα ,παρακάτω...

    τέλος , κάνεις ότι άλλο θες , ορίζεις καινούργια dc1 dc2 dc3, και όταν ο μηδενίσει (ή φουλάρει) ο hardwarικος timer (κάθε 100ns), μεγαλώνεις τον δικό σου timer (αυτόν που ονόμασα mytmr και ξαναελέγχεις τα βήματα 1,2,3 .
    Στο συγκεκριμένο παράδειγμα θα έχεις 100 διαβαθμίσεις στο κάθε led, άρα 1.000.000 χρώματα

    0 Not allowed! Not allowed!
    Τελευταία επεξεργασία από το χρήστη nuclear__ : 06-05-11 στις 22:26

  4. #14
    Μέλος Το avatar του χρήστη spiroscfu
    Όνομα
    Σπύρος
    Εγγραφή
    Aug 2010
    Περιοχή
    Κέρκυρα
    Μηνύματα
    4.652

    Προεπιλογή

    Αν θέλεις να το κάνεις με software pwm, μπορείς να βάλεις έναν timer να τρέχει και ελέγχοντας τη τιμή του να κάνεις αυτό που θέλεις

    0 Not allowed! Not allowed!

  5. #15
    Μέλος Το avatar του χρήστη spiroscfu
    Όνομα
    Σπύρος
    Εγγραφή
    Aug 2010
    Περιοχή
    Κέρκυρα
    Μηνύματα
    4.652

    Προεπιλογή

    Παράθεση Αρχικό μήνυμα από nuclear__ Εμφάνιση μηνυμάτων
    Μπορεί να γίνει multitasking α
    δεν γίνεται multitasking o timer είναι hardware

    0 Not allowed! Not allowed!

  6. #16
    Μέλος Το avatar του χρήστη firewalker
    Όνομα
    Αλέξανδρος
    Εγγραφή
    Mar 2009
    Περιοχή
    Μαγνησία
    Μηνύματα
    442

    Προεπιλογή

    Δεν σε βολεύει να δίνεις τιμές στους register για κάθε bit;

    Πχ.
    Κώδικας:
    TCCR1B = (1<<CS12) | (1<<CS10);

    0 Not allowed! Not allowed!
    Γίνε ρεαλιστής, μείνε ονειροπόλος ...

  7. #17
    Μέλος
    Όνομα
    Γιώργος
    Εγγραφή
    Sep 2005
    Περιοχή
    Αθήνα
    Μηνύματα
    36

    Προεπιλογή

    Κοίτα multitasking εννοείται ότι δεν μπορεί να είναι όπως το εννοούμε στα pc. Ωστόσο όταν ενώ μετράει o timer μπορείς να κάνεις κάτι άλλο είναι ένα είδος multitasking. Όχι φυσικά τη στιγμή που τρέχεις τη ρουτίνα σου η οποία θα κρατήσει 1ns το πολύ αλλά τα υπόλοιπα 99 ! Πόσο πιο multitasking?

    0 Not allowed! Not allowed!

  8. #18
    Μέλος Το avatar του χρήστη spiroscfu
    Όνομα
    Σπύρος
    Εγγραφή
    Aug 2010
    Περιοχή
    Κέρκυρα
    Μηνύματα
    4.652

    Προεπιλογή

    Παράθεση Αρχικό μήνυμα από firewalker Εμφάνιση μηνυμάτων
    Δεν σε βολεύει να δίνεις τιμές στους register για κάθε bit;

    Πχ.
    Κώδικας:
    TCCR1B = (1<<CS12) | (1<<CS10);
    τι εννοείς (το κώδικα δεν τον καταλαβαίνω)

    0 Not allowed! Not allowed!

  9. #19
    Μέλος Το avatar του χρήστη firewalker
    Όνομα
    Αλέξανδρος
    Εγγραφή
    Mar 2009
    Περιοχή
    Μαγνησία
    Μηνύματα
    442

    Προεπιλογή

    Παράθεση Αρχικό μήνυμα από spiroscfu Εμφάνιση μηνυμάτων
    τι εννοείς (το κώδικα δεν τον καταλαβαίνω)
    Είναι ένας τρόπος να αλλάζεις συγκεκριμένα bit σε έναν register χωρίς να "κινδυνεύεις" να πειράξεις άλλα. Κάνει και τον κώδικα ποιο ευανάγνωστο.

    0 Not allowed! Not allowed!
    Γίνε ρεαλιστής, μείνε ονειροπόλος ...

  10. #20
    Μέλος Το avatar του χρήστη spiroscfu
    Όνομα
    Σπύρος
    Εγγραφή
    Aug 2010
    Περιοχή
    Κέρκυρα
    Μηνύματα
    4.652

    Προεπιλογή

    και πως θα τον βοηθήσει να δημιουργήσει pwm παλμούς , αυτό δεν καταλαβαίνω?

    0 Not allowed! Not allowed!

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

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

  1. Ελεγχος κινητηρα με pwm
    By gazp in forum Αυτοματισμοί
    Απαντήσεις: 61
    Τελευταίο Μήνυμα: 22-09-19, 15:12
  2. Ελεγχος Κινητηρα με PWM
    By iliasklou in forum Διάφορα Κυκλώματα
    Απαντήσεις: 8
    Τελευταίο Μήνυμα: 06-04-15, 10:33
  3. Απαντήσεις: 6
    Τελευταίο Μήνυμα: 21-11-14, 19:24
  4. Πρόβλημα με PWM έλεγχο RGB LED.
    By foxclab01 in forum Εξαρτήματα & Datasheets
    Απαντήσεις: 11
    Τελευταίο Μήνυμα: 29-08-11, 22:03
  5. RGB Fading Using 3 LEDs and PWM
    By _ab in forum Μικροελεγκτές
    Απαντήσεις: 9
    Τελευταίο Μήνυμα: 05-05-06, 18:33

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

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