# Συζήτηση Κυκλωμάτων > Ψηφιακά Κυκλώματα > Μικροελεγκτές >  >  Μέτρηση θερμοκρασίας με PIC και I2C (LM75)

## babisko

Τώρα στα γεράματα αποφάσισα να ασχοληθώ λιγάκι με τους μικροεπεξεργαστές και συγκεκριμένα τους PICs της Microchip.  :Rolleyes: 
Χρησιμοποιώ το Flowcode για την ανάπτυξη του κώδικα και το Proteus για την εξομοίωση. Όσα project έφτιαξα λειτουργούν σωστά τόσο στην εξομοίωση όσο και στην κατασκευή σε breadbord.
Τις μέρες αυτές δοκιμάζω να "μετρήσω" θερμοκρασία με την βοήθεια του PIC16F877 και του διαύλου I2C με την βοήθεια του LM75. Όταν τρέχω το πρόγραμμα μέσα στο περιβάλλον του Flowcode τότε όλα λειτουργούν σωστά, έχω τις σωστές ενδείξεις (Φωτογραφίες 1 και 2 με διαφορετικές ενδείξεις θερμοκρασίες). Όταν όμως το τρέχω στο Proteus (εικόνες 3,4) έχω πάντα σταθερή την ένδειξη αυτή αντί την θερμοκρασία (η δεύτερη γραμμή της οθόνης LCD). Εννοείται ότι η δημιουργία του hex αρχείου γίνεται χωρίς λάθη. Φυσικά δεν δοκίμασα σε braedboard ακόμα, εξάλλου δεν νομίζω να έχει νόημα.
Κάποια γνώμη, υπόδειξη, πληροφορία, κατεύθυνση για να λύσω το πρόβλημα αυτό; 




Ευχαριστώ προκαταβολικά.

1.JPG2.JPG3.JPG4.JPG




ΥΓ. Αν δεν το έχω βάλει στο σωστό τμήμα, παρακαλώ κάποιον συντονιστή - διαχειριστή να το μετακινήσει στην σωστή θέση και ζητώ συγγνώμη για αυτό

----------


## xrist sakis

Καλημέρα, ποιό Flowcode ειναι αυτό; το 7; δεν έχω το LM75 αλλοιώς θα το δοκίμαζα. Εγώ έχω το 7 αλλά δεν έχω το lm75. Θα το κοιτάξω αργότερα... 
  Σάκης

----------


## babisko

> Καλημέρα, ποιό Flowcode ειναι αυτό; το 7; δεν έχω το LM75 αλλοιώς θα το δοκίμαζα. Εγώ έχω το 7 αλλά δεν έχω το lm75. Θα το κοιτάξω αργότερα... 
>   Σάκης



Ευχαριστώ για την απάντηση, περιμένω απάντησή σου όταν μπορέσεις και το κοιτάξεις
Το Flowcode είναι το 8.0.0.6

----------


## SProg

Έστω ότι το αισθητήριο σου επιστρέφει μέσω I2C την τιμή 0xFFFF (αυτό διαβάζεις σε συσκευές με I2C όταν δεν έχεις αρχικοποιήσει σωστά ή έχεις hardware πρόβλημα):

0xFFFF = (signed int) (-1)

*-1/256.0f = 0.0039
*
Και πάλι όχι αυτό που θες... μήπως δεν υποστηρίζεται το συγκεκριμένο αισθητήριο;

----------

babisko (14-03-19)

----------


## babisko

Τελικά δεν βρήκα λύση προς το παρόν. Πιστεύω ότι το πρόβλημα είναι ότι στο ότι μπορούν να συνδεθούν στον δίαυλο μέχρι 8 αισθητήρες, ο καθένας παίρνει την διεύθυνση του με τα pins A0, A1, A2. Το Flowcode δεν δίνει την δυνατότητα αυτή, άμεσα τουλάχιστον, δεν το κατάφερα ακόμα. Θα το ψάξω πάλι. Υπάρχει και η λύση του onewire (DS1820) λιγάκι προχωρημένο όμως για μένα ακόμα αυτό το πρωτόκολλο. Για την ώρα θα παραμείνω σε αναλογικούς αισθητήρες (LM35) που τα καταφέρνω μια χαρά. 
Και κάτι ακόμα. Για τον προγραμματισμό του Μ/Ε χρησιμοποιώ τον κλώνο Pickit3 με το IPE της Microchip. Όσες φορές δοκίμασα να περάσω ένα απλό hex αρχείο και σε οποιονδήποτε Μ/Ε παίνρω το μήνυμα της φωτογραφίας. Να σημειώσω ότι οι συνδέσεις του Μ/Ε (Vpp, Vdd, Vss, PGC, PGD ) είναι σωστές και ότι δίνω εξωτερική τάση 5V στον Μ/Ε (Vdd, Vss). Έψαξα στο ίντερνετ αλλά δεν με φώτισαν αυτά που βρήκα. Κάποια πρόταση για να λύσω και αυτό το πρόβλημα;

1.JPG

----------


## babisko

> Για τον προγραμματισμό του Μ/Ε χρησιμοποιώ τον κλώνο Pickit3 με το IPE της Microchip. Όσες φορές δοκίμασα να περάσω ένα απλό hex αρχείο και σε οποιονδήποτε Μ/Ε παίνρω το μήνυμα της φωτογραφίας. Να σημειώσω ότι οι συνδέσεις του Μ/Ε (Vpp, Vdd, Vss, PGC, PGD ) είναι σωστές και ότι δίνω εξωτερική τάση 5V στον Μ/Ε (Vdd, Vss). Έψαξα στο ίντερνετ αλλά δεν με φώτισαν αυτά που βρήκα. Κάποια πρόταση για να λύσω και αυτό το πρόβλημα;
> 
> 1.JPG



Λύθηκε αυτό το πρόβλημα, έφταιγε η ZIF βάση του ολοκληρωμένου που χρησιμοποιούσα για τον προγραμματισμό, αλλάχτηκε αυτή και όλα πηγαίνουν μια χαρά, πιθανόν εσωτερικά να είχε κάποια διακοπή ή βραχυκύκλωμα, μάλλον έπεσα σε καρακινεζιά βάση :Tongue:

----------


## xrist sakis

Καλημέρα... Δεν μπόρεσα να βρω το lm 75 και πρέπει να το παραγγείλω από έξω.Εσύ από που το πήρες; Εγώ χρησιμοποιώ τα DS18S20 και δεν έχω πρόβλημα, απλά αυτά τα lm75 φαίνεται να έχουν μεγαλύτερη ακρίβεια. Το  proteus είναι αυθεντικό;
    Σάκης

----------


## babisko

> Καλημέρα... Δεν μπόρεσα να βρω το lm 75 και πρέπει να το παραγγείλω από έξω.Εσύ από που το πήρες; Εγώ χρησιμοποιώ τα DS18S20 και δεν έχω πρόβλημα, απλά αυτά τα lm75 φαίνεται να έχουν μεγαλύτερη ακρίβεια. Το  proteus είναι αυθεντικό;
>     Σάκης



Καλημέρα Σάκη
Το LM75 το πήρα από ebay μονταρισμένο σε μικρή, λιλιπούτια πλακετίτσα, αλλά έχω και μερικά τσιπάκια, όμως δεν τα χρησιμοποίησα, το δοκίμασα μόνο σε εξομοίωση στο proteus. Όσον δε αφορά τον Πρωτέα, έχω "δανεική" την έκδοση 8   :Cool: 
Θα ήθελα κάποιες πληροφορίες και αν μπορούσες και την βοήθειά σου για το DS18B20, γιατί με ενδιαφέρει

----------


## xrist sakis

Εάν ψάξεις μέσα στα παραδείγματα της Matrix έχει για το ds18b20. Απλά έχει ανάλυση 0.5 βαθμούς Κελσίου. Το έχω χρησιμοποιήσει και θα σου στείλω το flowcode μόλις το βρω.

----------

babisko (21-03-19)

----------


## babisko

Βρήκα τα δυο παραδείγματα one wire στο site της Matrix, ένα με πολλά DS και ένα με ένα DS σε κάθε δίαυλο. Κατάφερα να τα κάνω να λειτουργήσουν και στην εξομοίωση, αλλά...
Αυτό με αυτό με πολλούς αισθητήρες (Multi onewire) λειτουργεί σωστά με DS1822, DS18S20 και το DS18B20 (πάντα εξομοίωση στον Πρωτέα, δεν δοκίμασα σε breadbord ακόμη) αλλά αυτό με έναν αισθητήρα (Single onewire) λειτουργεί μόνο με DS1822 και DS18S20 αλλά δεν λειτουργεί με το DS18B20, παίρνω μήνυμα λάθους "CRC ERROR" Κάποια υπόδειξη για αυτό;

ΥΓ. Στον Πρωτέα χρησιμοποιώ το DS1822 αντί το DS1820 γιατί απλά δεν υπάρχει το DS1820.

----------

