Skip to content

Commit

Permalink
τελικό commit
Browse files Browse the repository at this point in the history
  • Loading branch information
KonstadinaN authored Dec 4, 2023
1 parent ad1206f commit 1bf3ece
Showing 1 changed file with 15 additions and 5 deletions.
20 changes: 15 additions & 5 deletions Rocket/app/SoundCard/sound_card_driver.py
Original file line number Diff line number Diff line change
Expand Up @@ -104,8 +104,13 @@ def record(card: u3.U3, record_for: int = 650):
card.close()

def temp_read(card: u3.U3):
V_t=2.44
R_k=10000
V_t=2.44 ## Αυτή είναι η τιμή τής (συνολικής) τάσης στο κύκλωμα τού voltage divider (Vcc (power supply)). (Εδώ είναι mock, στο πλαίσιο τού αρχικού κώδικα.)
## Όπως αναφέρω και παρακάτω, το LabJack-LV έχει (για τη δική μας χρήση) ένα range (για ανάγνωση) 0-2,44V. Θα χρειαστεί, είτε άμεσα, είτε με κάποιον
## (επιπλέον) divider, να δώσουμε στο κύκλωμα τού thermistor κατάλληλη τάση (Vcc) (όπως την αναφέρω και παρακάτω, 2,44V (ή πολύ κοντά, από κάτω)).
## Εικάζω ότι θα λειτουργήσει αποδοτικά (ειδικά, εδώ, από πλευράς range και ανάλυσης(-ευαισθησίας)). Ό,τι χρειάζεται, γενικά, το αναδιαμορφώνουμε.
R_k=10000 ## Η τιμή τής γνωστής αντίστασης στον (διπλό) voltage divider μας. (Εδώ είναι mock, στο πλαίσιο τού αρχικού κώδικα.) Γενικά, νομίζω, είναι καλό η τιμή
## είναι καλό να είναι συγκρίσιμη με αυτή (τη μέση;) με αυτή τού thermistor (πληροφοριακά, εδώ λαμβάνω υπόψη το ένα από τα δύο (και το τρίτο στη
## λίστα) thermistors που έχει στα datasheets του το Electrical, το οποίο, όπως αναφέρω και παρακάτω, ανεβάζω στο archive).
T_0=298.15 ## Τόσο είναι σε Kelvin η θερμοκρασία δωματίου, 25oC. Θερμοκρασίες Kelvin είναι αυτές που επεξεργάζεται η εξίσωση, παρακάτω.
B=3575 ## Η συγκεκριμένη τιμή λέγεται beta value και είναι χαρακτηριστική για κάθε thermistor. Το μοντέλο, παρακάτω, είναι ένα κοινό μοντέλο υπολογισμού τής θερμοκρασίας (τού thermistor) από την τιμή τής αντίστασής
## του. Ας ξεκινήσουμε με αυτό και, αν χρειαστούμε βελτιώσεις, θα περάσουμε σε ένα, υπάρχει η πιθανότητα, πιο ακριβές μοντέλο (τότε, αν είναι, θα γράψω και ένα πρόγραμμα για το ανάλογο calibration, με το
Expand All @@ -117,6 +122,11 @@ def temp_read(card: u3.U3):
## initialised το U3 που χρησιμοποιούμε (όπως και, απ' ό,τι καταλαβαίνω, γίνεται). Αν χρειαστεί, πάλι ανάλογα με τη χρήση από το Electrical, να αλλάξει το FIO pin, το αλλάζουμε στη συνέχεια.
## Τελευταία σημείωση: η LV έκδοση τού U3 που χρησιμοποιούμε έχει ένα voltage range 0-2,44V, οπότε θα πρέπει να έχουμε εξασφαλίσει ένα input σε αυτό το range (δε θα ήταν άσχημο, κιόλας, στα 2,44V
## ακριβώς (ή πολύ κοντά, από κάτω)).
R_measured=(V_in/V_t)*R_k ## Θα συνεχίσω τα τελευταία σχόλια, πιο μετά.
therm_temp=((T_0*B)/(B+T_0*math.ln(R_measured/R_0))-273.15)
return therm_temp
R_measured=(V_in/V_t)*R_k ## Αυτή είναι η εξίσωση, όπως υπολόγισα, για τον υπολογισμό τής αντίστασης τού thermistor από (διπλό) voltage divider. Αν υπάρχει
## κάποιο λάθος, την αλλάζουμε.
therm_temp=((T_0*B)/(B+T_0*math.log(R_measured/R_0))-273.15) ## Η συγκεκριμένη είναι η "Εξίσωση Β" (με beta value) που είναι μία από τις οποίες που
## χρησιμοποιείται για την προσέγγιση θερμοκρασίας για thermistor, σύμφωνα με τη βιβλιογραφία μου.
## Είναι μια πρώτη (ίσως και αρκετή) καλή προσέγγιση που μπορούμε να χρησιμοποιήσουμε. Αν
## χρειαστεί κάποια αλλαγή, θα το δούμε. Η συγκεκριμένη είναι χωρίς κάποια ανάγκη για calibration,
## οπότε είναι έτοιμη προς χρήση. Το τεστ θα δείξει και αν μάς κάνει.
return therm_temp ## Αυτή είναι η τελική μετρούμενη θερμοκρασία (τού thermistor (!) (ίσως να 'ναι σημαντικό να αναφερθεί (για κάποιο time delay κ.λπ.))).

0 comments on commit 1bf3ece

Please sign in to comment.