Taula de continguts:

Escala digital amb ESP32: 12 passos
Escala digital amb ESP32: 12 passos

Vídeo: Escala digital amb ESP32: 12 passos

Vídeo: Escala digital amb ESP32: 12 passos
Vídeo: Берегись автомобиля (FullHD, комедия, реж. Эльдар Рязанов, 1966 г.) 2024, De novembre
Anonim
Image
Image
Recursos utilitzats
Recursos utilitzats

Alguna vegada heu pensat en muntar una bàscula digital mitjançant un ESP32 i un sensor (conegut com a cel·la de càrrega)? Avui us mostraré com fer-ho mitjançant un procés que també permet fer altres proves de laboratori, com ara identificar la força que realitza un motor sobre un punt, entre altres exemples.

A continuació, demostraré alguns conceptes relacionats amb l’ús de cèl·lules de càrrega, capturaré dades de cèl·lules per construir una escala d’exemple i assenyalaré altres possibles aplicacions de cèl·lules de càrrega.

Pas 1: recursos utilitzats

• Heltec Lora 32 WiFi ESP

• Cel·la de càrrega (de 0 a 50 newtons, amb una escala)

• 1 potenciòmetre de 100 k (millor si utilitzeu un trimpot multivolt per ajustar-lo bé)

• 1 amplificador Op LM358

• 2 resistències 1M5

• 2 resistències de 10k

• 1 resistència 4k7

• Filferros

• Un Protoboard

• Un cable USB per a ESP

• Una bàscula, contenidor amb volum graduat o qualsevol altre mètode de calibratge.

Pas 2: demostració

Demostració
Demostració

Pas 3: carregueu les cel·les

Cèl·lules de càrrega
Cèl·lules de càrrega

• Són transductors de força.

• Poden utilitzar diversos mètodes per traduir la força aplicada en una magnitud proporcional que es pugui utilitzar com a mesura. Entre els més habituals es troben els que fan servir extensòmetres de xapa, l’efecte piezoelèctric, la hidràulica, les cordes vibrants, etc.

• També es poden classificar per la forma de mesura (tensió o compressió)

Pas 4: carregueu les cèl·lules i els indicadors de tensió

Cèl·lules de càrrega i indicadors de tensió
Cèl·lules de càrrega i indicadors de tensió
Cèl·lules de càrrega i indicadors de tensió
Cèl·lules de càrrega i indicadors de tensió

• Els extensòmetres de xapa són pel·lícules (generalment de plàstic) amb filferro imprès que tenen una resistència que pot variar amb el canvi de mida.

• La seva construcció té com a objectiu principal convertir una deformació mecànica en una variació de magnitud elèctrica (resistència). Això passa preferentment en una sola direcció, de manera que es pot realitzar l'avaluació dels components. Per a això, és habitual la combinació de diversos extensòmetres

• Quan s’adhereix adequadament a un cos, la seva deformació és igual a la del cos. Per tant, la seva resistència varia amb la deformació del cos, que al seu torn està relacionada amb la força de deformació.

• També es coneixen com a indicadors de tensió.

• Quan s’estiren per una força de tracció, els fils s’allarguen i s’estrenyen, augmentant la resistència.

• Quan es comprimeixen per una força de compressió, els cables s’escurcen i s’eixamplen, reduint la resistència.

Pas 5: pont de Wheatstone

Pont de Wheatstone
Pont de Wheatstone

• Per a una mesura més precisa i per permetre una detecció més eficient de la variació de la resistència en una cèl·lula de càrrega, el tensímetre es munta en un pont de Wheatstone.

• En aquesta configuració, podem determinar la variació de la resistència a través del desequilibri del pont.

• Si R1 = Rx i R2 = R3, els divisors de tensió seran iguals, i les tensions Vc i Vb també seran iguals, amb el pont en equilibri. És a dir, Vbc = 0V;

• Si Rx és diferent de R1, el pont es desequilibrarà i la tensió Vbc serà diferent de zero.

• És possible mostrar com s'hauria de produir aquesta variació, però aquí farem un calibratge directe, relacionant el valor llegit a l'ADC amb una massa aplicada a la cel·la de càrrega.

Pas 6: Amplificació

Amplificació
Amplificació

• Fins i tot amb el pont de Wheatstone per fer la lectura més eficient, les micro deformacions del metall de la cèl·lula de càrrega produeixen petites variacions de voltatge entre Vbc.

• Per resoldre aquesta situació, utilitzarem dues etapes d'amplificació. Un per determinar la diferència i un altre per fer coincidir el valor obtingut amb l'ADC de l'ESP.

Pas 7: Amplificació (esquema)

Amplificació (esquema)
Amplificació (esquema)

• El guany del pas de resta ve donat per R6 / R5 i és el mateix que R7 / R8.

• El guany del pas final que no inverteix ve donat per Pot / R10

Pas 8: Recopilació de dades per a la calibració

Recopilació de dades per a la calibració
Recopilació de dades per a la calibració
Recopilació de dades per a la calibració
Recopilació de dades per a la calibració

• Un cop muntat, establim el guany final de manera que el valor de la massa mesurada més gran s’acosti al valor màxim de l’ADC. En aquest cas, per a 2 kg aplicats a la cel·la, el voltatge de sortida era d’uns 3V3.

• A continuació, variarem la massa aplicada (coneguda a través d’un saldo i per a cada valor), i associarem un LEITUR de l’ADC, obtenint la taula següent.

Pas 9: Obtenció de la relació de la funció entre la massa mesurada i el valor de l'ADC obtingut

Funció d'obtenció Relació entre la massa mesurada i el valor de l'ADC obtingut
Funció d'obtenció Relació entre la massa mesurada i el valor de l'ADC obtingut

Utilitzem el programari PolySolve per obtenir un polinomi que representa la relació entre la massa i el valor de l’ADC.

Pas 10: codi font

Codi font: # Inclou

Ara que tenim com obtenir les mesures i conèixer la relació entre l'ADC i la massa aplicada, podem passar a escriure realment el programari.

// Biblioteques per utilitzar el display oLED # include // Necessari apenas for o Arduino 1.6.5 e anterior #include "SSD1306.h" // o mesmo que #include "SSD1306Wire.h"

Codi font: #Defines

// Els pinos do OLED estan connectats a ESP32 pelos següents GPIO's: // OLED_SDA - GPIO4 // OLED_SCL - GPIO15 // OLED_RST - GPIO16 #define SDA 4 #define SCL 15 #define RST 16 // RST deve ser ajustado per programari

Font: variables i constants globals

Pantalla 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; // pi de leitura

Codi font - Configuració ()

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

Codi font: bucle ()

void loop () {float medidas = 0.0; // variável para manipular as mesures 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)) // se està lligat a més que 5 segons {// Envia um CSV comptant o instant, a mesura mèdica 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); // mass em gramas // Escreve no buffer do display display.clear (); // Limpa o buffer do display // ajusta o alinhamento per a l'esquerra display.setTextAlignment (TEXT_ALIGN_LEFT); // ajusta a fonte per Arial 16 display.setFont (ArialMT_Plain_16); // No escriviu cap memòria intermèdia que mostri una 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 // està lligat a menys de 5 segons {display.clear (); // limpa o buffer do display display.setTextAlignment (TEXT_ALIGN_LEFT); // Ajusta o alinhamento per a l'esquerra display.setFont (ArialMT_Plain_24); // ajusta a fonte per Arial 24 display.drawString (0, 0, "Balança"); // escreve no buffer display.setFont (ArialMT_Plain_16); // Ajusta a fonte per Arial 16 display.drawString (0, 26, "ESP-WiFi-Lora"); // escreve no buffer} display.display (); // transfere o buffer para o display delay (50); }

Codi font: funció calculaMassa ()

// funció per al càlcul de massa obtinguda pel regressió // utilitzant oPolySolve float calculaMassa (float medida) {return -6.798357840659e + 01 + 3.885671618930e-01 * medida + 3.684944764970e-04 * medida * medida + -3.748108838320e-07 * medida * medida * medida + 1.796252359323e-10 * medida * medida * medida * medida + -3.995722708150e-14 * medida * medida * medida * medida * medida + 3.284692453344e-18 * medida * medida * medida * medida * medida * mesura; }

Pas 11: Inici i mesura

Inici i mesura
Inici i mesura

Pas 12: fitxers

Descarregueu els fitxers

INO

PDF

Recomanat: