Σελίδα 1 από 7 1 2 3 ... ΤελευταίαΤελευταία
Εμφάνιση αποτελεσμάτων : 1 έως 10 από 69

Θέμα: Arduino led numbers to LCD

  1. #1
    Μέλος
    Όνομα
    Θωμάς
    Εγγραφή
    Dec 2012
    Περιοχή
    Αθήνα
    Μηνύματα
    511

    Προεπιλογή Arduino led numbers to LCD

    Καλημέρα παιδιά.

    Θα ήθελα να μεταφέρω τα νούμερα που παίρνω απο ένα led number :



    Σε μια οθόνη για arduino ας πούμε της κλασικές 20x2.


    Είμαι δυνατή μια τέτοια μεταφορά;

    0 Not allowed! Not allowed!

  2. #2
    Μέλος
    Όνομα
    Νίκος
    Εγγραφή
    Feb 2014
    Περιοχή
    Μοσχάτο
    Μηνύματα
    606

    Προεπιλογή

    Γεια χαρά...

    Εννοείς ότι θέλεις να "διαβάζεις" τα πόδια του 7-segment display και να εμφανίζεις το νούμερο που δείχνει σαν κείμενο στην οθόνη?
    Φαντάζομαι ότι το arduino που ελέγχει την οθόνη, δεν είναι το ίδιο που ελέγχει και τα leds, έτσι?

    0 Not allowed! Not allowed!
    Mastroxalastis / Μαστροχαλαστής
    https://www.youtube.com/channel/UCOWjSR-OOc-ZBCT61EX_lJg

  3. #3
    Μέλος
    Όνομα
    Θωμάς
    Εγγραφή
    Dec 2012
    Περιοχή
    Αθήνα
    Μηνύματα
    511

    Προεπιλογή

    Ακριβώς φίλε, τα LEDs είναι νούμερα που δίνει άλλη συσκευή. Το arduino θέλω αυτές τις τιμές να μου τις δίνει σε αριθμούς η στο serial monitor η σε οθόνη άλλη...

    0 Not allowed! Not allowed!

  4. #4
    Μέλος
    Όνομα
    Νίκος
    Εγγραφή
    Feb 2014
    Περιοχή
    Μοσχάτο
    Μηνύματα
    606

    Προεπιλογή

    Δηλαδή θες να κάνεις το αντίστροφο του BCD->7-segment decoding..
    Δεν ξέρω αν υπάρχει έτοιμο ολοκληρωμένο για αυτό.. αν πρόκειτε για 1 display μπορείς να οδηγήσεις παράλληλα τις 8 εισόδους του display σε 8 εισόδους του arduino, να τις διαβάζεις και να μετατρέπεις τις εισόδους σε αριθμούς.
    αν έχεις παρπάνω απο ένα display όμως, θα χρειαστούν ένα κάρο είσοδοι... οπότε βάζεις και shift register στο παιχνίδι...

    Οσον αφορά για το πως θα κάνεις την μετατροπή, ο ποιό απλός τρόπος είναι με if... πολλά if... πάαααρα πολλά if....
    Εναλακτικά αν ξέρεις απο άλγεβρα bool, βγάλε τον πίνακα αληθείας 7-seg -> BCD για να βρεις την συνάρτηση και βάζε το arduino να στην λύσει...

    Ενδιαφέρον φαίνεται μπορεί να λέω φυσικά τελείως βλακείες, δεν το έχω καλοσκεφτεί, αλλά ήταν ένα ευχάριστο διάλειμμα απο την δουλειά

    0 Not allowed! Not allowed!
    Mastroxalastis / Μαστροχαλαστής
    https://www.youtube.com/channel/UCOWjSR-OOc-ZBCT61EX_lJg

  5. #5
    Μέλος Το avatar του χρήστη FILMAN
    Όνομα
    Φίλιππος
    Εγγραφή
    Dec 2009
    Περιοχή
    Δάφνη, Αθήνα
    Μηνύματα
    11.964

    Προεπιλογή

    Και τί γίνεται αν η συσκευή με το LED display το οδηγεί με πολύπλεξη;

    0 Not allowed! Not allowed!

  6. #6
    Μέλος
    Όνομα
    Νίκος
    Εγγραφή
    Feb 2014
    Περιοχή
    Μοσχάτο
    Μηνύματα
    606

    Προεπιλογή

    Παράθεση Αρχικό μήνυμα από FILMAN Εμφάνιση μηνυμάτων
    Και τί γίνεται αν η συσκευή με το LED display το οδηγεί με πολύπλεξη;
    Να, είδες που έλεγα μπαρούφες τελικά? θα μπορούσες βέβαια να παίρνεις trigger/clock απο το common...
    just brainstorming here....

    0 Not allowed! Not allowed!
    Mastroxalastis / Μαστροχαλαστής
    https://www.youtube.com/channel/UCOWjSR-OOc-ZBCT61EX_lJg

  7. #7
    Μέλος
    Όνομα
    Γιωργος
    Εγγραφή
    May 2009
    Περιοχή
    United Kingdom
    Μηνύματα
    83

    Προεπιλογή

    Καλησπέρα σε όλους,

    Με μία interrupt απο εξωτερικό pin μπορεί να παίρνει τις τιμές απο τα segments την στιγμή που ενεργοποιείται το συγκεκριμένο ψηφίο ακόμα και με πολυπλεξία. Με αυτο τον τρόπο γίνεται να συγχρονίσει το δικό του σύστημα και να διαβάζει περισσότερα απο ένα ψηφία γράφοντας φυσικά το κατάλληλο πρόγραμμα.

    Φιλικά
    Γιώργος

    0 Not allowed! Not allowed!

  8. #8
    Μέλος
    Όνομα
    Θωμάς
    Εγγραφή
    Dec 2012
    Περιοχή
    Αθήνα
    Μηνύματα
    511

    Προεπιλογή Arduino led numbers to LCD

    Οι οθόνες είναι 4. Και δίνουν αριθμούς θερμοκρασίας τύπου 19.8. Το θέμα είναι ότι θα χρειαστώ τόσες πολλές εισόδους στο arduino??

    Φαντάζομαι πρέπει να θέσω τα pin ως input σωστά; Και ότι "βλέπει" να ανάβει απο συνδυασμούς να το μετατρέπει σε νούμερα;

    Αλλά πως μπορώ να μειώσω κάπως τις εισόδους;

    0 Not allowed! Not allowed!
    Τελευταία επεξεργασία από το χρήστη hackertom : 03-03-17 στις 20:39

  9. #9
    Μέλος Το avatar του χρήστη SProg
    Όνομα
    Σάββας
    Εγγραφή
    Mar 2014
    Περιοχή
    Θεσσαλονίκη
    Μηνύματα
    2.612

    Προεπιλογή

    Το αν ειναι με πολυπλεξη ή οχι μπορουμε (κατα 99%) να στο πουμε εαν δουμε μια φωτογραφια με τα 7-segment και τα υλικα γυρω του.

    Η περιπτωση της πολυπλεξης ειναι και η πιο απλη για σενα - με τα λιγοτερα Pin.Διαβαζεις καθε Segment τη στιγμη που 'πρεπει'. (οπως ειπε ο Γιωργος παραπανω)

    Οι εισοδοι θα ειναι περιπου 8+3=11.



    Eαν δεν ειναι με πολυπλεξη και εχεις μερακι... κανε αποκωδικοποιητη με πυλες.

    0 Not allowed! Not allowed!

  10. #10
    Μέλος Το avatar του χρήστη Fire Doger
    Όνομα
    Στέφανος
    Εγγραφή
    Jan 2015
    Περιοχή
    .
    Μηνύματα
    1.519

    Προεπιλογή

    Υπάρχουν 2 τρόποι ελέγχου 7 segment
    α) κάθε led σε ξεχωριστή έξοδο του μΕ ή ολοκληρωμένου και ανάβουν ταυτόχρονα
    β) με σάρωση, 8 για τα led με όλα τα 7segment παράλληλα και το κοινό του καθενός σε ξεχωριστή έξοδο του μΕ. Ανάβει το 1ο για 10ms, σβήνει και μετά ανάβει το 2ο για 10ms κλπ κλπ και με το μετέσθημα τα βλέπεις σαν να είναι όλα αναμμένα

    Βέβαια υπάρχουν και 2 τρόποι να διαβάσεις το 7 segment
    α) Με παρεμβατικό τρόπο τσιμπώντας τα σήματα που πάνε στα led
    β) Με μη παρεμβατικό τρόπο τσιμπώντας την φωτεινότητα των led

    Και στις 2 περιπτώσεις η σχεδίαση είναι ανάλογη του τρόπου ελέγχου.
    Αν έχεις έλεγχο α τότε το μόνο που σε νοιάζει είναι να πάρεις τα δεδομένα ανά διαστήματα της αρεσκείας σου
    Αν έχεις έλεγχο β τότε πρέπει να συγχρονίσεις την ενεργοποίηση του 1ου 7 Segment με την διαδικασία διαβάσματος του 1ου 7 Segment (και φυσικά η διαδικασία να είναι γρηγορότερη απ' την διάρκεια που είναι ενεργό το 1ο 7 segment κάτι που είναι εύκολο για ψηφιακές εισόδους). Αν δεν τα συγχρονίσεις και διαβάσεις το μισά ψηφία όταν είναι ενεργό και τύχει τα άλλα μισά να τα διαβάσεις όταν έχει σβήσει τότε έχεις λάθος μέτρηση)

    Μη παρεμβατικός τρόπος:
    Να εκτυπώσεις (ή να κατασκευάσεις αν μπορείς) ένα κουτάκι με εσωτερικές διαστάσεις το 7 segment για να να κουμπώνει σαν καπάκι (στην περίπτωσή σου ότι διαστάσεις έχουν και τα 3 μαζί) με 8 φωτοκύτταρα για το κάθε 7 segment και τοιχώματα ανάμεσα έτσι ώστε το κάθε φωτοκύτταρο να ανιχνεύει μόνο 1 segment.
    Ο κάθε αισθητήρας μάλλον θα μπαίνει σε ένα τελεστικό για να μπορείς να ρυθμίζεις το level της φωτηνότητας που ενεργοποιεί την έξοδο και να έχεις επίπεδο 0-5V

    Το πως θα τα οδηγείς στον μΕ:
    Αν θέλεις με τον α τρόπο και έχεις α έλεγχο τότε έχεις πολλά σήματα. Σίγουρα θα υπάρχει κάποιος τρόπος να τα συμπιέσεις αλλά μην σου λέω μλκιες, οι άλλοι θα έχουν καλύτερη λύση.
    Αν θέλεις με τον α τρόπο και έχεις β έλεγχο τότε έχεις 8+3 σήματα τα οποία πάλι θα μπορείς να συμπιέσεις σε κάποιο shift register κλπ.

    Το πλεονέκτημα του β τρόπου είναι ότι μπορείς να διαβάζεις όπως γουστάρεις. Διαβάζοντας με σάρωση, ενεργοποιώντας πχ τους τελεστικούς για τα αισθητήρια του 1ου 7 segment, μετά του 2ου κλπ και έχοντας τις εξόδους του κάθε segment σε OR (όλα τα A σε OR, όλα τα B σε άλλη OR, όλα τα C σε άλλη OR, κλπ...) έχεις 8 εισόδους, 3 εξόδους.

    Αν θέλεις με τον β τρόπο και έχεις β έλεγχο τότε έχει παίδεμα στο software βάζοντας χρονιστές και να ξέρεις ή να μετράει την ταχύτητα σάρωσης του ελεγκτή ή στο hardware για να παίρνεις interrupt ανάλογα με 2 αισθητήρια για το κάθε segment (γιατί δεν υπάρχει κάποιο που είναι αναμμένο σε όλα τα ψηφία, στην καλύτερη θέλεις 2, πχ b,c)

    Τον β τρόπο δεν τον έχω κάνει, είναι δύσκολο γιατί θέλει καλό καπάκι, δεν είμαι σίγουρος για τον χρόνο απόκρισης των αισθητήριων κλπ, θέλει δοκιμές αλλά θα γ@μ@ει σαν μη παρεμβατικός τρόπος.

    Αφού τα δεδομένα καταλήξουν στον μΕ είναι πολύ εύκολο, 10 ψηφία, άρα 10 if απλά πράγματα.
    2 τρόποι:
    Αργός: Σε κάθε if ελέγχεις όλα τα segment του αντίστοιχου ψηφίου. (Παράδειγμα)
    If(a! && b && c && !d && !e && !f && !g) //1
    else if (....)//2
    ....

    Γρήγορος: If μέσα σε if (παράδειγμα)
    if(a){ //2 ή 3 ή 5 ή 6 ή 7 ή 8 ή 9 ή 0
    ....
    }else{ //Το a δεν το έχει μόνο το 1 και το 4

    if(G) //Αν έχει G είναι το 4
    else //αλλιώς είναι το 1

    }
    Άρα στην περίπτωση που είναι το 1 για να το βρεις έχεις διαβάσει 2 pin αντί για 7.
    Αν είναι το 4 πάλι το έχεις βρει διαβάζοντας μόνο 2 πιν και όχι 7.

    Την είχα παλιά αυτήν την ιδέα, δεν την έκανα πράξη ποτέ και δεν έψαξα αν υπάρχει, ίσως έτσι διαλέγοντας τα κατάλληλα segment να μην χρειάζεται καν να διαβάσεις 8 σήματα αλλά λιγότερα αν κάποιο δεν υπάρχει καν μέσα στις if. Δοκιμάζοντας συνδυασμούς ίσως βγει ίσως δεν υπάρχει.

    Εξαρτάται για τι το θέλεις, αν έχεις όλη την cpu και πολλά πιν διαθέσιμα είναι σχετικά απλό.

    3 Not allowed! Not allowed!

Σελίδα 1 από 7 1 2 3 ... ΤελευταίαΤελευταία

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

  1. arduino και lcd 16x2
    By cspetr in forum Μικροελεγκτές
    Απαντήσεις: 17
    Τελευταίο Μήνυμα: 06-03-15, 10:17
  2. Arduino και TFT LCD 3.2''
    By kwstas92 in forum Μικροελεγκτές
    Απαντήσεις: 18
    Τελευταίο Μήνυμα: 27-01-15, 14:05
  3. Arduino LCD clock, Temp
    By CLOCKMAN in forum Παρουσίαση Ολοκληρωμένων Κατασκευών
    Απαντήσεις: 4
    Τελευταίο Μήνυμα: 01-10-14, 20:58
  4. arduino και lcd
    By peiperakos in forum Μικροελεγκτές
    Απαντήσεις: 27
    Τελευταίο Μήνυμα: 15-12-13, 18:57
  5. Πώς απεικονίζω σε LCD float numbers?
    By QED in forum Μικροελεγκτές
    Απαντήσεις: 4
    Τελευταίο Μήνυμα: 13-01-05, 18:30

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

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