PDA

Επιστροφή στο Forum : Θερμόμετρο



ALAMAN
24-02-08, 15:32
Γειά σας!
Θέλω να κατασκευάσω ένα ψηφιακό θερμόμετρο οπου θα δίχνει την ένδειξη σε display που νομίζω οτι είναι και πιο εύκολο...
Έχω ένα PTC θερμίστορ το PT100 οπου σε θερμοκρασία περιβάλλοντος δίνει περίπου 110-115Ω
Σε συνδεσμολογία γέφυρας θα παράγουμε μία τάση η οποία θα ενισχυθεί με τελεστικό ενισχυτή και θα μετατραπεί σε δυαδική τιμή των 8bits
Το πρόβλημά μου είναι, πώς θα οδηγίσω 3 dislpay (για να έχω και καλή ευαισθησία) με μία δυαδική τιμή των 8bits?
Για παράδειγμα η τιμή 00111000 αντιστοιχεί στους 28 βαθμούς. πώς θα το απεικονίσουμε στα display?
Σκέφτηκα τα ολοκληρωμένα που οδηγούν απευθείας ένα dislpay, αλλα αυτά είναι με 4bits
Με μικροελεγκτή της AVR μπορεί να γίνει κάτι?

Radiometer
24-02-08, 18:45
Εφόσον το σκέφτεσαι να βάλεις μικροελεγκτή σου έχω μια άλλη πρόταση που γίνετε πολύ εύκολα χωρίς πολλά αναλογικά ηλεκτρονικά.
Παίρνεις έναν PIC χρησιμοποιείς τον εσωτερικό ADC και σαν αισθητήριο βάζεις το LM35 με αναλογικι εξοδο,
και απευθείας απεικόνιση σε display led :D

το LM35 είναι γραμμικό, το PTC θερμίστορ σε συνδεσμολογία γέφυρας πιστεύω θα έχει κάποια απόκλιση.

ALAMAN
24-02-08, 19:03
Σκέφτομαι να χρησιμοποιήσω τον ADC0801.
Τον μικροελεγκτή τον ήθελα για να με οδηγήσει τα display, να πάρει την δυαδική τιμή στην θύρα εισόδου και να ενεργοποιήσει τα κατάληλα pins των display.

ignatios67
24-02-08, 19:10
ότι σου λέει ο radiometer
οτιδήποτε άλλο η θα έχει γραμμική απόκλιση η δεν θα δουλεύει σωστά

Radiometer
25-02-08, 00:58
Σκέφτομαι να χρησιμοποιήσω τον ADC0801.
Τον μικροελεγκτή τον ήθελα για να με οδηγήσει τα display, να πάρει την δυαδική τιμή στην θύρα εισόδου και να ενεργοποιήσει τα κατάληλα pins των display.

καλός ο ADC0801 τον δούλεψα σε ένα εργαστήριο στο ΤΕΙ, και συγκεκριμένα τον ADC0804.

απλώς διπλή δουλειά θα κανείς διότι μπορείς να εκμεταλλευτής τον ADC του μικροελεγκτή,
αφού θα έχεις που θα έχεις τον μικροελεγκτή για τα display.
κάπου είχα ένα σχέδιο για θερμόμετρο με το ADC0801 άμα το βρω θα το ανεβάσω :D

eebabs2000
25-02-08, 13:22
Δεν είναι δύσκολα τα πράγματα έχει βέβαια λίγο δουλίτσα. Θα προγραμματίσεις τον μικροελεκτή να ανάβει τα LED display πολυπλεκτικά, πιστεύω κατάλαβες τι εννοώ... Πρώτα θα δίνει σήμα στο 1ο για παράδειγμα θα εμφανίζει τον αριθμό που θα του αντιστοιχεί, μετά στο 2ο θα εμφανίζει τον δεύτερο αριθμό κ.ο.κ. Επειδή αυτό θα γίνεται πάρα πολύ γρήγορα θα φαίνεται σαν να ανάβουν σταθερά τα displays. Ένα τέτοιο πρόγραμμα είχα κάνει κάποτε...

Η άλλη λύση είναι να χρησιμοποιήσεις τον ΑΤmega8535 ο οποίος έχει ενσωματομένο ADC και μέσω της codevision C να γράψεις ένα απλό πρόγραμμα που θα κάνει όλη αυτή τη δουλεία, μέσα σε 10 γραμμές!!! Σαν αισθητήρα προτείνω και γω το LM35!

ALAMAN
25-02-08, 16:08
Συμφωνώ! θα χρησιμοποιήσω LM35...


Δεν είναι δύσκολα τα πράγματα έχει βέβαια λίγο δουλίτσα. Θα προγραμματίσεις τον μικροελεκτή να ανάβει τα LED display πολυπλεκτικά, πιστεύω κατάλαβες τι εννοώ... Πρώτα θα δίνει σήμα στο 1ο για παράδειγμα θα εμφανίζει τον αριθμό που θα του αντιστοιχεί, μετά στο 2ο θα εμφανίζει τον δεύτερο αριθμό κ.ο.κ. Επειδή αυτό θα γίνεται πάρα πολύ γρήγορα θα φαίνεται σαν να ανάβουν σταθερά τα displays. Ένα τέτοιο πρόγραμμα είχα κάνει κάποτε...

Η άλλη λύση είναι να χρησιμοποιήσεις τον ΑΤmega8535 ο οποίος έχει ενσωματομένο ADC και μέσω της codevision C να γράψεις ένα απλό πρόγραμμα που θα κάνει όλη αυτή τη δουλεία, μέσα σε 10 γραμμές!!! Σαν αισθητήρα προτείνω και γω το LM35!
Ο ATmega8535 είναι η κατάληλη επιλογή πιστεύω.
Δε θέλω όμως να δίνει σήμα ένα ένα στα display διαδοχηκά σε μεγάλη συχνότητα. Ο ATmega8535 νομίζω έχει 4 θύρες. Η θύρα Α θα γίνει είσοδος και οι άλλες 3 έξοδοι.
Σκεφτόμουν να το κάνω σε microbacic
Οι τιμές είναι εντελώς τυχαίες. Κάθε θύρα θα αντοιστιχεί και σε ένα display.
Και όλω του οτι δεν έχω ασχοληθεί πολύ με τους μικροελεγκτές νομίζω οτι θα με πεδέψει λιγάκι...

Τί λέτε για κάτι τέτοιο?

if porta.0 = 0
porta.1 = 0
porta.2 = 0
porta.3 = 1
porta.4 = 0
porta.5 = 1
porta.6 = 1
porta.7 = 1 then
portb.0 = 1
portb.1 = 1
portb.2 = 1
portb.3 = 0
portb.4 = 1
portb.5 = 0
portb.6 = 0
portb.7 = 1

portc.0 = 0
portc.1 = 0
portc.2 = 0
portc.3 = 1
portc.4 = 1
portc.5 = 0
portc.6 = 1
portc.7 = 0


portd.0 = 1
portd.1 = 1
portd.2 = 0
portd.3 = 0
portd.4 = 0
portd.5 = 0
portd.6 = 1
portd.7 = 0

eebabs2000
25-02-08, 16:57
...Δε θέλω όμως να δίνει σήμα ένα ένα στα display διαδοχηκά σε μεγάλη συχνότητα. Ο ATmega8535 νομίζω έχει 4 θύρες. Η θύρα Α θα γίνει είσοδος και οι άλλες 3 έξοδοι.
Σκεφτόμουν να το κάνω σε microbacic...
Όπως θες... Με το τρόπο που σου λέω απλά δε θα χρησιμοποιήσεις 3 πόρτες αλλά μία, και με τις υπόλοιπες κάνεις κι' άλλα πράγματα π.χ στην άλλη πόρτα να εξάγει την υγρασία, την ατμοσφαιρική πίεση στην άλλη κτλ (εννοείτε με τους κατάλληλους αισθητήρες κάθε φορά).

th_shak
25-02-08, 22:38
Τί λέτε για κάτι τέτοιο?

if porta.0 = 0
porta.1 = 0
porta.2 = 0
porta.3 = 1
porta.4 = 0
porta.5 = 1
porta.6 = 1
porta.7 = 1 then
portb.0 = 1
portb.1 = 1
portb.2 = 1
portb.3 = 0
portb.4 = 1
portb.5 = 0
portb.6 = 0
portb.7 = 1

portc.0 = 0
portc.1 = 0
portc.2 = 0
portc.3 = 1
portc.4 = 1
portc.5 = 0
portc.6 = 1
portc.7 = 0


portd.0 = 1
portd.1 = 1
portd.2 = 0
portd.3 = 0
portd.4 = 0
portd.5 = 0
portd.6 = 1
portd.7 = 0

Φίλε αυτό με την if δεν υπάρχει περίπτωση να δουλέψει, το υπόλοιπο ίσως. Έχω φτιάξει ένα προγραμματιζόμενο θερμοστάτη χώρου με το DS1620 της Dallas (Maxim πλέων) για κατασκευή σε ένα εργαστήριο του ΤΕΙ και αν ενδιαφέρεσαι να χρησιμοποιήσεις αυτόν τον αισθητήρα θα σου στείλω το πρόγραμμα και το σχηματικό να το κάνεις. Ο μικροελεγκτής που χρησιμοποίησα είναι ο ATtiny2313. Μπορείς να τον πάρεις και τζάμπα από την Maxim σαν sample.

http://www.maxim-ic.com/quick_view2.cfm/qv_pk/2735

ALAMAN
25-02-08, 22:54
Θερμόστάτης όχι. Θέλω μόνο να μετράει τη θερμοκρασία και να την απεικονίζει σε display.
Το πρόγραμμα που έγγραψα ήξερα βέβαια οτι δέ θα δουλέψει όπως και αποδείχτηκε, :lol: απλά ήθελα να δείξω πώς περίπου θα το έκαμνα για να μπορέσουν να με βοηθήσουν και οι έμπειροι.
Στείλε πάντως το πρόγραμμα να το ρίξω μια ματιά, άν και δεν περιμένω να βγάλω άκρη. :lol:

th_shak
25-02-08, 23:08
Στο rar έχει το πρόγραμμα για τον θερμοστάτη, το πρόγραμμα που άλλαξα για απλό θερμόμετρο και το σχηματικό. Αυτά που είναι με κόκκινο στο σχηματικό δεν τα βάζεις αν θες μόνο λειτουργία θερμομέτρου.

ALAMAN
26-02-08, 00:10
Ευχαριστώ πολύ!
Θα κάνω μια δοκιμή αύριο...
Τα display είναι κοινής ανόδου ή καθόδου?

Radiometer
26-02-08, 00:32
Ευχαριστώ πολύ!
Θα κάνω μια δοκιμή αύριο...
Τα display είναι κοινής ανόδου ή καθόδου?

τα 3 τρανζίστορ που έχει λειτουργούν σαν διακόπτες και παίρνουν +5 οπότε είναι κοινής ανόδου

th_shak
26-02-08, 21:14
Ναι κοινής ανόδου είναι. Τα Display γράφουν στα ποδαράκια 3 και 8 c.a (common anode) και τα τρανζίστορ είναι PNP.