Skip to content

Commit

Permalink
ολοκλήρωση, μάλλον, τού thermistor driver
Browse files Browse the repository at this point in the history
  • Loading branch information
Louismys authored Dec 4, 2023
1 parent 2ce495d commit 8f0c2ce
Showing 1 changed file with 18 additions and 0 deletions.
18 changes: 18 additions & 0 deletions Rocket/app/SoundCard/sound_card_driver.py
Original file line number Diff line number Diff line change
Expand Up @@ -101,3 +101,21 @@ def record(card: u3.U3, record_for: int = 650):
card.streamStop()
logging.debug("Stream stopped.")
card.close()

def temp_read(card: u3.U3):
V_t=2.44
R_k=10000
T_0=298.15 ## Τόσο είναι σε Kelvin η θερμοκρασία δωματίου, 25oC. Θερμοκρασίες Kelvin είναι αυτές που επεξεργάζεται η εξίσωση, παρακάτω.
B=3575 ## Η συγκεκριμένη τιμή λέγεται beta value και είναι χαρακτηριστική για κάθε thermistor. Το μοντέλο, παρακάτω, είναι ένα κοινό μοντέλο υπολογισμού τής θερμοκρασίας (τού thermistor) από την τιμή τής αντίστασής
## του. Ας ξεκινήσουμε με αυτό και, αν χρειαστούμε βελτιώσεις, θα περάσουμε σε ένα, υπάρχει η πιθανότητα, πιο ακριβές μοντέλο (τότε, αν είναι, θα γράψω και ένα πρόγραμμα για το ανάλογο calibration, με το
## μοντέλο εδώ δεν χρειάζεται κάποιου είδους calibration, γιατί οι τιμές που χρησιμοποιεί δίνονται συχνά (όπως και εδώ) εργοστασιακά για το εκάστοτε thermistor). Μικρή τελευταία σημείωση: χρησιμοποίησα μια
## τιμή από τη λίστα στο datasheet, για το thermistor, που αφήνω στο archive. Επέλεξα το τρίτο από τη λίστα (γιατί πολλά από αυτά στη λίστα είχαν αυτό το beta value, οπότε το θεώρησα πιθανότερο να πέσω μέσα).
## Αν χρειαστεί να κάνουμε κάποια αλλαγή, ανάλογα με το thermistor που αξιοποιεί το Electrical, θα το αλλάξουμε όπως χρειάζεται.
R_0=10000 ## Αυτή είναι η αντίσταση τού (τρίτου στη λίστα, όπως ανέφερα) thermistor στους 25oC.
V_in=card.getAIN(2) ## Με τη συγκεκριμένη κλήση αυτής τής μεθόδου από το library τού U3, διαβάζουμε την τάση εισόδου στο FIO2. Προφανώς, πρώτα, θα πρέπει να έχει γίνει στο πρόγραμμα χρήσης instantiated και
## 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*ln(R_measured/R_0))-273.15)
return therm_temp

0 comments on commit 8f0c2ce

Please sign in to comment.