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, Juliol
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: