Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
… into main
  • Loading branch information
xrysanthemo committed Dec 4, 2023
2 parents f1606d4 + 6bf48d2 commit f25affa
Showing 1 changed file with 19 additions and 0 deletions.
19 changes: 19 additions & 0 deletions Rocket/app/SoundCard/sound_card_driver.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import logging
import time
import threading
import math

import u3

Expand Down Expand Up @@ -101,3 +102,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*math.ln(R_measured/R_0))-273.15)
return therm_temp

0 comments on commit f25affa

Please sign in to comment.