Πίνακας περιεχομένων:

Digitalηφιακή κλίμακα με ESP32: 12 βήματα
Digitalηφιακή κλίμακα με ESP32: 12 βήματα

Βίντεο: Digitalηφιακή κλίμακα με ESP32: 12 βήματα

Βίντεο: Digitalηφιακή κλίμακα με ESP32: 12 βήματα
Βίντεο: ¿Por qué Necesitas PESAR las Monedas? Báscula - Scale 2024, Ιούλιος
Anonim
Image
Image
Πόροι που χρησιμοποιήθηκαν
Πόροι που χρησιμοποιήθηκαν

Έχετε σκεφτεί ποτέ να τοποθετήσετε μια ψηφιακή ζυγαριά χρησιμοποιώντας ένα ESP32 και έναν αισθητήρα (γνωστό ως κυψέλη φορτίου); Σήμερα, θα σας δείξω πώς να το κάνετε αυτό μέσω μιας διαδικασίας που επιτρέπει επίσης άλλες εργαστηριακές δοκιμές, όπως τον προσδιορισμό της δύναμης που ασκεί ένας κινητήρας σε ένα σημείο, μεταξύ άλλων παραδειγμάτων.

Στη συνέχεια θα επιδείξω ορισμένες έννοιες που σχετίζονται με τη χρήση κυψελών φορτίου, θα καταγράψω δεδομένα κελιών για να δημιουργήσω μια κλίμακα παραδείγματος και θα επισημάνω άλλες πιθανές εφαρμογές κυψελών φορτίου.

Βήμα 1: Χρησιμοποιημένοι πόροι

• Heltec Lora 32 WiFi ESP

• Φορτώστε κελί (0 έως 50 newtons, χρησιμοποιώντας μια κλίμακα)

• 1 ποτενσιόμετρο 100k (καλύτερα αν χρησιμοποιείτε trimpot πολλαπλών τάσεων για λεπτή ρύθμιση)

• 1 Amp Op LM358

• 2 αντιστάσεις 1Μ5

• 2 αντιστάσεις 10k

• 1 αντίσταση 4k7

• Σύρματα

• Ένα Protoboard

• Καλώδιο USB για ESP

• Κλίμακα, δοχείο με διαβαθμισμένο όγκο ή οποιαδήποτε άλλη μέθοδο βαθμονόμησης.

Βήμα 2: Επίδειξη

Επίδειξη
Επίδειξη

Βήμα 3: Φόρτωση κελιών

Φόρτωση κελιών
Φόρτωση κελιών

• Είναι μετατροπείς δύναμης.

• Μπορούν να χρησιμοποιήσουν διάφορες μεθόδους για να μεταφράσουν την εφαρμοζόμενη δύναμη σε αναλογικό μέγεθος που μπορεί να χρησιμοποιηθεί ως μέτρο. Μεταξύ των πιο συνηθισμένων είναι εκείνοι που χρησιμοποιούν εκτεινόμετρα φύλλου, το πιεζοηλεκτρικό φαινόμενο, την υδραυλική, τις δονούμενες χορδές κλπ…

• Μπορούν επίσης να ταξινομηθούν με τη μορφή μέτρησης (τάση ή συμπίεση)

Βήμα 4: Φορτώστε κύτταρα και μετρητές πίεσης

Κυψέλες φορτίου και μετρητές καταπόνησης
Κυψέλες φορτίου και μετρητές καταπόνησης
Κυψέλες φορτίου και μετρητές καταπόνησης
Κυψέλες φορτίου και μετρητές καταπόνησης

• Τα φύλλα εκτάσεως είναι φύλλα (συνήθως πλαστικά) με τυπωμένο σύρμα που έχουν αντίσταση που μπορεί να ποικίλει με την αλλαγή μεγέθους.

• Η κατασκευή του στοχεύει κυρίως στη μετατροπή μηχανικής παραμόρφωσης σε παραλλαγή ηλεκτρικού μεγέθους (αντίσταση). Αυτό συμβαίνει κατά προτίμηση προς μία μόνο κατεύθυνση, έτσι ώστε να μπορεί να πραγματοποιηθεί αξιολόγηση συστατικών. Για αυτό, ο συνδυασμός αρκετών εκτατόμετρων είναι κοινός

• Όταν συνδέεται σωστά με ένα σώμα, η παραμόρφωσή του ισούται με αυτή του σώματος. Έτσι, η αντίστασή του ποικίλλει ανάλογα με την παραμόρφωση του σώματος, η οποία με τη σειρά της σχετίζεται με τη δύναμη παραμόρφωσης.

• Είναι επίσης γνωστοί ως μετρητές καταπόνησης.

• Όταν τεντώνεται από δύναμη εφελκυσμού, οι κλώνοι επιμηκύνονται και στενεύουν, αυξάνοντας την αντίσταση.

• Όταν συμπιέζονται από μια δύναμη συμπίεσης, τα σύρματα κονταίνουν και διευρύνονται, μειώνοντας την αντίσταση.

Βήμα 5: Γέφυρα Wheatstone

Γέφυρα Wheatstone
Γέφυρα Wheatstone

• Για μια πιο ακριβή μέτρηση και για να είναι δυνατή η αποτελεσματικότερη ανίχνευση της διακύμανσης της αντίστασης σε μια κυψέλη φορτίου, ο μετρητής παραμόρφωσης συναρμολογείται σε μια γέφυρα Wheatstone.

• Σε αυτήν τη διαμόρφωση, μπορούμε να καθορίσουμε τη διακύμανση της αντίστασης μέσω της ανισορροπίας γέφυρας.

• Εάν R1 = Rx και R2 = R3, τα διαχωριστικά τάσης θα είναι ίσα και οι τάσεις Vc και Vb θα είναι επίσης ίσες, με τη γέφυρα σε ισορροπία. Δηλαδή, Vbc = 0V.

• Εάν το Rx είναι διαφορετικό από το R1, η γέφυρα δεν θα είναι ισορροπημένη και η τάση Vbc θα είναι μηδενική.

• Είναι δυνατόν να δείξουμε πώς πρέπει να προκύψει αυτή η διακύμανση, αλλά εδώ, θα κάνουμε μια άμεση βαθμονόμηση, συσχετίζοντας την τιμή που διαβάζεται στο ADC με μια μάζα που εφαρμόζεται στην κυψέλη φορτίου.

Βήμα 6: Ενίσχυση

Ενίσχυση
Ενίσχυση

• Ακόμη και με τη γέφυρα Wheatstone για να γίνει η ανάγνωση πιο αποτελεσματική, οι μικρο παραμορφώσεις στο μέταλλο της κυψέλης φορτίου παράγουν μικρές διακυμάνσεις τάσης μεταξύ Vbc.

• Για την επίλυση αυτής της κατάστασης, θα χρησιμοποιήσουμε δύο στάδια ενίσχυσης. Το ένα για τον προσδιορισμό της διαφοράς και το άλλο για την αντιστοίχιση της τιμής που λαμβάνεται με το ADC του ESP.

Βήμα 7: Ενίσχυση (σχήμα)

Ενίσχυση (σχήμα)
Ενίσχυση (σχήμα)

• Το κέρδος του βήματος αφαίρεσης δίνεται από το R6 / R5 και είναι το ίδιο με το R7 / R8.

• Το κέρδος του μη αντιστρεπτικού τελικού βήματος δίνεται από το Pot / R10

Βήμα 8: Συλλογή δεδομένων για βαθμονόμηση

Συλλογή δεδομένων για βαθμονόμηση
Συλλογή δεδομένων για βαθμονόμηση
Συλλογή δεδομένων για βαθμονόμηση
Συλλογή δεδομένων για βαθμονόμηση

• Μόλις συναρμολογηθούν, ορίζουμε το τελικό κέρδος έτσι ώστε η τιμή της μεγαλύτερης μετρούμενης μάζας να είναι κοντά στη μέγιστη τιμή του ADC. Σε αυτήν την περίπτωση, για 2 κιλά που εφαρμόστηκαν στο κελί, η τάση εξόδου ήταν περίπου 3V3.

• Στη συνέχεια, μεταβάλλουμε την εφαρμοζόμενη μάζα (γνωστή μέσω ενός υπολοίπου και για κάθε τιμή) και συσχετίζουμε ένα LEITUR του ADC, αποκτώντας τον επόμενο πίνακα.

Βήμα 9: Απόκτηση σχέσης συνάρτησης μεταξύ της μετρηθείσας μάζας και της τιμής του ADC που λαμβάνεται

Λήψη Σχέσης Λειτουργίας Μεταξύ Μετρούμενης Μάζας και της Αξίας του ADC που Αποκτήθηκε
Λήψη Σχέσης Λειτουργίας Μεταξύ Μετρούμενης Μάζας και της Αξίας του ADC που Αποκτήθηκε

Χρησιμοποιούμε το λογισμικό PolySolve για να αποκτήσουμε ένα πολυώνυμο που αντιπροσωπεύει τη σχέση μεταξύ της μάζας και της τιμής του ADC.

Βήμα 10: Πηγαίος κώδικας

Πηγαίος Κώδικας - #Περιλαμβάνει

Τώρα που έχουμε πώς να λάβουμε τις μετρήσεις και να γνωρίζουμε τη σχέση μεταξύ του ADC και της εφαρμοζόμενης μάζας, μπορούμε να προχωρήσουμε στην πραγματική σύνταξη του λογισμικού.

// Βιβλιογραφίες για χρήση oLED #περιλαμβάνουν // Απαιτήσεις για το Arduino 1.6.5 και το μπροστινό μέρος #συμπεριλάβετε το "SSD1306.h" // o mesmo que #include "SSD1306Wire.h"

Πηγαίος κώδικας - #Ορίζει

// Os pinos do OLED estão conectados ao ESP32 pelos seguintes GPIO's: // OLED_SDA - GPIO4 // OLED_SCL - GPIO15 // OLED_RST - GPIO16 #define SDA 4 #define SCL 15 #define RST 16 // RST deve ser aj για λογισμικό

Πηγή - Παγκόσμιες μεταβλητές και σταθερές

Οθόνη SSD1306 (0x3c, SDA, SCL, RST). // Instanciando e ajustando os pinos do objeto "display" const int amostras = 10000; // número de amostras coletadas para a média const int pin = 13; // pino de leitura

Πηγαίος κώδικας - Ρύθμιση ()

void setup () {pinMode (pin, INPUT); // pino de leitura analógica Serial.begin (115200); // iniciando a serial // Inicia o display display.init (); display.flipScreenVertically (); // Vira a tela verticalmente}

Πηγαίος Κώδικας - Βρόχος ()

void loop () {float medidas = 0.0; // variável para manipular as medidas float massa = 0.0; // variável para armazenar o valor da massa // inicia a coleta de amostras do ADC for (int i = 0; i (5000)) // είναι απαραίτητο για 5 εβδομάδες {// Envia um CSV contendo o instante, a medida média do ADC e o valor em gramas // para a Serial. Serial.print (millis () / 1000.0, 0); // instante em segundos Serial.print (","); Serial.print (medidas, 3); // valor médio obtido no ADC Serial.print (","); Serial.println ((massa), 1); // massa em gramas // Escreve no buffer do display display.clear (); // Limpa o buffer do display // παρακολούθηση για την εμφάνιση του esquerda.setTextAlignment (TEXT_ALIGN_LEFT); // παρακαλώ να δείτε το Arial 16 display.setFont (ArialMT_Plain_16); // Escreve no buffer do display a massa display.drawString (0, 0, "Massa:" + String (int (massa)) + "g"); // escreve no buffer o valor do ADC display.drawString (0, 30, "ADC:" + String (int (medidas))); } else // se está ligado a menos de 5 segundos {display.clear (); // limpa o buffer do display.setTextAlignment (TEXT_ALIGN_LEFT); // Προσθήκη στο παράθυρο esquerda display.setFont (ArialMT_Plain_24); // ajusta a fonte para Arial 24 display.drawString (0, 0, "Balança"); // escreve no buffer display.setFont (ArialMT_Plain_16); // Αποκτήστε μια βάση για Arial 16 display.drawString (0, 26, "ESP-WiFi-Lora"); // escreve no buffer} display.display (); // transfere o buffer para o display display (50); }

Πηγαίος κώδικας - Υπολογισμός συνάρτησης Massa ()

// função para cálculo da massa obtida pela regressão // usando oPolySolve float calculaMassa (float medida) {return -6.798357840659e + 01 + 3.885671618930e-01 * medida + 3.684944764970e-04 * medida * medida + medida + medida * medida * medida + 1.796252359323e-10 * medida * medida * medida * medida + -3.995722708150e-14 * medida * medida * medida * medida * medida * medida + 3.284692453344e-18 * medida * medida * medida * medida * medida * medida * medida? }

Βήμα 11: Έναρξη και μέτρηση

Έναρξη και μέτρηση
Έναρξη και μέτρηση

Βήμα 12: Αρχεία

Κατεβάστε τα αρχεία

ΕΓΩ ΔΕΝ

PDF

Συνιστάται: